[Speex-dev] Stand-alone echo cancellation

Jean-Marc Valin
Thu, 02 Oct 2008 03:10:19 -0000

Mike Ball a ?crit :
> We?re investigating acoustic echo cancellation solutions for a speech
> application. Our hardware will be a TI C64x+ series processor (DM6467)
> which has both a DSP and ARM9 core. Our audio will be sampled at 8kHz
> and fed in through the I2S ports on the DM6467, echo cancelled, and then
> encoded in G.711. As such, I?m really interested in the echo
> cancellation component of Speex, but not in the encode/decode. Finally,
> only one channel of audio needs to be echo cancelled in the system. So,
> here come the questions. :-)
>
> 1. Is it possible to call speex_echo_cancellation() on audio frames not
> already encoded in Speex?

Yes. The echo canceller is now part of libspeexdsp, which is totally
independent from the codec part.

> 2. Can anyone compare / contrast the features of Speex?s echo
> cancellation versus those of, say, Ittiam
> (http://www.ittiam.com/pages/products/aec.htm ) or Adaptive Digital?
> (http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm)
> Obviously these are expensive and powerful commercial packages which
> probably don?t compare well with a package like Speex, but I?d just like
> to get a sense of what the differences are.

I don't know these products. Just one important question though, are you
after line echo cancellation or acoustic echo cancellation. The Speex
echo canceller is optimised for acoustic echo. It'll sort of work on
line echo, but it'll be both sub-optimal in terms of quality and more
CPU-intensive. For line echo, you might want to have a look at oslec
(http://www.rowetel.com/ucasterisk/oslec.html).

Cheers,

	Jean-Marc