1) Everytime a participant speaks there is a echo for a short duration (maybe a word or two) but as the participant continues to speak without a any break the echo is 95% cancelled (i.e there is a feeble echo still present if observed very carefully). 2) The moment the participant stops / pauses speaking and start talking again, scenario 1 is repeated as if the echo state has been re-initialized or reset. Please note that I observe this in a single audio session and not after restarting the application. I confirm that I am not re-initializing the echo state after the session starts. Is this normal? Is there any way I can keep the echo state to what it was when the participant not speaking. Also, any pointers on why I get a feeble echo back would be greatly appreciated. Thanks, Elston
Anton A. Shpakovsky
2010-May-10 09:12 UTC
[Speex-dev] AEC - Echo is cancelled however.....
Well, AFAIK AEC engine needs time to adapt. So probably that's why at the beginning of the conversation you hear the consequences of this adaptation. Btw, what sound system do you have? I mean laptop or arbitrary acoustic system? I'd like to know, cause I couldn't get enough echo cancellation with speex in my environment with standalone speakers AT ALL. -----Original Message----- From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On Behalf Of Elston Sa Sent: Monday, May 10, 2010 3:41 PM To: speex-dev at xiph.org Subject: [Speex-dev] AEC - Echo is cancelled however..... 1) Everytime a participant speaks there is a echo for a short duration (maybe a word or two) but as the participant continues to speak without a any break the echo is 95% cancelled (i.e there is a feeble echo still present if observed very carefully). 2) The moment the participant stops / pauses speaking and start talking again, scenario 1 is repeated as if the echo state has been re-initialized or reset. Please note that I observe this in a single audio session and not after restarting the application. I confirm that I am not re-initializing the echo state after the session starts. Is this normal? Is there any way I can keep the echo state to what it was when the participant not speaking. Also, any pointers on why I get a feeble echo back would be greatly appreciated. Thanks, Elston _______________________________________________ Speex-dev mailing list Speex-dev at xiph.org http://lists.xiph.org/mailman/listinfo/speex-dev
Yes. I guessed that too, however I am not sure why it keeps repeating every time the user stops / pauses and starts speaking again in a single session. I am using a laptop with standalone speakers. For echo cancellation to work one has to make sure that the ref and echo buffers are synchronized. I guess this is the most common problem. -Elston -----Original Message----- From: Anton A. Shpakovsky [mailto:saa at tomsksoft.com] Sent: Monday, May 10, 2010 2:43 PM To: Elston Sa; speex-dev at xiph.org Subject: RE: [Speex-dev] AEC - Echo is cancelled however..... Well, AFAIK AEC engine needs time to adapt. So probably that's why at the beginning of the conversation you hear the consequences of this adaptation. Btw, what sound system do you have? I mean laptop or arbitrary acoustic system? I'd like to know, cause I couldn't get enough echo cancellation with speex in my environment with standalone speakers AT ALL. -----Original Message----- From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On Behalf Of Elston Sa Sent: Monday, May 10, 2010 3:41 PM To: speex-dev at xiph.org Subject: [Speex-dev] AEC - Echo is cancelled however..... 1) Everytime a participant speaks there is a echo for a short duration (maybe a word or two) but as the participant continues to speak without a any break the echo is 95% cancelled (i.e there is a feeble echo still present if observed very carefully). 2) The moment the participant stops / pauses speaking and start talking again, scenario 1 is repeated as if the echo state has been re-initialized or reset. Please note that I observe this in a single audio session and not after restarting the application. I confirm that I am not re-initializing the echo state after the session starts. Is this normal? Is there any way I can keep the echo state to what it was when the participant not speaking. Also, any pointers on why I get a feeble echo back would be greatly appreciated. Thanks, Elston _______________________________________________ Speex-dev mailing list Speex-dev at xiph.org http://lists.xiph.org/mailman/listinfo/speex-dev
For what it's worth, I experience the same exact thing in my application... both the ~95% cancellation rate and the loss of convergence mid-stream. I don't know why the AEC "resets" between the pauses in speaking and seems to have to reconverge from scratch every time... seems to me it should attempt to hold the same convergence throughout the lifecycle of the stream once it finds it since the echo shouldn't change much... but I'm certainly no expert... Mark. ________________________________ From: Elston Sa <jose at rebaca.com> To: speex-dev at xiph.org Sent: Mon, May 10, 2010 4:40:47 AM Subject: [Speex-dev] AEC - Echo is cancelled however..... 1) Everytime a participant speaks there is a echo for a short duration (maybe a word or two) but as the participant continues to speak without a any break the echo is 95% cancelled (i.e there is a feeble echo still present if observed very carefully). 2) The moment the participant stops / pauses speaking and start talking again, scenario 1 is repeated as if the echo state has been re-initialized or reset. Please note that I observe this in a single audio session and not after restarting the application. I confirm that I am not re-initializing the echo state after the session starts. Is this normal? Is there any way I can keep the echo state to what it was when the participant not speaking. Also, any pointers on why I get a feeble echo back would be greatly appreciated. Thanks, Elston _______________________________________________ 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/20100510/585004e0/attachment.htm
Hi Helton, it is now several months that I am using the AEC speex. I experienced very good performance and I agree that the synchronization is the most important issue here. As a matter of fact I believe that your problem could derive from a not perfect synchronization. It seems that that filter, used in the AEC, is always adapting. When you have not a perfect synchronization, the adapting filter allows to cancel most of your echo, while the participant is talking. Once he stops to talk, the filter cannot adapt in the right way until he begins to talk again. I think that this is the cause of the small return of echo. I don't know the details of your application, but in my case I wanted to play audio packets incoming from the network, and I had similar problems until I put a jitterBuffer between the network and the audio device. This solution allows me to have a better scheduling of the packets sent to the audio device improving the synchronization. You should also consider that the sound card have an own internal buffer which can introduce some anomalies in the audio playing, like a small pause or an audio cut. Most of these anomalies are very difficult to be heard but they are important for the synchronization I hope that this could help. Marco 2010/5/10 Elston Sa <jose at rebaca.com>:> 1) Everytime a participant speaks there is a echo for a short duration > (maybe a word or two) but as the participant continues to speak without a > any break the echo is 95% cancelled (i.e there is a feeble echo still > present if observed very carefully). > 2) The moment the participant stops / pauses speaking and start talking > again, scenario 1 is repeated as if the echo state has been re-initialized > or reset. > > Please note that I observe this in a single audio session and not after > restarting the application. I confirm that I am not re-initializing the echo > state after the session starts. > > Is this normal? Is there any way I can keep the echo state to what it was > when the participant not speaking. > > Also, any pointers on why I get a feeble echo back would be greatly > appreciated. > > Thanks, > > Elston > > _______________________________________________ > Speex-dev mailing list > Speex-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev >
Marco, Thank you for your response. Is there a way I can determine if the synchronization is perfect or not? If not by how much it is off. - Elston -----Original Message----- From: Marco Pierleoni [mailto:pierleoni.m at gmail.com] Sent: Monday, May 10, 2010 3:46 PM To: Elston Sa Subject: Re: [Speex-dev] AEC - Echo is cancelled however..... Hi Helton, it is now several months that I am using the AEC speex. I experienced very good performance and I agree that the synchronization is the most important issue here. As a matter of fact I believe that your problem could derive from a not perfect synchronization. It seems that that filter, used in the AEC, is always adapting. When you have not a perfect synchronization, the adapting filter allows to cancel most of your echo, while the participant is talking. Once he stops to talk, the filter cannot adapt in the right way until he begins to talk again. I think that this is the cause of the small return of echo. I don't know the details of your application, but in my case I wanted to play audio packets incoming from the network, and I had similar problems until I put a jitterBuffer between the network and the audio device. This solution allows me to have a better scheduling of the packets sent to the audio device improving the synchronization. You should also consider that the sound card have an own internal buffer which can introduce some anomalies in the audio playing, like a small pause or an audio cut. Most of these anomalies are very difficult to be heard but they are important for the synchronization I hope that this could help. Marco 2010/5/10 Elston Sa <jose at rebaca.com>:> Yes. I guessed that too, however I am not sure why it keeps repeatingevery> time the user stops / pauses and starts speaking again in a singlesession.> > I am using a laptop with standalone speakers. For echo cancellation towork> one has to make sure that the ref and echo buffers are synchronized. Iguess> this is the most common problem. > > -Elston > > -----Original Message----- > From: Anton A. Shpakovsky [mailto:saa at tomsksoft.com] > Sent: Monday, May 10, 2010 2:43 PM > To: Elston Sa; speex-dev at xiph.org > Subject: RE: [Speex-dev] AEC - Echo is cancelled however..... > > Well, AFAIK AEC engine needs time to adapt. So probably that's why at > the beginning of the conversation > you hear the consequences of this adaptation. Btw, what sound system do > you have? I mean laptop or arbitrary > acoustic system? I'd like to know, cause I couldn't get enough echo > cancellation with speex in my environment with > standalone speakers AT ALL. > > > -----Original Message----- > From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On > Behalf Of Elston Sa > Sent: Monday, May 10, 2010 3:41 PM > To: speex-dev at xiph.org > Subject: [Speex-dev] AEC - Echo is cancelled however..... > > 1) Everytime a participant speaks there is a echo for a short duration > (maybe a word or two) but as the participant continues to speak without > a > any break the echo is 95% cancelled (i.e there is a feeble echo still > present if observed very carefully). > 2) The moment the participant stops / pauses speaking and start talking > again, scenario 1 is repeated as if the echo state has been > re-initialized > or reset. > > Please note that I observe this in a single audio session and not after > restarting the application. I confirm that I am not re-initializing the > echo > state after the session starts. > > Is this normal? Is there any way I can keep the echo state to what it > was > when the participant not speaking. > > Also, any pointers on why I get a feeble echo back would be greatly > appreciated. > > Thanks, > > Elston > > _______________________________________________ > Speex-dev mailing list > Speex-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev > > _______________________________________________ > Speex-dev mailing list > Speex-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev >
I usually use the cross-correlation between the speaker signal and the mic signal. It works pretty well. The problem is the you need enough data in order to get a good S/N. I compute the cross-correlation between 1.5 second data of each signals. In this way the application detection of any anomalies is quite slow. I am looking for something faster, but I fear it will be something very application dependent. Marco 2010/5/11 Elston Sa <jose at rebaca.com>:> Marco, > > Thank you for your response. > > Is there a way I can determine if the synchronization is perfect or not? If > not by how much it is off. > > - Elston > > -----Original Message----- > From: Marco Pierleoni [mailto:pierleoni.m at gmail.com] > Sent: Monday, May 10, 2010 3:46 PM > To: Elston Sa > Subject: Re: [Speex-dev] AEC - Echo is cancelled however..... > > Hi Helton, > > it is now several months that I am using the AEC speex. I experienced > very good performance and I agree that the synchronization is the most > important issue here. As a matter of fact I believe that your problem > could derive from a not perfect synchronization. > It seems that that filter, used in the AEC, is always adapting. When > you have not a perfect synchronization, the adapting filter allows to > cancel most of your echo, while the participant is talking. Once he > stops to talk, the filter cannot adapt in the right way until he > begins to talk again. > I think that this is the cause of the small return of echo. > > I don't know the details of your application, but in my case I wanted > to play audio packets incoming from the network, and I had similar > problems until I put a jitterBuffer between the network and the audio > device. This solution allows me to have a better scheduling of the > packets sent to the audio device improving the synchronization. > You should also consider that the sound card have an own internal > buffer which can introduce some anomalies in the audio playing, like a > small pause or an audio cut. Most of these anomalies are very > difficult to be heard but they are important for the synchronization > > I hope that this could help. > > Marco > > > > 2010/5/10 Elston Sa <jose at rebaca.com>: >> Yes. I guessed that too, however I am not sure why it keeps repeating > every >> time the user stops / pauses and starts speaking again in a single > session. >> >> I am using a laptop with standalone speakers. For echo cancellation to > work >> one has to make sure that the ref and echo buffers are synchronized. I > guess >> this is the most common problem. >> >> -Elston >> >> -----Original Message----- >> From: Anton A. Shpakovsky [mailto:saa at tomsksoft.com] >> Sent: Monday, May 10, 2010 2:43 PM >> To: Elston Sa; speex-dev at xiph.org >> Subject: RE: [Speex-dev] AEC - Echo is cancelled however..... >> >> Well, AFAIK AEC engine needs time to adapt. So probably that's why at >> the beginning of the conversation >> you hear the consequences of this adaptation. Btw, what sound system do >> you have? I mean laptop or arbitrary >> acoustic system? I'd like to know, cause I couldn't get enough echo >> cancellation with speex in my environment with >> standalone speakers AT ALL. >> >> >> -----Original Message----- >> From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On >> Behalf Of Elston Sa >> Sent: Monday, May 10, 2010 3:41 PM >> To: speex-dev at xiph.org >> Subject: [Speex-dev] AEC - Echo is cancelled however..... >> >> 1) Everytime a participant speaks there is a echo for a short duration >> (maybe a word or two) but as the participant continues to speak without >> a >> any break the echo is 95% cancelled (i.e there is a feeble echo still >> present if observed very carefully). >> 2) The moment the participant stops / pauses speaking and start talking >> again, scenario 1 is repeated as if the echo state has been >> re-initialized >> or reset. >> >> Please note that I observe this in a single audio session and not after >> restarting the application. I confirm that I am not re-initializing the >> echo >> state after the session starts. >> >> Is this normal? Is there any way I can keep the echo state to what it >> was >> when the participant not speaking. >> >> Also, any pointers on why I get a feeble echo back would be greatly >> appreciated. >> >> Thanks, >> >> Elston >> >> _______________________________________________ >> Speex-dev mailing list >> Speex-dev at xiph.org >> http://lists.xiph.org/mailman/listinfo/speex-dev >> >> _______________________________________________ >> Speex-dev mailing list >> Speex-dev at xiph.org >> http://lists.xiph.org/mailman/listinfo/speex-dev >> > >