<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">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. <BR><BR>--- El <B>vie, 23/7/10, limaoquan2000 <I><limaoquan2000@126.com></I></B> escribió:<BR>
<BLOCKQUOTE style="BORDER-LEFT: rgb(16,16,255) 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px"><BR>De: limaoquan2000 <limaoquan2000@126.com><BR>Asunto: Re: [Speex-dev] Sound card problem in acoustic echo<BR>Para: speex-dev@xiph.org, p_j_r_m@yahoo.com<BR>Fecha: viernes, 23 de julio, 2010 22:42<BR><BR>
<DIV id=yiv1735266818>>I remember?I had to expose the echo cancelation level implementing a get_echo_level( ) function based on this:<BR>>http://lists.xiph.org/pipermail/speex-dev/2008-September/006889.html<BR><BR>This is really a good idea to determine the frequency difference between capture<BR>and play of the sound card. But it need constant far-end voice and a long time<BR>because it must repeat the process of "resampling, test echo" for many times.<BR><BR>Have you tried the AEC in DirectSound? If this AEC is usable for all sound cards,<BR>perhaps microsoft has solved this problem already. Can we choose proper options<BR>of the DirectSound to solved this problem and disable its AEC at the same time?<BR><BR>><BR>>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).<BR>>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,<BR><BR>>and now,i would dive first in DirectSound to try to obtain synchronized streams before passing them to speex.<BR><BR>Waiting for your good news.<BR><BR>>Regarding ASIO, you have to install a special "driver"? for it to work,and this seems unaceptable for general users.<BR><BR>>--- El jue, 22/7/10, limaoquan2000 <limaoquan2000@126.com> escribi:<BR><BR>>Thank you.<BR><BR>>But it will cost you a long time to get the accurate play and capture frequencies.<BR>>Does your program test two frequencies of the sound card each time Because<BR>>different sound cards have different frequency errors.<BR>>And the resampling program is also time consuming because the target frequency is<BR>>so close to the sampling frequency of the input signal, isn't it?<BR><BR>>I have tested
program based on Windows waveform functions and also DirectSound.<BR>>They have similar frequency error.<BR><BR>>BTW: What's your conclusion of ASIO driver? Why "it was of no practical use"?<BR><BR>>> 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.<BR>>> Also, I tried the ASIO driver,as an experiment. I think it worked, but it was of no practical use.<BR><BR><BR><SPAN title=neteasefooter>
<HR>
<A href="http://qiye.163.com/?163" rel=nofollow target=_blank>您想拥有和网易免费邮箱一样强大的软件吗?</A> </SPAN></DIV></BLOCKQUOTE></td></tr></table><br>