There are two types of echoes in voice calls:
1. Circuit echo (already resolved)
2. Acoustic echo
Two echo cancellation modules are designed in the WEBRTC source code:
1.AEC (Acoustic Echo canceller): PC side
2.AECM (Acoustic Echo Canceller mobile): Mobile
AECM:
Causes of acoustic Echo:
The voice of the proximal speaker is picked up by his microphone and transmitted to the far end via the network,
The sound from the remote speaker is picked up by the microphone and re-sent back to the proximal end via the network.
Coupled with the effects of various delays such as networking and data processing, the near-end calls can hear their own words from the speakers and produce echoes.
The structure of the Echo Canceller AECM used in the WEBRTC. The adaptive filter plays the most important role, the echo path is estimated by the tap coefficient, and the error signal is used as the adaptive adjustment coefficient of the feedback region.
Detailed process:
The remote generation signal is captured by the microphone------> transmitted to the proximal end (the adaptive filter holds a certain length of the remote signal to the buffer-clean signal)------> The Near-end speaker broadcasts, after multiple reflections produce echoes. The echo signal + the near-end voice enters the adaptive filter (with noise signal).
Noisy signal-CLEAN signal = Error signal
The error signal is fed back to the filter, adjusting the size of the filter coefficient, knowing that the error signal is 0, eliminating the echo.
WEBRTC echo Cancellation (1)