0

I used aecm(webrtc) on my ARM-based embedded device for voice communication. Now, I'm trying to change aecm to aec for double-talk echo cancellation.

It's simple in aecm:

WebRtcAecm_Create()->WebRtcAecm_Init()->WebRtcAecm_BufferFarend()->WebRtcAecm_Process(). 

And all data(near, far, out) formats are 16bit signed short. However, just changing functions from WebRtcAecm_* to WebRtcAec_* and signed-short data to float(divided by 32768) didn't work.

I tried to find some examples in audio_processing unittest, but couldn't find any. What am I missing?

Jonathan Wheeler
  • 2,539
  • 1
  • 19
  • 29
azbo
  • 1
  • 1
  • 3

1 Answers1

0

WebRTC AEC just compare Farend Buffer and NearBuffer extracted from Mic and remove Echo in NearBuffer based on Farend. So Echo you want to clear must exist in Farend Buffer, then AEC could remove it. Please check your device latency, Basically Farend Buffer only maintain 128m/s length.