4

I've read many VoIP echo topics, like What is echo cancellation? Causes of Echo

And here is what I understand. Supposed there are A and B calling, and A hears his own voice (echo)

enter image description here

  1. Its B who causes echo. Because B's microphone has captured B's voice and B's speaker voice (which contains A 's voice)
  2. Since B causes echo, he must implements echo cancellation on his side. This echo cancellation works like this: B will save a copy of A voice, and check if the data B will send contains this copy. If yes, B must substract this copy from the transmit data

Is this right? Please correct me if I'm wrong

onmyway133
  • 45,645
  • 31
  • 257
  • 263
  • 1
    You're right about the rationale but wrong in (2) as to how AEC is actually implemented - see: https://en.wikipedia.org/wiki/Echo_cancellation – Paul R Sep 18 '13 at 10:47
  • 1
    @PaulR About 2) maybe I'm wrong about the actual implementation, but the concept is right? Also, I think A can implements echo cancellation on his side, too. A can check if the voice returned contains his previous voice, right? – onmyway133 Sep 18 '13 at 10:54
  • 1
    In general yes, you have AEC at both ends, but the way that AEC works is different from (and a lot more complex than) the way you imagine it. Read the Wikipedia page I linked to above and study [adaptive filters](https://en.wikipedia.org/wiki/Adaptive_filter) too. For an actual implementation you'll also need to understand things like [Voice Activity Detection](https://en.wikipedia.org/wiki/Voice_activity_detection). – Paul R Sep 18 '13 at 10:55
  • @PaulR many thanks, then you can turn your comments into answer – onmyway133 Sep 18 '13 at 10:58
  • Sure - consider it done... – Paul R Sep 18 '13 at 11:02
  • Your second link gives a bit more info - in particular be aware that the 'leak' of a certain amount of speech from the mouthpiece to the ear piece of the phone, called sidetone, is generally desired as it is more comfortable for users. Also much of the echo in any call involving a POTS leg to the call may be caused by the 2 to 4-wire conversion (the hybrid). Finally be aware that delay is important - if the call has little or no delay then the echo will arrive back at more or less the same time as A is speaking and will just sound like more sidetone. If it is delayed then it sounds like echo. – Mick Sep 18 '13 at 17:29
  • @Mick thanks for reply, I've already read all about them. But I ask about how software echo cancellor works, not how echo is introduced – onmyway133 Oct 01 '13 at 11:25
  • 1
    I was answering the 'is this right; question at the bottom. The echo is not only caused by the microphone in B's handset (it can be a hybrid etc). The delay part is important also as without any substantial delay between A and B the 'leaked' voice will not be heard as echo (just more sidetone). Echo cancellation can be done at either end in theory - it is an evolving filed and the technology in switches is often a pooled resource now that can be added to individual calls as required and cancellers are also present in handsets themselves now. – Mick Oct 02 '13 at 14:59

1 Answers1

2

You're right about the rationale, and that you typically need AEC at both ends of a telephony link, but you're somewhat wrong in (2) as to how AEC is actually implemented. I suggest starting with the Wikipedia entries on:

Paul R
  • 208,748
  • 37
  • 389
  • 560
  • can you show me a very basic explanation on how AEC is implemented? I read that it create some kinds of copy, then do substraction – onmyway133 Sep 18 '13 at 11:32
  • The most important part is the adaptive filter - read the link on adaptive filters to understand how they filter out the unwanted part of a signal (i.e. the echo in this case). – Paul R Sep 18 '13 at 11:48