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

news2024/10/7 6:47:21

背景

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

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

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

  • 效率低,对于 SDK 服务商来说,难以覆盖众多的平台和机型。

网易云信作为 RTC 技术厂商,AEC 算法需要适配不同机型和环境下的语音通信场景。因此客观量化的评估 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 算法得到了稳步的提升,从而为用户提供更加清晰、自然的音频通话体验。回声消除的量化评估方法为我们提供了一种全新的评估手段,将科学性和客观性融合在一起,从而更加准确地评估算法的表现。未来,我们将继续致力于技术创新和优化,提供更优质的音频服务,为用户带来更加出色的通信体验。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/859561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解如何计算字符中的字节数

文章目录 字符概念转义 进制的表示前缀区分后缀区分 什么是ASCII产生表述局限性字节计算 什么是Unicode编码方式UCS-2UCS-4 实现方式UTF的字节序和BOM字节计算 JavaScript中使用字符字符使用缺陷规避字符使用缺陷 MIME 编码Base64编码字节计算QP(Quote-Printable) 总结 字符概念…

进阶-LayUI的基本必知入门教程使用3-layui-laydate选择的值怎么获取?苟日新一刻钟总结反观:

1 效果镇楼: 对于layui框架的刚接触没几天,但是您的年轻同事为啥能搞出来功能啊!? 到您就不行了呢? 这就是您对您饭碗的态度了吗! 但是,是您尽力了,还能说明啥子问题? 就…

SOLIDWORKS自动标注插件

在设计工作中,三维模型设计好之后,还要创建二维工程图,用来指导加工生产。二维图出图的过程是一个非常枯燥的过程,而且还需要根据公司规范来进行尺寸标注、公差标注等,所以有时候,可能建模只用了几分钟&…

在UOS系统中管理ORACLE数据库

在明确了“数字中国”建设战略后。自主创新与国产化已成为我国实现科技强国、经济强国的发展趋势与行业共识。 即信息技术应用创新产业,简称“信创”。 而现有的国产操作系统,虽然已日趋成熟,但因为很多应用软件由国外垄断,因此…

一键获取数百张免费商用人脸!AI人脸生成器来袭

随着科技的发展,人工智能正在渗透到生活的各个角落,设计行业也不例外。在网页、APP、PPT 等界面设计中,设计师经常需要插入真实的人脸素材,以增强作品的真实感和场景化。但是获取素材既不容易,质量和价格也难免成为设计…

PK Nounique CASCADE DROP INDEX keep index

Explicit Control Over Indexes when Creating, Disabling, or Dropping PK/Unique Constraints (Doc ID 139666.1)​编辑To Bottom PURPOSEIn Oracle 9i, the DBA has an explicit control over how indexes are affectedwhile creating, disabling, or dropping Primary Ke…

【网络基础实战之路】基于BGP协议连接三个AS区域的实战详解

系列文章传送门: 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 【网络基础实战之路】基于…

网页版的微信客户管理系统是怎样的?

登录账号密码: 微信扫码登录到系统上: 支持多个微信号登录到系统,聚合管理聊天,可以快速查看客服号的聊天记录 群发助手:群发可突破200 朋友圈功能:定时发圈,支持多个微信账号同步发圈、跟圈和一…

恒运资本:投资前瞻:储能产业迎政策密集支持 AIGC有望进入加速状态

昨日,沪指、深成指盘中弱势下探,创业板指冲高回落。到收盘,沪指跌0.49%报3244.49点,深成指跌0.53%报11039.45点,创业板指微跌0.01%报2228.73点,科创50指数跌0.85%;两市合计成交7366亿元&#xf…

STM32 F103C8T6学习笔记4:时钟树、滴答计时器、定时器定时中断

今日理解一下STM32F103 C8T6的时钟与时钟系统、滴答计时器、定时器计时中断的配置,文章提供原理,代码,测试工程下载。 目录 时钟树与时钟系统: 滴答计时器: 定时器计时中断: 测试结果: 测…

echarts3d柱状图

//画立方体三个面 const CubeLeft echarts.graphic.extendShape({shape: {x: 0,y: 0,width: 9.5, //柱状图宽zWidth: 4, //阴影折角宽zHeight: 3, //阴影折角高},buildPath: function (ctx, shape) {const api shape.api;const xAxisPoint api.coord([shape.xValue, 0]);con…

OSCS 闭门研讨第一期实录:软件供应链安全建设价值

2023 年 7 月 18 日晚 19:30,软件供应链安全技术交流群(OSCS)组织了第一次线上的闭门研讨会,本次研讨会我们收到 71 个来自各个企业关注软件供应链安全的技术专家的报名,根据研讨会参与规则要求,我们对报名…

一文告诉你,Intellij IDEA神器隐藏的11种实用小技巧!

el/2022/10/4 6:58:50 点击上方“程序员大咖”,选择“置顶公众号” 关键时刻,第一时间送达! Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜。出于对Intellij IDEA的喜爱&#x…

【uniapp】uniapp打包H5(网页端):

文章目录 一、设置appid:二、设置router:三、打包:【1】[CLI 发行uni-app到H5:https://hx.dcloud.net.cn/cli/publish-h5](https://hx.dcloud.net.cn/cli/publish-h5)【2】HBuilderX 四、最终效果: 一、设置appid&…

W5100S-EVB-PICO 做TCP Server进行回环测试(六)

前言 上一章我们用W5100S-EVB-PICO开发板做TCP 客户端连接服务器进行数据回环测试,那么本章将用开发板做TCP服务器来进行数据回环测试。 TCP是什么?什么是TCP Server?能干什么? TCP (Transmission Control Protocol) 是一种面向连…

芯片常见测试手段:CP测试和FT测试

参考链接: 芯片测试的术语解释(FT、CP),持续更新...._ft测试_染不尽的流年的博客-CSDN博客 如何区分芯片cp测试和ft测试 (baidu.com) 芯片常见测试手段:CP测试和FT测试 - 测量仪表 - 电子发烧友网 芯片测试是极其重要…

2023年加湿器市场数据分析(天猫数据分析怎么做)

随着人们生活水平提高、空调广泛使用,导致皮肤紧绷、口舌干燥、咳嗽感冒等空调病的滋生。可以看出,空气湿度与人体健康以及日常生活有着密切的联系。而加湿器作为室内空气湿度控制的重要工具,在近年来受到了越来越多的重视。根据鲸参谋电商数…

pytest 常用命令参数

-x 用例一旦失败或错误时就立即停止执行 共两条用例,运行第一条报错失败或报错,第二条就不会执行 pytest -vs -x test_pytest_study.py::TestCommon1 共2条用例,当执行到第一条失败时候,第二条不执行 --maxfailnum …

快速入门:【c# 之 Winform开发】

C#基础 面向对象(OOP) c语言是面向过程。 c是面向过程面向对象。 c#是纯粹的面向对象: 核心思想是以人的思维习惯来分析和解决问题。万物皆对象。 面向对象开发步骤: 分析对象 特征行为关系(对象关系/类关系) 写代码: 特征–>成员变量 方法–>成员方法 实例化–具体对…

26.配电网规划——考虑潮流约束的配电网规划

MATLAB代码直达:26.多时段-考虑潮流约束的配电网规划 clc;clear;close all; %% 导入数据 load(data.mat); MGpowerxlsread(MG1-3.xlsx); % 微电网的日负荷曲线 nt3 ; % 变压所个数 Sn25; % 变电所容量 MVA G…