网易云信回声消除量化评估方法

背景

随着现代通信技术的发展,语音通信成为了人们生活中不可或缺的一部分。然而,环境噪声和回声等因素对语音通信质量产生了不良影响,降低了通信效率和用户体验,声学回声消除技术的应用变得越来越重要。如何评估回声消除的效果也变得极为关键,准确合理的评估有助于发现产品的不足,改进和提升产品竞争力。过去采用的是传统的主观评价,主观评价的缺点显而易见:

  • 受到主观评价人员的主观因素影响大,结果不够客观可靠。

  • 可重复性差,多次测试结果不一致。

  • 效率低,对于 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 算法得到了稳步的提升,从而为用户提供更加清晰、自然的音频通话体验。回声消除的量化评估方法为我们提供了一种全新的评估手段,将科学性和客观性融合在一起,从而更加准确地评估算法的表现。未来,我们将继续致力于技术创新和优化,提供更优质的音频服务,为用户带来更加出色的通信体验。

相关推荐
关键帧Keyframe2 天前
音视频面试题集锦第 15 期 | 编辑 SDK 架构 | 直播回声 | 播放器架构
音视频开发·视频编码·客户端
关键帧Keyframe7 天前
iOS 不用 libyuv 也能高效实现 RGB/YUV 数据转换丨音视频工业实战
音视频开发·视频编码·客户端
关键帧Keyframe9 天前
音视频面试题集锦第 7 期
音视频开发·视频编码·客户端
关键帧Keyframe9 天前
音视频面试题集锦第 8 期
ios·音视频开发·客户端
蚝油菜花14 天前
MimicTalk:字节跳动和浙江大学联合推出 15 分钟生成 3D 说话人脸视频的生成模型
人工智能·开源·音视频开发
音视频牛哥15 天前
Android平台RTSP|RTMP播放器高效率如何回调YUV或RGB数据?
音视频开发·视频编码·直播
<Sunny>18 天前
MPP音视频总结
音视频开发·1024程序员节·海思mpp
GoFly开发者18 天前
GoFly快速开发框架已集成了RTSP流媒体服务器(直播、录播)代码插件-开发者集成流媒体服务器更加方便
go·音视频开发
音视频牛哥1 个月前
如何设计开发RTSP直播播放器?
音视频开发·视频编码·直播
dvlinker1 个月前
【音视频开发】使用支持硬件加速的D3D11绘图遇到的绘图失败与绘图崩溃问题的记录与总结
音视频开发·c/c++·视频播放·d3d11·d3d11绘图模式