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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.