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? Regards, Arun
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.
On Tue, 2011-06-21 at 20:18 +0200, Kadinger Andr?s wrote:> 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).Indeed. I was curious to know if you or anyone else is seeing these differences as well.> 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.I'm also running this on x86 (x86_64, technically), and it's all floating-point, so I guess this is a regression somewhere. Will try to see if I can run it without any optimisations if possible, which I assume should serve as an adequate reference. Cheers, Arun