Echo in VoIP and Altruism
- On November 18, 2016
- Acoustic Echo Cancellation
What is echo in telephony?
In a nutshell, echo is the phenomena in which your voice is being played back to your speakers. Echo has been with us since the early days of telephony. In the past, when most people where using PSTN lines, echo was less disturbing due to the fact that the delay in the calls, especially local calls, was very small (usually less than 100 milliseconds).
What has the delay got to do with echo?
The delay has nothing to do with the existence of echo but it has a great deal to do with the quality of the call. When there is a very small delay, your speech is being echoed while you are still talking and therefore being unnoticeable to your brain. But, when the delay is bigger the echo will be noticeable and drastically reduce the quality of the call.
What is causing the echo?
The source of echo depends on it type.
Acoustic Echo – usually originates from the far-end (i.e. the person you talk with). When he/she uses speakerphone, their microphone is picking up your voice as it is being played on their loudspeaker.
Hybrid echo – is usually caused when using two-wire circuits. Two-wire circuits are still being used by most subscribers.
Echo Cancellation and Altruism
All standard echo cancellation modules strive to cancel echo that is caused by your equipment (a.k.a. near-end echo cancellation) and therefore enabling the far-end (i.e. the person you talk with) to enjoy good audio quality. Therefore when you invest good money on high quality equipment with superb echo cancellation you actually help your peers to enjoy good audio quality. But… wait a minute… it is you that invested the money – don’t you also deserve to enjoy from a better audio quality?
Far-End Echo Cancellation
In order for you to enjoy a better audio quality you need to cancel the echo that is coming from the far-end (i.e. the person you talk with). Imagine how nice it could be if when you start hearing echo you simply press a button on your phone which immediately activates far-end echo cancellation to cancel the echo that you hear. Or even better, if the far-end echo cancellation will simply kick in automatically on your phone or server.
Why didn’t my VoIP vendors offer me Far-End Echo Cancelation?
The reason why you did not hear about this option from your VoIP vendors is since they do not have it. Developing far-end echo cancellation is far more complex than any regular (near-end) echo cancellation algorithm. Far-end echo cancellation needs to efficiently work in a very complex environment:
- Long delays. In order to cancel echo coming from the far end, the algorithm must cope with delays that can be even bigger then 500ms. This means that the algorithm has to search big area of the audio signal in order to find the correct echo tail and this search has to be done with minimal load on the CPU.
- Lossy audio codec distortion. In order to save bandwidth, usually the audio is not transmitted on the network as-is but it goes via some lossy audio compression/decompression algorithms. Therefore, far-end echo cancellation must need to be able to overcome this distortion when comparing the original signal to the distorted echo signal.
- Rapid changes in delay. Many network devices actively manipulate the flow of audio stream. A very common example is the Discontinuous Transmission (DTX), a.k.a. “silence suppression” in which the audio stream will not be transmitted during silence periods. As a result the delay keeps changing rapidly and the echo cancellation algorithm has to quickly adapt to it.
- Packet loss. From time to time audio packets might get lost in the network or might arrive too late adding to the disorder that the echo cancellation algorithm has to cope with.
Is there a commercial Far-End Echo Cancelation available today?
Yes. SoliCall has developed a unique far-end echo cancellation algorithm that can overcome the above mentioned problems. Sometimes this technique is also called server-side/network echo cancellation. For more information – please take a look at echo cancellation software.