[Speex-dev] AEC stops working in 1.2-rc1?

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Mon Aug 11 04:34:53 PDT 2008


OK, here's what happens. There is indeed a small difference between
beta3 and rc1, but the fundamental problem isn't there. I've attached
plots of the speaker signal (blue) alongside the mic signal (green). You
can see the delay is in the order of 1000 samples. That's way too much
to do anything useful because the tail doesn't even "see" the echo. You
need to reduce that delay if you want the AEC to work. See the manual.

Cheers,

	Jean-Marc



Benny Prijono a écrit :
> On Sat, Aug 9, 2008 at 12:59 PM, Jean-Marc Valin
> <jean-marc.valin at usherbrooke.ca <mailto:jean-marc.valin at usherbrooke.ca>>
> wrote:
> 
>     Hi Benny,
> 
>     Can you send me your pair of testecho input files that work well with
>     beta3 and not with rc1? I'll have a look.
> 
> 
> Thanks for the help. The files are on their way now, the upload will
> take few more minutes to complete. In the mean time let me explain more
> what I did.
> 
> The speaker signal is signal-xx, where xx is 8khz and 16khz depending on
> the file's sampling rate, and mic signal is mic-xx. The result is
> result-xx-yy, where yy is either rc1 or beta3 depending on Speex version
> that I used for the test.
> 
> For the result, I use my test program for the test [1], and during the
> test I set echo tail length setting to 200ms, and delay to 100ms
> (meaning the speaker signal that's given to speex_echo_cancellation() is
> 100ms older than what's currently playing). The frame length is set to 20ms.
> 
> And to switch between rc1 and beta3, I simply replace mdf.c from the
> corresponding tarball. Nothing else is changed.
> 
> The actual tail length I think is around 160ms, so I'm not sure if
> default testecho can cope with it.
> 
> In case it matters, the original input files are the 16khz ones, the
> 8khz is the resampled version of it (I don't think it matters in this
> case though since the resample is quite good).
> 
> And one more thing, my mic is not synched to the speaker (I used
> different sound device). The mic is running about 0.06% faster than the
> speaker (that's about one 20ms frame drift every 3.2s or so). But I
> don't think it matters again, because first I have drift handling in my
> library (similar to how PLC work, with WSOLA) to compensate this, and
> secondly it doesn't seem to affect the beta3 EC anyway. But just in case
> it matters.
> 
> And last, the test was done on Win XP.
> 
> Thanks
>  Benny
> 
> [1]
> https://trac.pjsip.org/repos/browser/pjproject/trunk/pjsip-apps/src/samples/aectest.c
> 
> 
>            Jean-Marc
> 
>     Benny Prijono a écrit :
>     > Hi Jean-Marc,
>     >
>     > I tried with both testecho and my test program, and for some reason it
>     > just doesn't cancel any echoes with the 1.2-rc1. The testecho from
>     beta3
>     > binaries works fine, and also if I replaced mdf.c in 1.2-rc1 with
>     mdf.c
>     > from beta3 and use my test program, it will work again. This
>     happens for
>     > both 8KHz and 16KHz. Any ideas?
>     >
>     > I could upload the test samples and results if needed.
>     >
>     > Cheers
>     >  Benny
>     >
>     >
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > Speex-dev mailing list
>     > Speex-dev at xiph.org <mailto:Speex-dev at xiph.org>
>     > http://lists.xiph.org/mailman/listinfo/speex-dev
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: delay.png
Type: image/png
Size: 7889 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20080811/a1e48fae/attachment.png 


More information about the Speex-dev mailing list