一句话定义:声学回声消除(Acoustic Echo Cancellation, AEC)是一套信号处理技术,从麦克风采集的信号里“减掉”设备扬声器播放出去、又被房间反射回来的声音,只留下真正对着设备说话的人声。
视频会议、智能音箱、手机免提都有一个物理难题:扬声器放出的声音不会乖乖消失,它会撞到墙壁、桌面、天花板,再绕回麦克风。如果不处理,对方会听到自己的回声,语音助手则会把设备自己的播报当成用户指令,出现“自问自答”。AEC 的核心思路是“先建模,再相减”。它知道扬声器此刻在播放什么,这段信号叫参考信号(reference signal);然后它估计这段声音从扬声器到麦克风经过了怎样的路径——房间大小、墙面材质、设备摆放、人走动都会改变路径。这个估计由自适应滤波器(adaptive filter)完成。每来一帧音频,滤波器算出“预测回声”,再从麦克风信号里减去。路径变了,它就持续微调。
打个比方:你开着免提打电话,AEC 像一个模仿高手。它先听喇叭在说什么,再模仿这段话经过房间后的样子,然后告诉麦克风:“你收到的这段是喇叭的,划掉。”它不是把声音静音,而是做减法。
最难的是双讲(double-talk):用户和扬声器同时出声。此时既要继续消回声,又不能把用户声音一起减掉。所以 AEC 通常和语音活动检测(Voice Activity Detection, VAD)、噪声抑制(Noise Suppression, NS)、自动增益控制(Automatic Gain Control, AGC)配合工作。它们的区别可以用一张表看清:
| 技术 | 主要对付什么 | 需要参考信号吗 |
|---|---|---|
| AEC | 设备自己放出去、又绕回来的声音 | 需要 |
| NS | 空调、键盘、马路等环境噪声 | 不需要 |
| AGC | 音量忽大忽小 | 不需要 |
| VAD | 判断“有没有人在说话” | 不需要 |
这些模块常被统称为音频前端(audio front end)。AEC 负责“自己人”的干扰,NS 负责“外人”的干扰,二者不能互相替代。
对从业者,AEC 直接影响语音唤醒率、会议通话质量和耳机通透模式的自然度;对普通人,它决定了你喊语音助手时,设备会不会被自己的回答带偏。评估 AEC 通常看回声抑制量、近端语音保真度、双讲表现和收敛速度。具体产品能力以官方页面为准。
