[Speex-dev] Please help in understanding Speex echo cancellation

Eugene Leviant evgeny.leviant at gmail.com
Fri Oct 16 13:47:23 PDT 2009


I'm using Speex in Windows VoIP application and trying to implement echo
cancellationI'm using waveInXXXX and waveOutXXXX API. I'm doing quite simple
thing:

After buffer is played (I get MM_WOM_DONE message) I'm just copying it's
content to temporary playback buffer
After buffer is recorded (I get MM_WIM_DONE message) I call
speex_echo_cancellation(state, recorded_buf, playback_buf, out);

Access to playback buffer is synchronized, so it is not being read and
filled at the same time.
I'm using the same soundcard for both recording and playback

Speex doesn't seem to cancel any echo at all. My frame size is 20 msec long
(640 samples, ultra-wideband), Filter length is
10 frames (6400 samples). I beleive that I correctly initialize the speex
echo state (sample rate value is being set in speex_echo_ctl, also speex
echo state is registered withing preprocessor state).

Please help someone, or at least send a piece of code which works.
Any help would be appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20091017/50da0be6/attachment.htm 


More information about the Speex-dev mailing list