<div dir="ltr">Hi,<div>I couldn't find a discussion that specifically addresses this, so here it is.</div><div><br></div><div>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.</div>
<div>On most occasions, the AEC works very well and cancels most of the echo (combined with the preprocessor).</div><div>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.</div>
<div>I have tried a few things:</div><div><br></div><div>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.</div>
<div>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.</div><div><br></div><div>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.</div>
<div>I'm willing to send voice samples that reproduce the problem.</div><div><br></div><div>Did anyone experience that or has some insight?</div><div><br></div><div>Thanks ahead,</div><div>Omer</div></div>