[Speex-dev] FW: Echo Cancellation

Ard van Breemen ard at kwaak.net
Thu Aug 26 02:54:19 PDT 2004


On Tue, Aug 24, 2004 at 10:44:49AM -0700, Shana Cooke (Gitnick) wrote:
> The result has my husband speaking clearly, but the echo of myself
> talking is garbled and sounds like the Borg Hive from Star Trek. It's
> more distracting than the original signal was. I have tried introducing
> delays to my echo, but it does not help the signal to become clearer. 

Try this patch.
It effectively disables the adaption rate adjustment, and it uses
a lower adaption rate. Play with that rate. Suddenly you almost
concurred the Borg. (Until the Borg adapts of-course :-) ).

> I think I am doing something wrong, but I am not sure what. I notice you
> are using two samples - play.sw and ref.sw - which are not included in
> the source. What do they sound like? Is there a place one can pick up
> these files? Is this echo cancellation designed more for musical tones
> instead of actual echoes of speech? I know this is experimental and I
> feel I may be using it in the wrong way.

Oh no! Please, never try perfect sinussen on the filter while it
is adapting. If I do that (that seems my biggest problem), it
looks like the tone gets modulated by the echo.

These things are my own experiences. I am not a wizard like
Jean-Marc Valin :-(. 

My setup is maybe a bit different. I use headsets, which
unfortunately have accoustic feedback, but they are not so loud.
At my setup the echo is created by an analog modem connected to
an analog line. The signal I get from the modem contains the
voices of both the caller and the callee in almost the same

The biggest problems I have encountered so far: having clear
tones while the filter is adapting (I play with the adapt_rate
during the conversation). These tones will have a major bad
impact on the filter. So I've hacked the telephone program that
it will put the adapt_rate at 0 when "silence" is detected at the

My latest problem I try to concur is when I adapt_rate = 0
(the filter has already adapted), and when I talk, my voice gets
louder and louder (up until a certain point, echo is certainly
cancelled, but not enough), until I initiate an impuls (hitting
the mic with a nail), and suddenly it gets al quiet, while the
other site still seems ok. I have two problems here, since the
plantronics headset decide forthemselves that they should turn
down the volume, and it takes a minute or more to get them back
to the original volume (heh, will try a logitech usb headset).

To be exact about my systemspecs:
- headset: plantronics DSP-100 USB headset with volume buttons
- modem:   sweex something USB modem. (A smartlink reference
  design modem)
- system:  neoware capio-506 running diskless debian GNU/linux
  (geode system with 32MB RAM)

Anyway, back to hacking and reading the MDF publication, and
trying to understand at least which variables do what, and have
what significance.

More information about the Speex-dev mailing list