Audio stream interfacing API's, Tokbox and Twilio - audio

Hi so we have a brain teaser on our hands.
Currently we're attempting to build a conferencing application with Tokbox, the setup is simple and the video conferencing works fine.
However we want to be able to break into voice, so this means if user x and y are video conferencing but user Z doesn't have a computer they can dial in via a twilio phone number, however the issues comes with the audio, we need the twilio audio to be layered into the tokbox audio so everybody can hear each other.
The best solution is to turn off the tokbox audio and let the twilio client handle the audio, via posting tokbox audio through their client, however this seems it would be a slow option.
Ideally tokbox would be able to handle the twilio audio but it currently doesn't have support.
Apart from extending tokbox with a lot of custom code I was just wandering if you guys know anyway of mixing audio into one layer?

With OpenTok's new iOS v2.2 beta or Android v2.2 beta there is an included tutorial that lets you build your own Publisher object so that you can stream your own media (pictures, videos from your phone, etc). You might be able to build you own Publisher object to steam Twilio's audio.

Related

Is streaming audio from my DAW to Discord possible with a discord bot?

I found out the other day that discord bots had the ability to play audio in stereo which is not possible with a regular discord account. Maybe it could be possible to stream Ableton Live's audio output to a node.js server for a bot to play back in a Discord channel.
I found this plugin : https://listento.audiomovers.com/ which is a good starting point.
This page shows exemples of audio playback code but not live streaming methods https://discord.js.org/#/docs/main/stable/class/PlayInterface?scrollTo=play
The idea is to live stream audio without the delay that could be caused by video with a soft like OBS. And Discord would be a great platform for this as people would be able to react and make music together.
I need help with the structure of all this. Do you think this is possible ?
Have a look at https://rogueamoeba.com/audiohijack/
and it's free alternative https://github.com/mattingalls/Soundflower/releases
If you run your discord bot locally then you can just set Ableton's output to be an input for the bot using one of the above.
I agree, You can use Asio Link Pro Tool The developer gives it out for free and I use it all the time, especially when chaining audio interfaces together to get more inputs. Works great, you can check out a video with Mr. Different TV on Youtube to understand it.
https://give.academy/downloads/2018/03/03/ODeusASIOLinkPro/
https://www.youtube.com/watch?v=emRZxa0pqbs
Unlimited inputs and outputs (>:o)

Stream music from streaming platform (Deezer, Spotify, Soundcloud) to Web Audio API

Do any of you, know a way to get the audio stream of a music platform and plug it to the Web Audio API ?
I am doing a music visualizer based on the Web Audio API. It currently reads sounds from the mic of my computer and process a real-time visualization. If I play music loud enough, my viz works !
But now I'd like to move on and only read the sound coming from my computer, so that the visualization render only to the music and no other sound such as people chatting.
I know I can buffer MP3 file in that API and it would work perfectly. But in 2020, streaming music is very common, via Deezer, Spotify, Souncloud etc.
I know they all have an API but they often offer an SDK where you cannot really do more than "play" music. There is no easy access to the stream of audio data. Maybe I am wrong and that is why I ask your help.
Thanks
The way to stream music to WebAudio is to use a MediaElementAudioSourceNode or MediaStreamAudioSourceNode. However, these nodes will output zero unless you're allowed to access the data. This means you have to set the CORS property correctly on your end and also requires the server to allow the access through CORS.
A google search will help with setting up CORS. But many sites won't allow access unless you have the right permissions. Then you are out of luck.
I find a "no-code" work around. At least on Ubuntu 18.04, I am able to tell Firefox to take my speakers as the "microphone input".
You just have to select the good "mic" in the list when your browser asks for mic permission.
That solution is very convenient since I do not need to write platform-specific binding-code to access to the audio stream

Embedded audio conference API

I really don't have knowledge about this area (WebRTC, video conference, audio conference, etc).
I want to add to my system (web application) a client support using audio conference.
I was looking for Twilio, it seems a good solution, but I think it doesn't fit my case, because it always need a virtual phone number to get works and I don't need it at my system.
What I need is something like Facebook calls, Google Hangouts (without video).
Is there any solution/library/API for it? It's no necessary be a free solution.

What libraries/APIs allow me access real time audio waveforms of a phone call?

I am looking to build an app that needs to process incoming audio on a phone call in real time.
WebRTC allows for this but i think this works only in their browser based P2P audio communications functionality but not for phone calls/ VOIP.
Twilio and Plivo allow you record the audio for batch/later processing.
Is there a library that will give me access to the audio streams in real time? If not, what would I need to build such a service from scratch?
Thanks
If you are open to using a media server (so that the call is not longe P2P but it's mediated by the media server using a B2B model), then perhaps the Kurento Media Server may solve your problem. Kurento Media Server makes possible to create processing capabilities which are applyied in real time onto the media streams. There are many examples in the documentation of computer vision and augmented reality algorithms applied in real time over the video streams. I've never seen an only-audio processing module, but it should be simple to implement just by creating an additional module, which is not too complex if you have some knowledge about C/C++ and media processing concepts.
Disclaimer: I'm part of the Kurento development team.

Sending voice over the net and get it with HTML5 and mobile apps

I'm trying to put in place a basic streaming system from the browser.
The idea is to let the user stream audio live from his mic through the browser and then allow others to listen to this stream with their browser (desktop, mobile, etc ...) and iOS/Android apps.
I started doing some tests with the Red5 Server (which is a great free alternative to the Flash Media Server).
With this technologie, I can publish a stream with the RTMP (ex: rtmp://myserver/myApp).
But the problem is that I can't find a way to read the published stream on other plateforms (using the video tag with HTML5, in iOS, etc ...).
As i failed to that, my question is:
How can I let a user to stream his voice over the net (using flash or not) and then allow the others to listen to that stream by using lightweight technologies (HTML5) and mobile apps?
Thanks,
Regards
Looks like RED5 should be able to do what you want...
0.9.0 RC2 has the ability to:
Streaming Audio (MP3, F4A, M4A)
Recording Client Streams (FLV only)
some links that may help:
http://osflash.org/pipermail/red5_osflash.org/2007-April/010400.html
http://www.red5chat.com/
Though not exactly what you're after, you could take a look at BigBlueButton which is a web conferencing suite based on open source components (RED5 is one of them). It's has a rather complex architecture but they do have a flash based client you can take a loot at.

Resources