[Speex-dev] About Sampling Rate Correction in acoustic echo cancellation

Steve Underwood steveu at coppice.org
Mon Feb 7 06:51:22 PST 2011

On 01/20/2011 04:26 AM, Steve Underwood wrote:
> On 01/19/2011 06:44 PM, LiMaoquan2000 wrote:
>> Hi all,
>> We have discussed so many about sampling rate asynchronous (or offset)
>> between rendering (D/A converter) and capturing (A/D converter) of
>> most PC soundcards. It seems all acoustic echo cancellers, include AEC
>> in speex, can not deal with this trouble, because it causes a drift of
>> echo path and also buffer overflow and underflow which jumps the delay
>> of echo path seriously.
>> Unfortunately, this kind of sampling rate asynchronous exists in most
>> low-cost PC soundcards we have. So it is a big obstacle for us to make
>> an AEC algorithm practical.
>> I have asked many people for help. It seems impossible to eliminate
>> this offset. Then I found something in microsoft msdn website. It
>> seems microsoft's AEC can deal with different sampling rate.
>>> http://msdn.microsoft.com/en-us/library/ff536174%28VS.85%29.aspx
>>> In Windows XP, the clock rate must be matched between the capture
>> and render streams. The AEC system filter implements no mechanism for
>> matching sample rates across devices. This limitation precludes using
>> AEC when the capture and render functions are performed by different
>> devices. In Windows XP SP1, Windows Server 2003, and later, this
>> limitation does not exist. The AEC system filter correctly handles
>> mismatches between the clocks for the capture and render streams, and
>> separate devices can be used for capture and rendering.
> I see no mention of correcting the fine sample rate diffferences that
> plague the sounds cards. They only seem to talk about matching, say, a
> 48k sample per second speaker stream with an 8k sample per second mic
> stream.
>> There is also a IEEE paper, Adaptive Sampling Rate Correction for
>> Acoustic Echo Control in Voice-Over-IP, which introduced a complex
>> method to estimate the frequency offset and resynchronize the signals
>> using arbitrary sampling rate conversion. I wonder if it can provide
>> enough performance. Because I have also designed a sampling rate
>> converter. After tested the offset accurately, it can reduce the
>> offset to less than 0.1Hz, then the signal after resampling is send to
>> speex AEC. But there is still hearable echo even if it is far less
>> than that can be heared before resampling.
>> Does anybody have any suggestion about practical acoustic echo
>> cancellation in low-cost soundcards? You know, most low-cost
>> soundcards have the problem of sampling rate asynchronous.
> That one sounds much more interesting. If you don't have access to IEEE
> papers, you can find it at the author's university site. They don't do
> anything extraordinary, but they have thought through how you can track
> the sample rate offset by LMS, and use a continuously variable rate
> converter to allow for it.
> Steve
I noticed that the Fraunhofer Institute is now selling a package to 
address echo cancellation when the tx sample rate cannot be trusted to 
exactly match the rx sample rate - primarily in VoIP conferencing 
applications. They say they use the spectral envelope, and disregard the 
phase. That sounds like its not a million miles from the spectral 
subtraction a lot of noise suppression schemes use, and those aren't 
great at getting high levels of suppression. However, they claim very 
high levels of echo suppression. There must be more to what they do than 
the blurb indicates.


More information about the Speex-dev mailing list