[Speex-dev] AEC - Echo is cancelled however.....

Marco Pierleoni pierleoni.m at gmail.com
Tue May 11 07:00:01 PDT 2010


2010/5/11 Elston Sa <jose at rebaca.com>:
> Is there an API in speex or have you implemented your own?

I don't know if there is an API in speex for this, probably not. There
is a test for AEC which does something very similar.
I implemented it starting from a FFT library. It is quite easy to do.

>
> I am currently trying to find one. But if you could point me to one it will
> reduce my search time. :)
>
> Many Thanks,
>
> Elston
>
> -----Original Message-----
> From: Marco Pierleoni [mailto:pierleoni.m at gmail.com]
> Sent: Tuesday, May 11, 2010 5:55 PM
> To: Elston Sa
> Cc: speex-dev at xiph.org
> Subject: Re: [Speex-dev] AEC - Echo is cancelled however.....
>
> 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
>>>
>>
>>
>
>


More information about the Speex-dev mailing list