>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" target="_blank">您想拥有和网易免费邮箱一样强大的软件吗?</a>
</span>