本文属于“Dev for Dev”专栏系列,作者是Agora音视频实验室工程师黄毅清。
优化音频质量是一项复杂的系统工程,回声消除就是经常被讨论的话题之一。一般来说,回声消除的效果受设备本身的声学设计、声学环境、软件系统等多种因素影响。传统的回声消除方法有线性回声消除、滤波非线性处理等,但目前回声消除的前沿还面临着非线性回声消除、近端能量小于回声能量、立体声回声问题、麦克风和参考信号时钟不一致、参考信号不准确、缺乏可靠的时延估计方法等难点。Agora 音频技术团队根据自身的实践,推出了特殊场景下音频评测系列文章,本文是关于回声消除的,在此抛出一些想法,诚邀业界同仁批评指正。
随着4G/5G的应用,实时音视频领域也得到了快速发展,实时语音的质量越来越受到人们的关注。回声、延迟、卡顿等因素成为人们关注实时语音质量的主要方面。本文主要介绍实时语音通话中的回声消除问题。
回声是指说话者播放的声音被麦克风收集后,回传到远端的现象。所有通信系统都必须进行回声消除,否则将严重影响通信质量。回声消除带来的问题主要分为回声遗漏和双语丢失两类。直观的表现就是说话者听到自己的声音,对方的声音卡顿甚至听不清。
图 1:回声的成因
01
回声消除的几个问题
■图2:回声消除解决方案
影响回音消除的因素有很多,比如音量问题,当播放的信号太大时,很容易产生回音,根本原因主要有以下几点:
1、麦克风采集到的回声信号溢出(削波),引入非线性回声;
2、音量过大加剧硬件设备本身的振动,引入非线性元件;
3、麦克风采集到的回声信号虽未溢出但远大于近端语音信号,造成双讲时出现严重掉词甚至听不清的情况。
此外,时延抖动、时钟偏移、采集或播放频率不稳定、非线性失真、回声路径变化、混响、硬件3A(手机自带3A)处理效果等都是影响回声消除的常见因素。从宏观上看,采集或播放设备的外观(扬声器/麦克风设备型号及排列方式)、手机自带的3A处理算法(手机厂商、系统及型号)、传输算法、环境因素以及复杂多变的通信场景等都会对回声消除产生不同的影响。
02
回声消除的评估方法
产生回声的场景如此复杂,那么我们该如何评估回声消除效果呢?在实验室场景中,我们对回声消除效果的评估主要分为两部分,第一部分是人工主观测试,重点关注各类复杂场景下是否存在回声问题;第二部分是客观自动化测试,重点关注大量不同机型/系统版本下是否存在回声问题。
人工主观测试比较好理解,就是人工互相沟通,模拟各类用户可能使用的场景,测试是否有回音。常见的场景包括主播与观众的切换、切换到后台/锁屏、打开/关闭(音视频相关)第三方应用、打断等,以及在各类终端设备(耳机/外置音箱/蓝牙耳机)/环境(安静/吵闹)之间切换。
那么客观自动化测试如何检测回声?
我们构建了一套针对 AEC 的评估体系,适用于声网和行业 SDK 的所有场景。使用的语料是在消声室中录制的人声语料,并在用户的顶级机型和常见问题机型上进行评估。设备音量调节为官方推荐音量,通过测试机扬声器的播放完整性、测试机扬声器的播放响度、长短回声占比、残余回声大小等指标来衡量 AEC 的质量。
03
具体的 AEC 客观评价方法
该测试方法采用测试装置统一发送和接收测试信号,可以进行回归测试,在大规模自动化测试中稳定性好,并能大大提高测试效率。
步骤1:连接本地设备到远程设备;
步骤2:计算机通过声卡将音频信号输出至近端标准设备,以使近端设备采集测试音频信号;
步骤3:在远程设备上播放接收到的音频信号;
步骤4:声卡同步采集近端设备接收到的待测试音频信号;
步骤5:通过检测要测试的音频信号的响度和持续时间来确定远程设备的回声消除质量。
■图3:电波暗室测试环境
为了评估理想条件下的回音消除能力,我们在消声室中进行测试,以隔离噪音并最大程度地减少回音。图3是测试环境的部分显示。我们对选定的测试机器进行了批量测试。
描述
A1
全双工无衰减
A2
全双工在发送方向有衰减
剪辑很短
音节缩短造成损害
剪辑导致单词丢失
非常短的残留回声
间歇性返回
连续回声
■表1 回声消除性能类型描述
参照3GPP对回声消除性能分级的描述(表1)以及回声消除性能的分级(图4),我们将回声占比分为25ms以下回声占比、25~150ms回声占比、150ms以上回声占比三个等级,来定义回声的严重程度。
■ 图4 回声消除性能分类
04
测试结果分析
以下是Agora和行业解决方案的AEC评测结果。
■AEC评估结果(部分)
以上是在理想情况下对回声消除的评测,但在实际通信中,会出现各种复杂环境,产生不同程度的回声。为了模拟真实情况下的回声,我们使用可调混响室中录制的语料进行回声分析。以下是 AEC 评测方案在四种不同场景、不同档位下的部分数据。同时,也可以在频繁进出信道或长时间压力测试下测试回声消除的效果。