Why Echo Cancellation for Android is a Difficult Task?
- On December 12, 2016
- CPU
Background
SoliCall offers different software solutions for audio quality improvements. One of the areas with an increasing demand is the need to solve echo issues with Android devices. As discussed in few of our previous posts on echo cancellation, in real-life conditions performing a good echo cancellation is a rather complex task. In addition, it turns out that for Android devices this task is even harder. In this post we will review the main reasons and alternative solutions.
Audio Channels and Synchronization
On Android’s audio system it is harder to synchronize both sides of the audio. In other words, it is hard to synchronize the audio packets that are being sent to the speakers with the audio packets that are being captured by the microphone. Since the former audio stream is used as a reference to cancel echo from the latter audio stream, unsynchronized audio streams forces the AEC to operate in a volatile environment.
CPU Power
Since Android devices are run on many brands of CPU and hardware platforms, in different cases the CPU is simply not powerful enough to simultaneously run all the applications and in addition to do a proper acoustic echo cancellation. Moreover, the shortage in CPU power might also lead to an increase in echo tail/delay that can quickly reach few hundred ms.
Solutions
There are two options to solve this problem:
1. Use an SDK with a professional AEC filter that has at least all the following capabilities: (a) Quickly recover from synchronization lost between the audio captured from the microphone and the audio rendered to the speakers; (b) Can handle an echo tail that might exceed the basic 128ms delay; (c) Can be configured to work with different CPU requirements in order to provide enough flexibility during integration.
2. Use a centralized solution for echo cancellation. In this option, you provide a centralized professional acoustic echo cancellation on behalf of the Android mobile devices. One of products that offer this kind of centralized echo cancellation software is the PBXMate.
[EDITED] For additional reading, take a look at AEC synchronization on Android.