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). <div>
<br></div><div>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? :-)<br clear="all">
<br>Ken Smith<br>Cell: 425-443-2359<br>Email: <a href="mailto:ken@alanta.com" target="_blank">ken@alanta.com</a><br>Blog: <a href="http://blog.wouldbetheologian.com/" target="_blank">http://blog.wouldbetheologian.com/</a><br>
<br><br><div class="gmail_quote">2011/5/24 Jean-Marc Valin <span dir="ltr"><<a href="mailto:jmvalin@jmvalin.ca">jmvalin@jmvalin.ca</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The fact that the AEC takes a few seconds to converge is normal. The<br>
fact that it needs to completely re-converge in the middle of a call<br>
probably indicates that something went "wrong" in the audio<br>
capture/playback. For example, that could be an overrun/underrun in<br>
the soundcard buffer, or the user changing a volume control after the<br>
AEC, or moving the speakers, ... anything that changes the impulse<br>
response.<br>
<br>
Jean-Marc<br>
<br>
Arun Raghavan <<a href="mailto:arun.raghavan@collabora.co.uk">arun.raghavan@collabora.co.uk</a>> a écrit :<br>
<div><div></div><div class="h5"><br>
> Hello,<br>
> We've integrated the speex echo canceller into PulseAudio, and coupled<br>
> with the AGC/denoiser, it works reasonably well and has been a breeze to<br>
> plug in, so thank you!<br>
><br>
> One thing we're seeing, though, is that the canceller seems to take some<br>
> time (a few seconds) to "learn", so initially the echo is clearly<br>
> audible and it slowly fades out. This sometimes occurs in the middle of<br>
> a call as well (the echo becomes loud again and fades away in a few<br>
> seconds).<br>
><br>
> With the echo suppressor enabled, the learning time seems to drop, but<br>
> the final echo remains higher than without suppression, and is still<br>
> sufficiently audible to be annoying.<br>
><br>
> Is this known behaviour? Any clues w.r.t. what might be going wrong?<br>
><br>
> Cheers,<br>
> Arun<br>
><br>
> _______________________________________________<br>
> Speex-dev mailing list<br>
> <a href="mailto:Speex-dev@xiph.org">Speex-dev@xiph.org</a><br>
> <a href="http://lists.xiph.org/mailman/listinfo/speex-dev" target="_blank">http://lists.xiph.org/mailman/listinfo/speex-dev</a><br>
><br>
><br>
<br>
<br>
<br>
_______________________________________________<br>
Speex-dev mailing list<br>
<a href="mailto:Speex-dev@xiph.org">Speex-dev@xiph.org</a><br>
<a href="http://lists.xiph.org/mailman/listinfo/speex-dev" target="_blank">http://lists.xiph.org/mailman/listinfo/speex-dev</a><br>
</div></div></blockquote></div><br></div>