[Speex-dev] Echo Cancellation Tail Length

Dimitri vandyck_dimitri at hotmail.com
Fri Nov 30 02:21:39 PST 2012


Hi,

I trying to get the speex AEC working on an embedded linux device with an
arm926ej processor. At the moment it seems like disabling/enabling the AEC has
no impact, except for processing power (50% if AEC enabled, 10% if disabled). 

I compiled with DUMP_ECHO_CANCEL_DATA and executed the echo_diagnostics.m with
the resulting audio fragments.

octave:4> echo_diagnostic('aec_rec.sw', 'aec_play.sw', 'aec_diagnostic.sw',1024);
Far end to near end delay is 1793 samples
This is too much delay, try delaying the far-end signal a bit
Drift estimate is 0.004001% (1 samples)
A drift of a few (+-10) samples is normal.

octave:5> echo_diagnostic('aec_rec.sw', 'aec_play.sw', 'aec_diagnostic.sw',1024);
Far end to near end delay is 1785 samples
This is too much delay, try delaying the far-end signal a bit
Drift estimate is -0.076024% (-19 samples)
There may be (not sure) excessive clock drift. Is the capture and playback done
on the same soundcard?

If I understand correctly, the AEC is not able to remove echo because the delay
(~1800 samples) is longer then the tail filter length (1024 samples).

Any suggestions on how to fix this problem?

Thanks,

Dimi



More information about the Speex-dev mailing list