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

Andras Kadinger bandit at surfnonstop.com
Wed May 25 08:05:44 PDT 2011


The echo canceller (AEC) should be run first on the recorded signal. 
Only do denoise and AGC and others after AEC - otherwise whatever you 
did (e.g. denoise, AGC, etc.) will only confuse the AEC.

Look under http://ns.surfnonstop.com/~bandit/speex/echocard1/ example 6 
to have an idea about what quality to expect.

2011.05.25. 14:49 keltezéssel, Bart Cerneels írta:
> Hi,
>
> 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
> enabled?
>
> Thanks
> Bart
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev



More information about the Speex-dev mailing list