背景
随着现代通信技术的发展,语音通信成为了人们生活中不可或缺的一部分。然而,环境噪声和回声等因素对语音通信质量产生了不良影响,降低了通信效率和用户体验,声学回声消除技术的应用变得越来越重要。如何评估回声消除的效果也变得极为关键,准确合理的评估有助于发现产品的不足,改进和提升产品竞争力。过去采用的是传统的主观评价,主观评价的缺点显而易见:
-
受到主观评价人员的主观因素影响大,结果不够客观可靠。
-
可重复性差,多次测试结果不一致。
-
效率低,对于 SDK 服务商来说,难以覆盖众多的平台和机型。
网易云信作为 RTC 技术厂商,A **EC 算法需要适配不同机型和环境下的语音通信场景。**因此客观量化的评估 AEC 尤为重要。本文将介绍一种基于实验数据分析的方法,用于客观地量化 AEC 效果。通过在各种机型和环境下的测试,详细分析 SDK 对回声抑制、语音质量等方面的影响,并给出相应的评价指标。通过这些量化数据,来评估 AEC 性能,为云信 SDK 在不同场景下的应用提供参考和指导,提高云信的语音通信领域的应用价值和市场竞争力,为用户提供更好的通信体验。
测试环境
软硬件列表
测试组网
回声消除客观测试中的硬件组网如下图所示,测试设备 A 放置在人工头前,测试过程中:远端设备 B 会发送语音信号到 A,同时人头会播放声音信号作为近端输入、散射场的音箱会模拟环境噪声,在接收设备 B 上采集到最终的信号用来分析。
测试方法
核心指标
对于回声消除,主观评价中主要关注以下几点:
-
初始漏回声:比如在进房间、上下麦过程中对端容易听到回声。
-
残留回声的大小。
-
残留回声的平稳度。
-
本端讲话或者本端有环境音对端人声有无压制(双讲)。
-
两端同时讲话,对端是否有漏回声(双讲)。
我们把这些主观感受量化成客观指标,利用开源和自研的方法实现对于回声效果的客观评估,如下表所示。
测试流程和场景分类
单讲测试
单讲测试流程比较简单:
-
由接收端设备 B 向着测试设备 A 发送一段信号。
-
设备 A 下行播放出来被自己的麦克风采集回去形成回声。
-
设备 A 的回声经过本端 AEC 处理,再经过 RTC 传输回设备 B。
-
再由设备 B 端录音,分析计算客观指标。
对于单讲的评估,主要分为两类方法,一是无参考的评估,主要分析最终信号的回声大小,平稳性等。另外一种是有参考的评估,是通过设备 A 附近的标麦录音作为参考,计算回声的消除力度。
单讲场景包括但不限于以下几种形式:
- 远端连续单讲
- 远端为数数字
- 远端为音乐信号
双讲测试
双讲测试过程中,为了计算双讲剪切和双讲回声等指标,需要测试两次,第一次只有远端信号,第二次远端和近端同时发声。
第一次的结果会作为双讲指标计算的输入:
-
由接收端设备 B 向着测试设备 A 发送一段信号。
-
设备 A 下行播放出来被自己的麦克风采集回去形成回声,同时人工嘴发声,也会被设备 A 一起采集,与回声叠加形成近端语音。
-
设备 A 的近端信号经过本端 AEC 处理,再经过 RTC 传输回设备 B。
-
再由设备 B 端录音,并分析计算客观指标。
双讲的评估一直是业界的难题,尽管有单讲的信号作为对比,但语音中残留从能量的角度会影响双讲剪切的客观指标计算,因此对于双讲场景,需要结合双讲回声、可懂度、MOS 分、双讲剪切等多个指标综合进行判断,且纯双讲段的回声残留无法有效计算,只能计算双讲语音间歇出的残留作为参考。
双讲场景包括但不限于以下几种形式:
- 远端为连续语音,近端正常讲话
- 远端为数数字,近端为正常语音
- 远端为数数字,近端音乐信号
模型打分
云信作为 RTC SDK 提供商,与硬件厂商不同,我们的 AEC 算法需要兼顾不同的平台和机型,不同设备上,扬声器和麦克风的布局导致回声大小不一,拿移动端设备举例,一次测试需要兼顾市面上不同厂商的主流机型。以下是某个版本中做的一组测试,对于每个机型,包含三个部分的数据:
-
**原始值:**由核心指标得到的原始结果,表示各个测试维度的绝对值。
-
**映射分数:**由原始值映射到百分制的分数,映射过程并非线性的,考虑了主观体验和惩罚机制。
-
**最终得分:**由各个指标的映射分数,经过加权计算得到总分。加权系数并非固定,根据实际的使用场景来调整。
结合前后版本的数据或竞品对比数据,就很容易对比两个版本或者两个 SDK 的优劣,如下图是我们对比了市面上两家友商的回声处理效果,从表格中可以看出厂商 B 的回声处理在 HF_SPEECH/HF_MUSIC/HS_MUSCI 三个模式下都好于竞品 A。竞品 A 还存在兼容性和稳定性差的问题,在部分机型上结果表现非常差。
结果分析
以实际测试的数据为例,来分析结果与实际听感上的一致性。下面是某机型版本 A 和版本 B 的测试结果对比,从结果上看版本 B 明显好于版本 A。
从客观数据上可以得到以下几点结论:
-
单讲时,两个版本的残留回声的绝对能量都不多,B 略好于A。
-
A 残留的回声明显不平稳,听感应该会很差。
-
A 双讲剪切比较多;B 的整体音质不错,可懂度较高。
-
A 的双讲段有漏小回声。
拿测试结果的录音来听音分析,与客观数据的结论基本一致(篇幅原因,展示的图片仅为测试中的某个用例):
- 两个版本都没有漏完整回声,回声残留 A 略大于 B,但是 A 的点残留很频繁,主观听不舒服。
- 双讲段 A 有 4-5 处明显的压制,语音听起来有明显的卡顿,且双讲中能听到小的回声,B 有一处语音结尾处有轻微的压制,总体上比较连续可懂。
环境展示
通过集成云信自己的 API 自动化,我们已经实现了 10 台以上的设备同时测试,只要把要测试的手机固定好,一键点击运行就可以自动生成测试报告。
成果和展望
依托算法同学的不懈努力,以及本方法的科学评估,云信的 AEC 算法得到了稳步的提升,从而为用户提供更加清晰、自然的音频通话体验。回声消除的量化评估方法为我们提供了一种全新的评估手段,将科学性和客观性融合在一起,从而更加准确地评估算法的表现。未来,我们将继续致力于技术创新和优化,提供更优质的音频服务,为用户带来更加出色的通信体验。