In previous posts on echo cancellation we discussed the challenge of echo cancellation algorithms to efficiently handle the echo path, especially when it is long and volatile, and the complexity introduced by the invalidation phenomena. In this post we will discuss another aspect in echo cancellation called Howling.
What is howling and how is it related to Echo?
Did you ever participate in a call, usually a conference call, in which suddenly everybody start hearing a sound similar to scream that keeps getting louder and louder? The answer is probably positive and what you heard is called howling. Once howling appears there is no way to continue with the conversation. Usually the best way to stop howling is to ask everybody on the call to mute their phones for few seconds and/or to lower the volume of their speakers.
Howling is the phenomena in which the echo from one participant is “travelling” to another participant and generates an amplified echo that in its turn travels back to the first participant and so on. This audio feedback keeps traveling between the participant and being amplified again and again. Therefore, it is clear that when howling appears, it is caused by the fact that at least two participants on the call have bad echo cancellation. This is the reason why howling is common in conference calls with many participants.
What should AEC do to prevent howling?
First of all, a good AEC must attenuate the echo to a level that will reduce the chance that howling will be generated in the first place. In addition a good AEC should have means to detect howling, even before the human ear can, and to immediately take drastic actions to eliminate it.
Detecting howling is not a simple task. To add to the complexity of things, a good AEC should also have mechanisms to minimize any disturbance to other howling-like electronic sounds like: DTMF tones, FAX tones, TDD tones etc. This is critical since any disturbance to these electronic sounds might severely impact the ability to robustly transfer faxes, DTMF commands etc.
[EDITED] The next post in this series discuss saturation.