[Speex-dev] Distorted output in fixed-point AEC
Omer Gilad
omer.gilad at gmail.com
Sun Jan 9 04:22:07 PST 2011
By the way, I have compiled the fixed-point version with fixed_debug.h, and
the console is exploded with overflow warnings when running the AEC.
On Sat, Jan 8, 2011 at 10:52 PM, Omer Gilad <omer.gilad at gmail.com> wrote:
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20110109/4b683c78/attachment.htm
More information about the Speex-dev
mailing list