[Speex-dev] Sound card problem in acoustic echo

p_j_r_m p_j_r_m at yahoo.com
Sun Jul 25 13:26:44 PDT 2010


Direct Sound AEC never worked for me, even when it did with Speex. I was told that after disabling effects in DS the play and record streams could be synchronized,and then Speex AEC did the job. 

--- El vie, 23/7/10, limaoquan2000 <limaoquan2000 at 126.com> escribió:


De: limaoquan2000 <limaoquan2000 at 126.com>
Asunto: Re: [Speex-dev] Sound card problem in acoustic echo
Para: speex-dev at xiph.org, p_j_r_m at yahoo.com
Fecha: viernes, 23 de julio, 2010 22:42


>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/20100725/fb26c57e/attachment.htm 


More information about the Speex-dev mailing list