[Speex-dev] Distorted output in fixed-point AEC

Omer Gilad omer.gilad at gmail.com
Sat Jan 8 12:52:06 PST 2011


Hi Jean-Marc, thanks for the response.
First, I will clarify again that floating-point solves this - so isn't that a bug in fixed-point?
Also, I understand that algorithmically the AEC won't cancel echo properly on a non-linear signal, but why completely distort the output? 
If the echo just won't get cancelled it would be acceptable, but in the current state it disables the ability to speak - with or without echo.

Thanks,
Omer

On Jan 8, 2011, at 7:26 PM, Jean-Marc Valin wrote:

> Hi,
> 
> The Speex AEC is simply not designed to deal with non-linear echo, as is the case when clipping of AGCs are involved. Make sure all your path is linear or forget about the Speex AEC.
> 
> 	Jean-Marc
> 
> On 11-01-03 11:31 AM, Omer Gilad wrote:
>> Hi,
>> I couldn't find a discussion that specifically addresses this, so here
>> it is.
>> 
>> I'm using Speex AEC in my mobile VoIP application to cancel speaker
>> echo. The used version is 1.2rc1 from the website, and I'm compiling
>> with fixed-point.
>> On most occasions, the AEC works very well and cancels most of the echo
>> (combined with the preprocessor).
>> On some devices, where the microphone signal gets a bit distorted
>> (because of sensitivity or some internal AGC pass), the AEC outputs
>> distorted and unacceptable voice, while only augmenting the echo signal
>> instead of cancelling it.
>> I have tried a few things:
>> 
>> 1. Compile in floating point - solves it, but irrelevant to some devices
>> which don't have an FPU and can't handle this. I actually use the FP
>> version on devices that DO support it.
>> 2. Check where it reproduces - on any device where the recording gets
>> clipped every now and then, and also on devices that normalize their mic
>> input.
>> 
>> I'm a bit desperate about this, and almost getting to the point of
>> debugging the AEC itself - my guess is that it's a lot of integer overflows.
>> I'm willing to send voice samples that reproduce the problem.
>> 
>> Did anyone experience that or has some insight?
>> 
>> Thanks ahead,
>> Omer



More information about the Speex-dev mailing list