Re: AEC learning behaviour
Ken Smith <[email protected]>
| Newsgroups | gmane.comp.audio.compression.speex.devel |
|---|---|
| Message-ID | <[email protected]> |
I'll only add that in my experience, the echo canceller + echo suppressor removes significantly more of the echo than the echo canceller by itself. In our testing, the echo canceller by itself removed about 65% of the echo (which isn't good enough), and the echo canceller + echo suppressor removed about 90% (which is good enough for 1:1 conversations). What was key to getting this to work (this was in Silverlight) was enabling a buffer to hold the recorded audio for about 200 ms before submitting it to the echo canceller. By default, the Speex pre-processor only holds it for about 20 ms, and we found that wasn't nearly long enough, at least in our particular environment. We tested a variety of different buffer lengths on a variety of different kinds of hardware, before settling on 200 ms as producing the best results on the widest range of systems. But of course, this was in Silverlight, which I strongly suspect adds a bit more latency than other environments, so 200 ms probably isn't the best if you've got better direct access to the hardware. But I also suspect that 20 ms likely isn't the best either. It would actually be helpful if this were a configurable value in the Speex preprocessor. (Someone want to take that on? :-) Ken Smith Cell: 425-443-2359 Email: [email protected] Blog: http://blog.wouldbetheologian.com/ 2011/5/24 Jean-Marc Valin <[email protected]> > The fact that the AEC takes a few seconds to converge is normal. The > fact that it needs to completely re-converge in the middle of a call > probably indicates that something went "wrong" in the audio > capture/playback. For example, that could be an overrun/underrun in > the soundcard buffer, or the user changing a volume control after the > AEC, or moving the speakers, ... anything that changes the impulse > response. > > Jean-Marc > > Arun Raghavan <[email protected]> a écrit : > > > Hello, > > We've integrated the speex echo canceller into PulseAudio, and coupled > > with the AGC/denoiser, it works reasonably well and has been a breeze to > > plug in, so thank you! > > > > One thing we're seeing, though, is that the canceller seems to take some > > time (a few seconds) to "learn", so initially the echo is clearly > > audible and it slowly fades out. This sometimes occurs in the middle of > > a call as well (the echo becomes loud again and fades away in a few > > seconds). > > > > With the echo suppressor enabled, the learning time seems to drop, but > > the final echo remains higher than without suppression, and is still > > sufficiently audible to be annoying. > > > > Is this known behaviour? Any clues w.r.t. what might be going wrong? > > > > Cheers, > > Arun > > > > _______________________________________________ > > Speex-dev mailing list > > [email protected] > > http://lists.xiph.org/mailman/listinfo/speex-dev > > > > > > > > _______________________________________________ > Speex-dev mailing list > [email protected] > http://lists.xiph.org/mailman/listinfo/speex-dev > _______________________________________________ Speex-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/speex-dev