[Speex-dev] Echo Canceller trouble in 1.2beta1

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Fri Oct 27 16:22:17 PDT 2006

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.


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