How to Call SPEEX Audio Decode/Encode in HTML5 / J

2019-02-04 20:48发布

问题:

I'm working on a project that requires audio data to be streamed via HTTP to/from server.

We need to compress the audio data using SPEEX.

In Flash, we can use Alchemy and LibSpeex, but how can we do it in JavaScript. HTML5 can be used.

Thanks.

Peter

回答1:

I recently implemented a successful HTML5/VOIP client using the following JS port of Speex, truly awesome stuff:

https://github.com/jpemartins/speex.js

For now you'll need to either wait for MediaStreamRecorder or jump the gun like I did, and make use of this:

https://github.com/jwagener/recorder.js/

As for how you piece the whole lot together into a slick system, your call :)

Hope i've helped



回答2:

I am working on a project called AudioRecorder that exactly fits your needs. You can find it here. https://github.com/dbieber/audiorecorder.

This builds upon the already mentioned emscripten compiled speex codec: jpemartins/speex.js.

If you already have the audio and just want to encode it, call Codec.encode(samples). You can also use AudioRecorder to record the audio -- there's an example on Github here: http://dbieber.github.io/audiorecorder/examples/recorder.html

The implementation currently assumes 1-channel audio and if you want two channel you can just encode or decode twice.



回答3:

I had a similar requirement and ended up writing a Java applet that used JSpeex and called it from JS.



回答4:

I have posted an answer on How can I play .spx file by html5 ?.

With speex.js, now I can play speech of word for my online dictionary project.