【发布时间】:2013-09-23 02:07:20
【问题描述】:
我读过很多 VoIP echo 主题,例如 What is echo cancellation? Causes of Echo
这就是我的理解。假设有 A 和 B 通话,A 听到自己的声音(回声)
- 引起回声的是B。因为 B 的麦克风已经捕捉到 B 的声音和 B 的说话者声音(其中包含 A 的声音)
- 由于 B 引起回声,他必须在他身边实施回声消除。这种回声消除的工作原理如下:B 将保存 A 语音的副本,并检查 B 将发送的数据是否包含此副本。如果是,B 必须从传输数据中减去这个副本
这是对的吗?如有错误请指正
【问题讨论】:
-
关于 AEC 的实际实施方式,您在 (2) 中的基本原理是正确的 - 请参阅:en.wikipedia.org/wiki/Echo_cancellation
-
@PaulR 关于 2)也许我对实际实现有误,但这个概念是对的吗?另外,我认为 A 也可以在他这边实现回声消除。 A可以检查返回的声音是否包含他以前的声音,对吗?
-
一般来说是的,两端都有 AEC,但 AEC 的工作方式与您想象的方式不同(而且比您想象的要复杂得多)。阅读我在上面链接的维基百科页面并学习adaptive filters。对于实际实现,您还需要了解 Voice Activity Detection 之类的内容。
-
@PaulR 非常感谢,然后你可以把你的 cmets 变成答案
-
我在回答“这对吗?底部的问题。回声不仅是由 B 手机中的麦克风引起的(它可以是混合等)。延迟部分也很重要,因为在 A 和 B 之间没有任何实质性延迟,“泄漏”的声音不会被听到为回声(只是更多的侧音)。理论上,回声消除可以在任一端完成 - 这是一个不断发展的领域,现在交换机中的技术通常是一种共享资源,可以根据需要添加到单个呼叫中,并且现在手机本身也存在消除器。
标签: echo voip microphone speaker echo-cancellation