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

Steve Underwood steveu at coppice.org
Wed Jan 19 12:26:57 PST 2011


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



More information about the Speex-dev mailing list