本文为「Dev for Dev 专栏」系列内容,作者为声网音视频实验室工程师 黄译庆。
音频质量的优化是一个复杂的系统工程,回声消除是其中一个老生常谈的话题,一般来说,回声消除的效果受设备本身的声学设计、声学环境、以及软件系统等诸多因素的影响。传统的方法做回声抵消包括线性回声抵消与滤波非线性处理,但目前回声消除的前沿领域仍面临着非线性回声抵消、近端能量小于回声能量、立体声的回声问题、麦克风与参考信号时钟不一致、参考信号不精准、缺乏可靠的时延预估方法等难题。声网音频技术团队基于自己的实践,推出了特殊场景下的音频测评系列文章,本文是回声消除篇──在此抛砖引玉、恳请业界同仁多加批评指正。
随着 4G/5G 的应用,实时音视频领域也迅猛发展,实时语音质量的也越来越受到人们的关注。回声、延时、卡顿等因素成为人们关注实时语音质量的主要方面。这篇文章主要来介绍下实时语音通话中的回声消除问题。
回声是指扬声器播放的声音又被麦克风采集并发回远端的现象。所有的通信系统必须进行回声消除,否则会严重影响通信质量。回声消除产生的问题主要分为两大类,漏回声和双讲掉字,其直观表现就是说话人听到了自己的声音和对方声音卡顿甚至听不见。
■图1:声学回声产生的原因
01 回声消除的几个难题
■ 图2:回声消除方案
影响回声消除的因素很多,比如音量问题──当播放的信号过大的时候,很容易产生回声,根因主要有以下几种:
1、麦克风采集到的回声信号溢出(clipping)而引入非线性回声;
2、音量过大加剧硬件设备自身的振动,引入非线性成分;
3、麦克风采集到的回声信号未溢出但远大于近端语音信号,双讲时造成严重的掉字甚至听不见。
此外,延时抖动、时钟偏移、采集或播放频率不稳、非线性失真、回声路径变化、混响、硬件 3A(手机自带 3A)的处理效果等等,都是常见的影响回声消除的因素。宏观上来讲,采集或者播放设备的外观(扬声器/麦克风器件型号及排列方式) ,手机自带的 3A 处理算法(手机的厂商,系统和型号),传输算法,环境因素以及复杂多变的通讯场景,都会对回声消除带来不同的影响。
02 回声消除的评测方法
回声产生的场景如此复杂,那我们怎么去进行回声消除的测评呢?在实验室场景中,我们对回声消除的测评,主要分为两部分来进行。第一部分,人工主观测试,重点关注各类复杂场景下,是否有回声问题;第二部分,客观自动化测试,重点关注大量的不同机型/系统版本,是否有回声问题。
人工主观测试,比较好理解。就是人工互通,去模拟各类用户可能使用的场景,去测试是否有回声的产生,常见的场景比如主播观众切换,切后台/锁屏,开启/关闭(与音视频相关的)第三方应用、打断等,以及配合各种终端设备(耳机/外放/蓝牙耳机)/环境(安静/嘈杂)的切换等。
那客观自动化测试如何去检测回声呢?
我们搭建了一套用于测评 AEC 的系统。该系统适用于声网及业内 SDK 的所有场景,使用的语料为在消音室录制的人声语料,在用户 top 机型和常见问题机型上进行评测。设备的音量均调至官方推荐音量,以测试机 speaker 的播放完整度、测试机 speaker 的播放响度、长短时回声占比、残留回声量等指标来衡量 AEC 质量。
03 具体的 AEC 客观测评方法
该测试方法是通过测试装置统一收发测试信号,可进行回归测试,在大批量的自动化测试中也据有较好的稳定性,能大幅提高测试效率。
步骤一:将近端设备与远端设备通信连接;
步骤二:电脑通过声卡输出音频信号到近端标准设备,供近端设备采集测试音频信号;
步骤三:在远端设备播放接收到的音频信号;
步骤四:声卡同步采集近端设备接收到的待测音频信号;
步骤五:通过检测待测音频信号响度和时长,来确定远端设备的回声消除质量。
■ 图3:消音室测试环境
为了评估在理想条件下回声消除的能力,我们在消音室里面进行测试。隔绝噪声并且尽量减少回声。图 3 是测试环境局部展示,我们在选择的测试机上进行批量测试。
描述 | |
---|---|
A1 | 全双工无衰减 |
A2 | 全双工在发送方向有衰减 |
B | 很短的削波 |
C | 造成损伤的音节短削波 |
D | 造成字损失的削波 |
E | 很短的残留回声 |
F | 间断回 |
G | 连续回声 |
****■表1 回声消除性能类型描述
我们根据 3GPP 对回声消除性能分类的描述(表 1)以及对回声消除性能的分类(图 4),将回声占比划分为低于 25ms 回声占比、25 ~ 150ms 回声占比以及超过 150ms 回声占比的三个级别,用以界定回声的严重程度。
■ 图4 回声消除性能分类
04 测试结果解析
以下是声网和业内方案的 AEC 评测结果。
■ AEC评测结果(部分)
以上是在理想情况下,对回声消除做的评估。但是在实际的通信中,会有各种复杂的环境,产生不同程度的回声。为了模拟现实情况下出现的回声,我们使用在可调混响室里录制语料来做回声分析。下面是 AEC 评测方案在四个不同场景、不同档位下的部分数据。同时,也可以测试在频繁进退频道或者长时压测下,回声消除的效果。
AEC 评测方案在四个不同场景、不同档位下的部分数据
可调混响室内可设的混响时间可达 0.2 ~ 2 秒,共 7 档,可模拟小型会议室、客厅、报告厅、大教室、电影院等不同面积大小的实际应用环境,为主观声音评价及客观算法质量评估提供可重复的全场景测试条件。
通过对数据的分析,我们可以清晰地看出回声消除的能力。使用大量的测试机型,可以考察出特定机型对回声消除的影响。通过不同版本间的比对,可以评估优化迭代的效果。通过跟业内方案的对比,可以检验我们研发工作的领先性。
(正文完)
可以分享下测试用的音频吗