13、AEC性能评估:ERLE计算、PESQ、MOS分

做音频处理这么多年,我见过太多「听起来不错,一测就垮」的案例。回声消除做得好不好,不能光靠耳朵听——你得有数据说话。这一章,我们就来聊聊AEC性能评估的三个核心指标:ERLE、PESQ和MOS分。

说白了,这三个指标分别回答三个问题:回声消干净了吗?语音质量受损了吗?用户觉得怎么样?

13.1 ERLE:回声返回损耗增强

ERLE(Echo Return Loss Enhancement)是衡量AEC对回声抑制能力的核心指标。它的计算公式很简单:

ERLE(dB) = 10 * log10( E[ d²(n) ] / E[ e²(n) ] )

其中 d(n) 是近端麦克风采集到的信号(包含回声),e(n) 是AEC处理后的残差信号。ERLE值越大,说明回声抑制得越干净。

实际项目中的经验值:

场景 ERLE典型值 说明
单讲(远端说话) 25-40 dB 远端说话时,近端麦克风应几乎听不到回声
双讲(双方同时说话) 10-20 dB 双讲时AEC会保守一些,避免损伤近端语音
非线性失真场景 15-25 dB 扬声器失真严重时,ERLE会明显下降

关键点:ERLE不能只看平均值,要看时变曲线。我习惯把ERLE随时间变化的曲线画出来,观察是否有「掉坑」的地方——比如双讲开始瞬间ERLE骤降,那说明双讲检测没做好。

我的小技巧:计算ERLE时,记得先做VAD(语音活动检测)分段。只计算远端说话、近端静音的时间段,否则双讲段的ERLE会把整体数值拉低,掩盖真实性能。

13.2 PESQ:语音质量感知评估

PESQ(Perceptual Evaluation of Speech Quality)是ITU-T P.862标准定义的客观语音质量评估方法。它模拟人耳听觉特性,输出一个-0.5到4.5之间的分数。

PESQ的输入是两个音频文件:参考信号(原始近端语音)和退化信号(经过AEC处理后的近端语音)。算法会比较两者的差异,给出一个客观评分。

PESQ分数解读:

PESQ分数 主观感受 常见场景
4.0 - 4.5 几乎无感知损伤 高质量AEC + 低噪声环境
3.0 - 4.0 轻微损伤,可接受 大部分商用AEC的水平
2.0 - 3.0 明显损伤,影响沟通 低端AEC或高噪声场景
< 2.0 严重损伤,不可用 AEC失效或参数严重错误

注意:PESQ对非线性失真非常敏感。我曾经遇到一个项目,AEC把回声消得很干净(ERLE 35dB),但PESQ只有2.8——后来发现是NLMS的步长设置太大,导致近端语音被过度削波。ERLE好看,不代表语音质量好。

13.3 MOS分:主观与客观的桥梁

MOS(Mean Opinion Score)是ITU-T P.800定义的主观评价方法。它让一组听音人对语音质量打分,取平均值。MOS分范围1-5,5分代表完美。

但主观测试成本高、周期长。所以业界常用PESQ、POLQA等客观算法来预测MOS分。PESQ到MOS的映射关系大致如下:

MOS ≈ 1 + 0.999 * PESQ   (PESQ在1.0-4.5范围内近似线性)

不过这个映射并不精确。我个人更推荐直接使用ITU-T P.862.1附录中的映射表,或者用POLQA(P.863)——它对现代编解码器(如Opus、AAC)的评估更准确。

三种指标的对比:

指标 衡量什么 优点 缺点
ERLE 回声抑制程度 计算简单,实时性好 不能反映语音损伤
PESQ 语音质量损伤 与主观感受相关性高 对非线性失真敏感
MOS 用户主观体验 最接近真实感受 测试成本高,周期长

13.4 评估流程与工具

在实际项目中,我通常按以下流程做AEC性能评估:

  1. 录制测试数据:使用人工嘴和仿真头,录制远端信号、近端信号、回声路径的冲激响应。
  2. 离线处理:用AEC算法处理录制好的数据,得到处理后的近端信号。
  3. 计算ERLE:分段计算ERLE,画出时变曲线,观察是否有异常波动。
  4. 计算PESQ:用ITU-T参考软件或开源实现(如pypesq)计算PESQ分数。
  5. 主观听音:找3-5个人做盲听测试,给出MOS分。

我的经验:不要只看一个指标。ERLE高但PESQ低,说明AEC「用力过猛」;PESQ高但ERLE低,说明回声没消干净。三个指标要综合看,才能全面评估AEC性能。

13.5 知识体系图

下面这张图展示了AEC性能评估的核心逻辑:

AEC性能评估体系 AEC性能评估 ERLE(回声抑制) PESQ(语音质量) MOS(主观体验) 单讲ERLE ≥ 25dB 双讲ERLE ≥ 10dB PESQ ≥ 3.0 可接受 PESQ ≥ 3.5 良好 MOS ≥ 4.0 优秀 MOS ≥ 3.0 可用 三个指标综合评估,缺一不可

13.6 避坑指南

做AEC评估这些年,我踩过不少坑。挑几个典型的说说:

  • ERLE计算时没对齐延迟:回声路径有延迟,直接计算ERLE会得到负值。一定要先做延迟估计,对齐后再算。
  • PESQ对采样率敏感:PESQ标准要求16kHz采样率。如果你用48kHz的数据直接算,结果会偏差很大。记得先降采样。
  • MOS分不要只看平均值:我见过一个项目,MOS平均分3.8,但有个别样本只有1.5——后来发现是特定场景下AEC崩溃了。一定要看分布,不要被平均值骗了。

我的建议:建立自动化测试流水线。每次修改AEC算法后,自动跑一遍ERLE、PESQ、MOS的测试集,生成对比报告。这样能快速发现回归问题,避免「改了一个bug,引出三个新bug」的尴尬局面。

好了,这一章的内容就到这里。评估AEC性能,说白了就是三个维度:消得干净(ERLE)、说得清楚(PESQ)、听着舒服(MOS)。三者缺一不可,别偷懒。


公众号:蓝海资料掘金营,微信deep3321