聊聊实时音视频中的技术难点:回声消除+噪声消除
文 | 菊风媒体引擎资深研究团队
在各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题。音视频正在发展成为互联网线上沟通的必然趋势,在自然的交流环境中,回声和噪声是非常影响沟通体验的。不论是社交、教育、直播场景中的“疑难杂症”或是智能硬件通话中的“痛点问题”还是银行视频客服和企业视频会议的“严格要求”,都与回声噪音有关,因为人对音频都很敏感,声音一旦有任何瑕疵,人耳都会特别容易感觉到,而且难以忍受,这都会直接影响到用户体验及用户留存率。而回声消除与噪声消除也一直是实时音视频的技术难点。
菊风音视频引擎(Multi-Media Engine – MME)是针对 IP实时音视频通信所设计的涵盖音视频QoS处理、音视频编解码、网络打包传以及设备管理的四大模块的专业开发包。开发包具有丰富的音视频技术模块,其中的语音部分就包含声学回声消除、噪音消除等等。
声学回声消除AEC
声学回声是在麦克风采集了近端声音的同时也采集了扬声器发出来的声音,如果没有回声消除模块(Acoustic Echo Cancelation – AEC),对端将听到自己的声音又被传了回来,这就是恼人的回声产生的原理。容易理解,语音通话中,通常声学回声是在用户打开了免提模式,即开启扬声器时产生的,不打开免提模式的情况下一般不需要启用AEC。但是,有时候由于结构设计的问题,尽管没有打开免提模式,听筒上的声音也可能作为回声被麦克风采集到,此时也需要使用AEC。
消除回声就像把红墨水倒进蓝墨水里,混合在一起,然后要求把红墨水从蓝墨水中分离出来,这存在着很大的技术难度。对于采集端来说,无论是近端的声音,还是扬声器播放出来的声音,都是从空气中无差别地采集到的声音。对机器来说,远端信号播放出来的声音和近端的声音是没有任何区别的,就像对水来说红墨水和蓝墨水没有区别一样。回声消除的工作就是要把没有任何区别的远端回声和近端声音分离。AEC算法的基本思路是,参考远端信号将混有回音的近端信号“减去”回声。然而由于Speaker和MIC的模数转换和回声多途效应等因素,回声和远端参考信号具有非线性失真,无法做到完全消除回声的同时确保近端信号质量不下降,因此可能有回声残留或近端信号质量下降或被抑制。
菊风自研的音视频引擎自适应回声消除,可自动适配市场上各类新旧机型,大规模节约调试和部署成本。实际测试表明,AEC能显著改善双端通话的质量,下图是实测的回声消除前和回声消除后的语音质量的MOS(Mean Opinion Score)分的对比,Sig表示信号维度的质量,Echo表示回声消除维度的质量,Ovrl表示总体质量。
噪声消除
除了回声消除,噪声消除也是实时音视频中的必修课。噪声消除是一个十分复杂的技术,不同的环境噪声所需要的处理方法是不同的,纯软件的噪声消除的能力也是有限的,有条件采用带有消噪能力的双麦克风的平台可以获得更佳的消噪质量。
MME主要是通过软件的方式对噪声进行消除,它可以对输出和输入两个方向的语音信号进行处理,即对近端信号和远端信号处理,前者的调用接口为Mvc_DspSetAnrEnable(),后者调用接口为Mvc_DspSetRxAnrEnable()。如果两个通信端都采用了菊风MME,只要打开一个方向的噪声消除功能即可,同时进行两个处理过程跟一个过程相比不会提高信噪比(Signal-to-Noise Ratio : SNR),也不会提高语音质量。但如果另一个终端采用的是第三方媒体处理模块,且传过来的信号噪音比较大,则需要对远端信号进行处理,因此默认两个噪声消除的接口都打开。从数字信号处理角度来说,对远端信号和近端信号进行噪声消除是没有区别的,下图对比了语音叠加噪音信号经MME处理前后的波形。
从三个方面考查噪声消除模块的性能:其一是信号的保真度,要做到有效的语音信号不损失或微损失;其二是噪声消除了多少的考量,在信号不损失或微损失的情况下,做到尽可能的消除噪声;其三是声音给测试人员的整体感受,最终给测试人员的感受才是最有效的考量。下图是基于ITU-T P.835标准,对叠加了噪音信号经过MME的处理后的MOS分对比。实验表明,在平均-30dbov白噪音情况下,SNR上升12db,MOS上升1.13。
Sig - Speech signal rating scale
Bak - Background noise rating scale
Ovrl - Overall quality rating scale
聊聊实时音视频中的技术难点:回声消除+噪声消除相关推荐
- 聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除
聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除 在聊聊语音聊天室app源码各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题.音视频正在发展成为互联网线上沟通的 ...
- 深入浅出,聊聊实时音视频中的回声消除与降噪
在实时音频互动场景中,回声消除.降噪.自动增益(即 3A 算法)是直接影响音质和体验的重要环节之一.如何降低计算量,提升处理效率,如何兼容更多的设备.环境等,让3A 算法可以适应更多场景等一系列问题是 ...
- 依图在实时音视频中语音处理的挑战丨RTC Dev Meetup
前言 「语音处理」是实时互动领域中非常重要的一个场景,在声网发起的「RTC Dev Meetup丨语音处理在实时互动领域的技术实践和应用」 活动中,来自百度.寰宇科技和依图的技术专家,围绕该话题进行了 ...
- 5G通信 + RTC实时音视频 + IoT物联网技术,三一智矿全国首批无人驾驶卡车进驻鄂尔多斯露天煤矿...
通常情况下,自动驾驶卡车能自主完成常规的往返运输,除非出现复杂的临时状况,比如多车交会,或者自动驾驶出故障,秦东就会通过远程驾驶舱里的方向盘.油门和刹车,接管操作,"遥控"矿卡,直 ...
- 即时通讯开发之实时音视频中的基本架构和协议栈
为了便于理解,我们来看一个最基本的三角形WebRTC架构(见下图): 在这个架构中,移动电话用"浏览器M"表示,笔记本电脑用"浏览器L"表示,通过Web服务器将 ...
- 手游中实时音视频的开发经验与实现技巧
在由 Cocos 携手声网举办的 Cocos 开发者者巡回活动中,声网解决方案架构师李亚分享了手游中实时音视频的开发实践经验与技巧. 以下为李亚的演讲纪实: 在游戏社会化趋势的影响下,实时音视频逐渐广 ...
- 实时音视频聊天中超低延迟架构的思考与技术实践
1.前言 从直播在线上抓娃娃,不断变化的是玩法的创新,始终不变的是对超低延迟的苛求.实时架构是超低延迟的基石,如何在信源编码.信道编码和实时传输整个链条来构建实时架构?在实时架构的基础之上,如果通过优 ...
- 微信团队分享:微信每日亿次实时音视频聊天背后的技术解密
本文内容整理自腾讯专家研究员 & 微信视频技术负责人谷沉沉在 2017 ArchSummit 全球架构师峰会上的技术分享. 1.前言 2012 年 7 月,微信 4.2 版本首次加入了实时音视 ...
- 实时音视频开发理论必备:如何省流量?视频高度压缩背后的预测技术
本文引用了"拍乐云Pano"的"深入浅出理解视频编解码技术"和"揭秘视频千倍压缩背后的技术原理之本文引用了"拍乐云Pano"的&q ...
最新文章
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
- python使用np.argsort对一维numpy概率值数据排序获取升序索引、获取的top索引(例如top2、top5、top10)索引二维numpy数组中对应的原始数据:原始数据概率最小的头部数据
- 记录一次Docker For Windows10镜像加速器配置
- 30. Leetcode 83. 删除排序链表中的重复元素 (链表-双指针)
- 【项目管理】RUP内容整理
- Kafka是什么,JMS是什么,常见的类JMS消息服务器,为什么需要消息队列(来自学习笔记)
- 关于质量的联想:消费示范效应
- 带彩色字体的man pages(debian centos)
- Kaggle比赛(二)House Prices: Advanced Regression Techniques
- [转载] 浅析Java OutOfMemoryError
- 我的信念 -居里夫人
- 电脑更改IP地址后,Oracle数据库需要重新配置IP问题(一招搞定,永久有效)
- 博客备份工具:Blog_Backup
- 代码统计工具实测点评
- php多张图片制作成视频教程,如何将多张图片转换成视频?快速制作电子相册的方法...
- php 微信支付 ca证书,微信企业付款 CA证书出错,请登录微信支付商户平台下载证书...
- ftp打开方式更改为资源管理器方法
- Excel - 快速找出数据差异
- python unittest 极简自动化测试框架:一、使用discover处理多模块下的多条用例的方法
- 一位非科班阿里程序员的 CTO 之路