[Speex-dev] Echo cancellation with different sound card for speaker and microphone

Gisle Sælensminde gisle at snirklasjon.no
Wed Mar 21 03:26:04 PDT 2012

I'm developing an application that have a video conference component. 
For that I need echo cancellation, and is looking around for 
algorithms/implementations of that, and the one in speex is an 
alternative. In the documentation for speex I find the following 
sentence however.

"Using a different soundcard to do the capture and plaback will *not* 
work, regardless of what you may think."

If this still is true, the Speex echo canceller is basicly a no-go for 
us. There is no way I can get the customers to understand why they can't 
use e.g the microphone in their webcam together with the speakers 
connected to the built-in soundcard, and have to go buying a separate 
microphone. In the release notes for 1.2beta2, there is the following 
sentece however:

"The echo canceller should now converge faster, be robust and tolerant 
of incorrect capture-playback synchronisation."

This sounds for me like the above problem has been solved, or that at 
least it now works in some cases even if the speakers and microphone are 
unsynchronized, and that it thus may work with speaker and mic on 
different soundcards.

My question is: Can I use  Speex 1.2rc1 ?

If not, my experience with other systems is that it is possible to do 
echo cancellation with mic and speakers on different soundcards. If not 
guaranteed always work, at least in many circumstances in practice. My 
quetion then is: what algorithm should I use? And why does speex fail to 
work in these circumstances?


More information about the Speex-dev mailing list