[Speex-dev] Echo Canceller trouble in 1.2beta1

Coffey, Michael mcoffey at avistar.com
Fri Oct 27 16:40:27 PDT 2006


Terrific! The patch fixes my problem quite decisively.

I will want to use this with a 16K sample rate. Is it expected to work well with just another slight patch, or will we need to modify it more deeply?

Also, are there any tunable parameters besides tail length? I am wondering about the aggressiveness of adaptation and I know you are an expert in that area.

Thanks so much,
Michael


-----Original Message-----
From: Jean-Marc Valin [mailto:jean-marc.valin at usherbrooke.ca] 
Sent: Friday, October 27, 2006 4:22 PM
To: Coffey, Michael
Cc: speex-dev at xiph.org; Vysotsky, Vladimir
Subject: Re: [Speex-dev] Echo Canceller trouble in 1.2beta1

Can you first try the svn version (or apply
https://trac.xiph.org/changeset/11882). As I mentioned in a previous
email, there's a bad bug in the 1.2beta1 echo canceller.

	Jean-Marc

Coffey, Michael a écrit :
> Hi Folks,
> 
> I am having trouble using speex_echo_cancel. As a starting point, I am
> using the testecho.c source code. I compiled the 1.2beta1 version. I
> have not tried any other versions of speex.
> 
> The document says that the order of arguments to Speex_echo_cancel is
> (echo_state, input_frame, echo_frame, output_frame, residue) where
> "input_frame" is as captured from mic and "echo_frame... was played from
> the speaker." 
> 
> Speex_echo_cancel calls these parameters (st, ref, echo, out, Yout). The
> name "ref" is confusing to me, but the implementation of
> speex_echo_playback() and speex_echo_capture() confirms that the "ref"
> argument is supposed to be the mixture of sound coming from the
> microphone and the "echo" argument is supposed to be whatever has been
> played out to the speaker.
> 
> If I pass the arguments in the "right" order, I get garbage output
> perhaps indicative of some kind of severe overflow. If I change the
> signal arguments (passing echo before ref) I get something like the
> wrong signal subtracted from the mix.
> 
> I've created a pair of files for testing various echo cancellers. To
> simulate the "far end" speech, I have a clean close-mic recording of an
> utterance which I pass as the "echo" argument to testecho.c. To simulate
> the mixture coming from the mic, I delay that same signal by 10 ms, add
> a mild amount of artificial reverb, reduce the volume by several db, and
> then mix in a different clean utterance. That is passed as the "ref"
> argument.
> 
> This test is slightly difficult because there is more double-talk than
> single-talk in it. Also, the 10ms delay is fairly long. However, other
> vendor's echo cancellers have been able to handle it.
> 
> What should I try next? Am I missing something obvious or should I try a
> different version of the code? I would be very excited to be able to get
> this to work.
> 
> Thanks
> Michael
> 
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev
> 
> 


More information about the Speex-dev mailing list