limaoquan2000
2010-Jun-09 19:13 UTC
[Speex-dev] Sound card problem in acoustic echo cancellation
Then why ONE sound card have different capture and playback rate? It must be ONE single physical clock generator which is used by both ADC and DAC in the sound card, isn't it? If you are a hardware engineer. Will you design two different physical clock for ADC and DAC seperately? What on earth causes this problem? Who knows its intrinsic real reason? Isn't there any other solutions? For example, I have also tested Microsoft MSN and Skype. It seems that AEC function of those softwares are all no problem. Their AEC are designed by GIPS. I guess that must be some solutions. The solution of GIPS is only echo suppression? Em 02-06-2010 04:41, ce09 at polyu.edu.hk escreveu:> Hi All, > > I am a research associate in the Hong Kong Polytechnic University. One of > my research interests is acoustic echo cancellation. Now I meet a big problem. > When I was testing my own AEC module, I found that it was almost perfect in > few computers but much worse in other computers. Then I tried AEC module in > speex, it was almost the same result. > > Then I found the reason is that sound cards of most computers have different > sampling and playing rate, so it is almost impossible for the adaptive filter > to converge and reach best result. For example, long time average sampling and > playing rate of a sound card is 7999.864Hz and 7980.129Hz respectively. Sound > cards of the computers which shown perfect AEC result are the only sound cards > which keep the same sampling and playing rate. > > Then, what can I do to solve the problem? Could you please give me any advice? > BTW: I am working on Windows XP platform and I have tried DirectSound. > > Your Sincerely > Li Maoquan-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20100610/f6d18531/attachment.htm
Anton A. Shpakovsky
2010-Jun-10 01:03 UTC
[Speex-dev] Sound card problem in acoustic echo cancellation
Hi. Just want to share some experience. I??ve tried several commercial AEC solutions ?C negotiations, signing NDA ?C but still no better results than speex get. Now I??m working with GIPS SDK ?C I heard that Skype do not use GIPS VoiceEngine anymore, but yes ?C WLM, Yahoo and AOL messengers are using GIPS VE. And it is not only echo suppression. Their SDK is very powerful and I hope soon I will get some positive results. As for now ?C SPEEX is the best. Regards, Anton A. Shpakovsky From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On Behalf Of limaoquan2000 Sent: Thursday, June 10, 2010 2:14 AM To: speex-dev at xiph.org Subject: Re: [Speex-dev] Sound card problem in acoustic echo cancellation Then why ONE sound card have different capture and playback rate? It must be ONE single physical clock generator which is used by both ADC and DAC in the sound card, isn't it? If you are a hardware engineer. Will you design two different physical clock for ADC and DAC seperately? What on earth causes this problem? Who knows its intrinsic real reason? Isn't there any other solutions? For example, I have also tested Microsoft MSN and Skype. It seems that AEC function of those softwares are all no problem. Their AEC are designed by GIPS. I guess that must be some solutions. The solution of GIPS is only echo suppression? Em 02-06-2010 04:41, ce09 at polyu.edu.hk escreveu:> Hi All, > > I am a research associate in the Hong Kong Polytechnic University. One of > my research interests is acoustic echo cancellation. Now I meet a big problem. > When I was testing my own AEC module, I found that it was almost perfect in > few computers but much worse in other computers. Then I tried AEC module in > speex, it was almost the same result. > > Then I found the reason is that sound cards of most computers have different > sampling and playing rate, so it is almost impossible for the adaptive filter > to converge and reach best result. For example, long time average sampling and > playing rate of a sound card is 7999.864Hz and 7980.129Hz respectively. Sound > cards of the computers which shown perfect AEC result are the only sound cards > which keep the same sampling and playing rate. > > Then, what can I do to solve the problem? Could you please give me any advice? > BTW: I am working on Windows XP platform and I have tried DirectSound. > > Your Sincerely > Li Maoquan________________________________ ?????????????????????????????????????????? <http://ym.163.com/?from=od3> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20100610/6b3508ff/attachment.htm
Guilherme Balena Versiani
2010-Jun-10 01:24 UTC
[Speex-dev] Sound card problem in acoustic echo cancellation
Yeah, the ADC and DAC work at different rates. I really don't know why these soundcards are designed this way, but I can tell you that this is very common. In fact, I didn't ever find a soundcard with the same capture and render rates. If you want to sinchronize capture and render parts, you need to implement a kind of buffer control, referenced as "skew control" (check it out). There is a very common control that removes or increases the delay when there is not enough energy on the output stream (i.e. the voice being acquired by the microphone). But these kind of controls seem to put AEC of Speex crazy... When the skew control occurs, normally the AEC stops to work fine. Regards, -- Guilherme Balena Versiani. 2010/6/9 limaoquan2000 <limaoquan2000 at 126.com>> Then why ONE sound card have different capture and playback rate? > It must be ONE single physical clock generator which is used by both ADC > and DAC > in the sound card, isn't it? > If you are a hardware engineer. Will you design two different physical > clock for > ADC and DAC seperately? > What on earth causes this problem? Who knows its intrinsic real reason? > > Isn't there any other solutions? > For example, I have also tested Microsoft MSN and Skype. It seems that AEC > function of those softwares are all no problem. Their AEC are designed by > GIPS. > I guess that must be some solutions. > The solution of GIPS is only echo suppression? > > Em 02-06-2010 04:41, ce09 at polyu.edu.hk escreveu: > > Hi All, > > > > I am a research associate in the Hong Kong Polytechnic University. One of > > my research interests is acoustic echo cancellation. Now I meet a big > problem. > > When I was testing my own AEC module, I found that it was almost perfect > in > > few computers but much worse in other computers. Then I tried AEC module > in > > speex, it was almost the same result. > > > > Then I found the reason is that sound cards of most computers have > different > > sampling and playing rate, so it is almost impossible for the adaptive > filter > > to converge and reach best result. For example, long time average > sampling and > > playing rate of a sound card is 7999.864Hz and 7980.129Hz respectively. > Sound > > cards of the computers which shown perfect AEC result are the only sound > cards > > which keep the same sampling and playing rate. > > > > Then, what can I do to solve the problem? Could you please give me any > advice? > > BTW: I am working on Windows XP platform and I have tried DirectSound. > > > > Your Sincerely > > Li Maoquan > > > > ------------------------------ > ????????????????????? <http://ym.163.com/?from=od3> > _______________________________________________ > Speex-dev mailing list > Speex-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20100609/c72286aa/attachment-0001.htm
Steve Underwood
2010-Jun-10 01:27 UTC
[Speex-dev] Sound card problem in acoustic echo cancellation
On 06/10/2010 03:13 AM, limaoquan2000 wrote:> Then why ONE sound card have different capture and playback rate? > It must be ONE single physical clock generator which is used by both > ADC and DAC > in the sound card, isn't it?It seems some cards use a PLL for their ADC, so they can lock to an incoming SPDIF signal, but always use a local crystal clock source for their DAC. These cards do not have their ADC and DAC synchronised. It seems like Skype's speakerphone works OK on these machines, so maybe they do something tricky to measure the slip rate and resynchronise in software. On the other hand, they might just fall back to a crude echo suppression scheme. Skype seems to do a reasonable job, though.> If you are a hardware engineer. Will you design two different physical > clock for > ADC and DAC seperately? > What on earth causes this problem? Who knows its intrinsic real reason? > > Isn't there any other solutions? > For example, I have also tested Microsoft MSN and Skype. It seems that AEC > function of those softwares are all no problem. Their AEC are designed > by GIPS. > I guess that must be some solutions. > The solution of GIPS is only echo suppression?Steve