[Speex-dev] Acoustic echo cancellation

Kadinger András bandit at surfnonstop.com
Tue Jun 21 11:18:47 PDT 2011

2011.06.21. 19:22 keltezéssel, Arun Raghavan írta:
> Hi Andras, others,
> Andras Kadinger<bandit<at>  surfnonstop.com>  writes:
>>      Daniel,
>>      I recommend you to start from a simple case and gradually progress
>>      towards your goal.
>>      Can you make things work with the "Speex in a Disco" (Example 6)
>>      testcase at http://ns.surfnonstop.com/~bandit/speex/echocard1/ ?
>>      These files were captured via a stereo soundcard, so the channel
>>      sample clocks are exactly synchronized, making for a simple baseline
>>      testcase for AEC.
> I'm trying to run current speex with your test program on these samples,
> and while the quality is quite nice, it's not nearly as good as the
> samples on that site. I tried to bisect git back to the SVN commits
> mentioned there, but I get about the same results. Am I missing
> something?
Hi Arun,

As far as I know the AEC algorithm should be deterministic - if you run 
the same code, with the same settings, giving the same input, you should 
be getting the same output.

You seem to have made sure the issue is not dependent on version of 
Speex (source code), you said you use my testprogram (same source code, 
same settings) and my samples (same input).

Difference could also be caused by differences in the translation from 
source code to machine code. These differences could be caused by the 
toolchain (e.g. compiler version); or they could be platform-specific 
differences: differences in math architecture (e.g. integer vs floating 
point math, precision of math, math bugs), or a different set of 
platform-specific codeparts getting activated within the Speex source 
(which no longer guarantees you and I were actually running the same 
code, so could be a source of the difference).

The samples were created in 2006 on x86/Linux Gentoo (sorry, I cannot 
recall the compiler versions anymore).

If you are trying on a different architecture, maybe try it on x86 too, 
to see whether the issue is triggered by the different platform, and 
then we have a starting point.

More information about the Speex-dev mailing list