AEC - 基础知识

声学回声消除 (AEC) 可防止远程会议中的远端参与者听到自己声音的回声。在电话呼叫或远程会议中,都有一个近端和一个远端。近端是您所在的位置,远端是呼叫中其他参与者所在的位置。在每个位置,至少有一个话筒和一个扬声器。

在您说话时,您的麦克风会拾取您的声音并将其传输到远端,而远端扬声器使得远端可以听到您的声音。当远端讲话时,远端话筒和近端扬声器让您可以听到远端所说的内容。

如果房间内始终只有一个麦克风打开,这不会造成什么问题。这被称为半双工通信,并不是一种非常令人满意的体验。当有一个人在说话时,其他人的麦克风都会被静音。因此您在说话时就无法听到远端的声音,这意味着如果您想插入一个观点或者想要澄清,在对方停止说话之前您是没有办法与之通信的,因为在对方说话时您的话筒处于静音状态。因此,在大多数情况下,半双工会议是无法接受的。

两个麦克风同时打开就会出现问题。这被称为全双工会议。远端开始讲话时,远端话筒将拾取远端讲话者的声音并发送给近端扬声器。然后近端话筒拾取近端扬声器音频信号并将其发送回远端扬声器。一开始看起来可能没什么问题,但使用模拟线路的电话呼叫的往返延迟通常至少为 80 到 100 毫秒。VoIP 呼叫的延迟时间更长,视频会议延迟通常为 1 秒或更长时间。这意味着远端说话者每次说话时都能听到自己的回声,而这种回声会使得双方通信几乎无法进行。

通过将音频信号与其自身的反信号混合可以消除该音频信号,因此,应当有可能使麦克风忽略扬声器发出的声音。我们确切地知道音频信号发送给扬声器时的状况。但是,这与麦克风拾取的音频不完全匹配。扬声器发出的音频被房间内的表面多次反射,而这些反射会在不同的时间到达麦克风;每个反射都有不同的频率被房间内的各种表面和物体吸收或阻挡。现在,每一个反射的声音都与原始信号大不相同,彼此之间也相差甚远。

要从麦克风信号中去除扬声器音频信号,AEC 算法首先需要弄清楚扬声器音频在到达麦克风时是什么样的。AEC 算法将麦克风音频与发送到扬声器的音频进行比较,以生成一个室内脉冲响应。此室内脉冲响应随后将成为滤波器的基础,用以在麦克风信号中消除扬声器音频信号。