[Speex-dev] speex-1.2beta1 AEC garbles up audio unless compiled with --enable-fixed-point

Andras Kadinger bandit at surfnonstop.com
Tue Oct 3 11:42:03 PDT 2006

Greetings everyone,

I was about to compare AEC performance between 1.1.12 and 1.2beta1 when 
I noticed something.

If I configure (and compile) speex-1.1.12 with

./configure --enable-shared=no --enable-static=yes

it compiles and works as expected: I can run a mic and speaker signal 
through testecho, it runs in a reasonable amount of time (about 23 secs 
for 3 minutes of audio) and I get back good audio.

If I configure (and compile) speex-1.2beta1 with

./configure --enable-shared=no --enable-static=yes

it compiles, but with the same input files testecho runs very long (say 
about 21-24 minutes, probably data-dependent), and the output audio is 
garbled up.

It does the same with --enable-sse.

But with --enable-fixed-point, AEC returns to normal.

This is happening on a Gentoo stable (1.12.4) system, gcc 4.1.1, glibc 
2.4, processor is "Intel(R) Pentium(R) 4 CPU 3.00GHz" (with 
HyperThreading disabled).

My data is real-world audio captured from a physical speaker and mic 
setup in a room, by the left and right channels of the same soundcard 
input, and is sampled at 32 kHz. 1.2beta1 AEC without 
--enable-fixed-point garbles the audio up whether I claim it is sampled 
at 8 kHz or 32 kHz in testecho.c, it just does so differently. I can't 
hear anything of my original audio, instead I hear a very loud 
(full-scale), regularly repeating noise. When I look at the waveform, it 
looks a bit like 1/x for x>0, where overflowed samples values are not 
clipped but wrapped back down; that is, the first few dozen samples are 
wildly swinging between -32768 and 32767, later slow down but still 
full-scale, even later the sample values asymptotically approach zero 
from above; then suddenly the cycle begins again. (I can provide samples 
of input and output on request.)

Is anyone else seeing anything like this?

Thanks in advance.

Best Regards,
Andras Kadinger

More information about the Speex-dev mailing list