[Speex-dev] Acoustic echo cancellation

Daniel K explorer277 at gmail.com
Fri Apr 15 22:11:28 PDT 2011


I have a scenario in a mobile VoIP app that requires echo cancellation but
is somewhat different from what's described in the docs.

Audio is received from and sent to the network at 8000Hz. Each packet
contains 160 samples worth a playback of 20ms.

But the hardware requires aggregation for both playback and capture. So for
playback, I coalesce 4 packets in a buffer and queue them as a larger buffer
for playback.
On the send side, I read a large buffer (worth 4 packets) and send them out
over time 20ms apart.

I tried using speex_echo_playback just when a 160-sample packet arrives from
the network, before coalescing and speex_echo_capture just before a packet
is sent out to the network but that doesn't seem to work properly (doesn't
cancel any echo).

So, in this scenario above, please recommend a good place to insert
speex_echo_playback and speex_echo_capture. Should I be just before the read
and write to hardware? In that case, should I use a larger "frame size" of
160 samples x 4?

Thanks in advance,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20110415/f499b7d0/attachment.htm 

More information about the Speex-dev mailing list