LiMaoquan2000
2011-Jan-19 10:44 UTC
[Speex-dev] About Sampling Rate Correction in acoustic echo cancellation
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.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. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20110119/02a051c9/attachment.htm
Steve Underwood
2011-Jan-19 20:26 UTC
[Speex-dev] About Sampling Rate Correction in acoustic echo cancellation
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
Steve Underwood
2011-Feb-07 14:51 UTC
[Speex-dev] About Sampling Rate Correction in acoustic echo cancellation
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. > > SteveI 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. Steve
Andreas Engel
2011-Feb-09 13:44 UTC
[Speex-dev] About Sampling Rate Correction in acoustic echo cancellation
I recently tested multiple echo cancellation solutions with asynchronous audio devices (webcam + loudspeakers). So far Fraunhofer's Echo Control was the only one giving good results. Although there might be some quality loss during double talk, echo is cancelled very well even with very loud playback. Unfortunately it is quite expensive. Andreas Am 19.01.2011 11:44, schrieb LiMaoquan2000:> > 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. > > 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. > > > _______________________________________________ > Speex-dev mailing list > Speex-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20110209/6a36cba0/attachment.htm
Possibly Parallel Threads
- Anyone knows how microsoft AEC can deal with mismatches between clocks of capture and render streams?
- Sound card problem in acoustic echo
- About Sampling Rate Correction in acoustic echo cancellation
- About Sampling Rate Correction in acoustic echo cancellation
- Anyone knows how microsoft AEC can deal with mismatches between clocks of capture and render streams?