[Speex-dev] unsuccessful speex_echo_cancel() usage

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Tue Dec 5 15:00:47 PST 2006

> I’ve got a problem with speex_echo_cancel usage. I only managed to get an
> attenuation of 5-8 db using testecho.c and it depends heavily on the
> playback/capture delay. I used clear speech as far-end input and same speech
> with a bit of reverb, attenuation and delay as mic nput. I also tried using
> played and recorded speech for mic input. I tried different constant delays and
> got the following resuls. When the delay is 50 ms, the attenuation decreases
> twice, and with a 100 ms delay there’s almost no echo cancellation.
> Unfortunately, the application suggests the delay is up to 160 ms. 

Just do some buffering to reduce that delay.

> I use a frame
> size of 128 and a tail length of 1024, the sampling rate is 8000. I tried tail
> lengths of 640, 2048 and 4096 with no significant effect. Also, the filter
> output looks like the filter re-adapts after each pause in speech. I would be
> very grateful for suggestions how to make this work properly.

That's often a symptom of having the capture and record done from
different devices (subtly different clocks) or otherwise glitches
(overruns/underruns) in the capture or playback.


More information about the Speex-dev mailing list