Echo Cancellation, Art or Science? Part I
- On November 18, 2016
- AEC
Background
First, let us apologize that this post is going to be a bit technical. Don’t worry we will try to keep it as simple as possible. Echo cancellation, and more specifically Acoustic Echo Cancellation (AEC) is theoretically a very simple algorithm. The AEC algorithm receives a reference signal (i.e. the audio played to the speakers) & input signal (i.e. the audio captured from the microphone) and should remove the reflection of the reference signal in the input signal. Simple algorithm we said? Well, in reality it turns out to be a very difficult task. In this post we will discuss one of the major difficulties of AEC which is how to discover the echo path.
The Echo Path
Once a voice appears in the reference signal, it is then sent to the audio system and from there to the speakers. Afterwards, the voice bounces back and captured by the microphone (as echo). Then it goes via the audio system until it reaches the AEC as the part of the input signal. The time it takes from the initial appearance of the voice in the reference signal until it appears as echo in the input signal is called the echo path/delay. This time can be very short (i.e. few milliseconds) or very large (few hundred milliseconds or even more). There is no way to predict this time especially if there are non real-time components involved in the process – as it occurs with almost any VoIP application.
Finding the Echo Path
One of the basic activities done by AEC is to try and locate the right echo path in order to do the echo cancellation properly. If the echo path is short, then this task is relatively simple and the AEC can do a brute force search on the entire array until a best match is found. But, if the echo path is long and/or dynamic then such a method will simply not work in a timely manner. It will suffer from both the need for expensive computational resources and the vulnerability to a high number of false detections.
Therefore, whenever the echo path is long and/or dynamic, which is the case for most VoIP applications, a more sophisticated approach is required.
SoliCall offers robust software-based echo cancellation algorithms that are designed to efficiently handle these complex scenarios.
In future posts we will review other important factors that make the creation of a good echo cancellation such a difficult task.