[Speex-dev] pre-processor's residual echo suppression and AEC order

Bart Cerneels bart.cerneels at collabora.co.uk
Wed May 25 05:49:06 PDT 2011


Arun and me are working on a echo-canceler module for pulseaudio build around 
speex. When using the preprocessor's echo filter, specifically in combination 
with denoise and AGC, it's unclear whether these have to run before or after 
the AEC.

Right now we've got one instance of speex_preprocessor doing AGC and denoise 
running before the echo canceler; and a second for echo suppression after the 
echo canceler. This seems to have effect, but we have not tested the total 
quality of this configuration yet.

In the code however preprocessor.c compute_gain_floor() both noise and echo 
variables, suggesting these belong together in the same instance.

So is speex_preprocess_run always supposed to be run *after* 
speex_echo_cancellation, does it perhaps depend on which filter function is 


More information about the Speex-dev mailing list