[Speex-dev] Sound card problem in acoustic echo

limaoquan2000 limaoquan2000 at 126.com
Fri Jul 23 22:42:20 PDT 2010


>I remember?I had to expose the echo cancelation level implementing a get_echo_level( ) function based on this:
>http://lists.xiph.org/pipermail/speex-dev/2008-September/006889.html

This is really a good idea to determine the frequency difference between capture
and play of the sound card. But it need constant far-end voice and a long time
because it must repeat the process of "resampling, test echo" for many times.

Have you tried the AEC in DirectSound? If this AEC is usable for all sound cards,
perhaps microsoft has solved this problem already. Can we choose proper options
of the DirectSound to solved this problem and disable its AEC at the same time?

>
>Using that value and averaging samples as?"fedback" I did small corrections to sampling rate until convergence, although this not always worked.When it did, convergence was quite fast (seconds).
>Resampling did not introduce noticiable CPU increase.But may be the small time used for conversions was the cause of non-convergence.I think this path is hard and uncertain,

>and now,i would dive first in DirectSound to try to obtain synchronized streams before passing them to speex.

Waiting for your good news.

>Regarding ASIO, you have to install a special "driver"? for it to work,and this seems unaceptable for general users.

>--- El jue, 22/7/10, limaoquan2000 <limaoquan2000 at 126.com> escribi:

>Thank you.

>But it will cost you a long time to get the accurate play and capture frequencies.
>Does your program test two frequencies of the sound card each time Because
>different sound cards have different frequency errors.
>And the resampling program is also time consuming because the target frequency is
>so close to the sampling frequency of the input signal, isn't it?

>I have tested program based on Windows waveform functions and also DirectSound.
>They have similar frequency error.

>BTW: What's your conclusion of ASIO driver? Why "it was of no practical use"?

>> I worked some time for a company doing AEC using Speex on Windows.It is true it depends a lot on sound card models. I remember I could do AEC by resampling frequencies so play and record frequencies where equal.Frequencies where aprox 100Hz appart.Also, I know that on other cases AEC was achieved by disabling FX DirectSound effects where it wasn`t possible before that.Try to disable all you don't need before calling Speex AEC function.
>> Also, I tried the ASIO driver,as an experiment. I think it worked, but it was of no practical use.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20100724/c019fbe6/attachment.htm 


More information about the Speex-dev mailing list