How to Call SPEEX Audio Decode/Encode in HTML5 / JavaScript (Without Flash)

9.1k views Asked by At

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

4

There are 4 answers

0
David On

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.

0
edoloughlin On

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

0
Feng Dihai On

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.

2
jahilldev On

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