[Speex-dev] Echo Can Tail Length

David Baker dbkr at mxtelecom.com
Mon Apr 20 09:08:52 PDT 2009

On 20 Apr 2009, at 12:27, Jean-Marc Valin wrote:

> David Baker a écrit :
>> Hi,
>> I've been trying to understand the documentation on the Speex echo
>> canceller, and unless I'm confused, I think there's a mistake
>> somewhere. The documentation on http://speex.org/docs/manual/speex-manual/node7.html#SECTION00740000000000000000
>>  says, " The recommended tail length is approximately the third of
>> the room reverberation time". However, the Octave script
>> echo_diagnostic.m has the code:
>> if (b > .3*tail_length)
>>       printf ('This is too much delay, try delaying the far-end
>> signal a bit\n');
>> This seems to mandate that the tail length should be at least 3 (or
>> 3.33...) times the delay, which conflicts with what the manual says.
> There's no conflict. The b above has nothing to do with the
> reverberation time. It's the buffering delay of the audio
> playback/capture and if it's more than 30% of the tail length, it  
> means
> you're wasting that much of your tail. If it's larger than the tail
> length, then it means that no cancellation is possible at all.
> Cheers,
> 	Jean-Marc
>> Is this a mistake, or is my understanding incorrect (I'm assuming  
>> that
>> far-end delay and room reverberation time are the same thing). I'd
>> really appreciate if someone could clear this up, as I've not had  
>> much
>> luck getting the echo canceller to work.
>> Thanks in advance,
>> Dave

Ah, that makes sense. Many thanks for the prompt response!


More information about the Speex-dev mailing list