在实时音频互动场景中,回声消除、降噪、自动增益(即 3A 算法)是直接影响音质和体验的重要环节之一。如何降低计算量,提升处理效率,如何兼容更多的设备、环境等,让3A 算法可以适应更多场景等一系列问题是我们做实时音视频开发中必须要解决的难点。

回声消除的三大算法模块优化

在语音通信系统中,回声消除(Echo Cancellation)一直扮演着核心算法的角色。一般来说,回声消除的效果受诸多因素的影响,包括:

  • 声学环境,包括反射,混响等;

  • 通话设备本身声学设计,包括音腔设计以及器件的非线性失真等;

  • 系统性能,处理器的计算能力以及操作系统线程调度的能力。

声网回声消除算法在设计之初,就将算法性能、鲁棒性和普适性作为最终的优化目标,这一点对于一个优秀的音视频 SDK 来说至关重要。

首先,回声是怎么产生的?简单来讲,就是你的声音从对方的扬声器发出,这个声音又被他的麦克风给收录了进去,这个被麦克风收录的声音又传回到你这一端,你就听到了回声。为了消除回声,我们就要设计一个算法将这个声音信号从麦克风信号中去除掉。

那么声学回声消除模块(AEC, Acoustic Echo Cancellation)是如何消除回声的呢?具体的步骤见如下简图所示:

  • 第一步需要找到参考信号/扬声器信号(蓝色折线)跟麦克风信号(红色折线)之间的延迟,也就是图中的 delay=T。

  • 第二步根据参考信号估计出麦克风信号中的线性回声成分,并将其从麦克风信号中减去,得到残差信号(黑色折线)。

  • 第三步通过非线性的处理将残差信号中的残余回声给彻底抑制掉。

与以上的三个步骤相对应,回声消除也由三个大的算法模块组成:

  • 延迟估计(Delay Estimation)

  • 线性自适应滤波器(Linear Adaptive Filter)

  • 非线性处理(Nonlinear Processing)

其中「延迟估计」决定了AEC的下限,「线性自适应滤波器」决定了 AEC 的上限,「非线性处理」决定了最终的通话体验,特别是回声抑制跟双讲之间的平衡。

注:双讲是指在交互场景中,互动双方或多方同时讲话,其中一方的声音会受到抑制,从而出现断断续续的情况。这是由于回声消除算法“矫枉过正”,消除了部分不该去除的音频信号。

接下来,我们就要围绕这三个算法模块,来进行优化。那么其中存在一些挑战:

一、延迟估计

受具体系统实现的影响,当把参考信号与麦克风信号分别送入 AEC 模块进行处理之时,它们所存入的数据 buffer 之间存在一个时间上的延迟,即我们在上图中看到的“delay=T”。假设这个产生回声的设备是一部手机,那么声音从它的扬声器发出后,一部分会经过设备内部传导到麦克风,也可能会经过外部环境传回到麦克风中。所以这个延迟就包含了设备采集播放 buffer 的长度,声音在空气中传输的时间,也包含了播放线程与采集线程开始工作的时间差。正是由于影响延迟的因素很多,因此这个延迟的值在不同系统,不同设备,不同实时音视频系统底层实现上都各不相同。它在通话过程中也许是一个定值,也有可能会中途变化(所谓的 overrun 和 underrun)。这也是为什么一个 AEC 算法在设备 A 上可能起作用,但换到另一个设备上可能效果会变差。延迟估计的精确性是 AEC 能够工作的先决条件,过大的估计偏差会导致 AEC 的性能急剧下降,甚至无法工作,而无法快速跟踪时延变化是出现偶现回声的重要因素。在这方面你会遇到这些问题:

  • 怎么增强估计算法鲁棒性?

  • 如何降低计算量,又不影响效果?

  • 怎么覆盖更多设备?

  • 等等

另外,在线性自适应滤波器、非线性处理这两个模块中,还会遇到更多问题。

与此同时,在降噪模块中,我们需要考虑如何在不损伤音质的情况下去除噪音。在4 月 7 日晚 8:00,声网Agora 音频体验高级工程师将会在直播课中,为大家逐一分析回声消除与降噪中的难点,以及声网的算法优化实践经验,点击「阅读原文」报名来与他交流吧!

????议题实时场景下的回声消除、信号降噪算法优化实践

????直播时间:4月7日(周三) 晚 8:00 

????????‍????主讲人:姚斯强 声网Agora 音频体验高级工程师

姚斯强,本科毕业于复旦大学电子工程系,硕士毕业于上海交通大学电路与系统专业。先后在美国国家仪器及DTS Inc.从事基础信号处理,工程数值计算以及语音信号处理的研发工作。2014年加入声网Agora担任音频体验高级工程师,主要负责盲源分离,麦克风阵列,回声消除以及噪声抑制等算法的研发以及落地工作。

????演讲内容简介:

随着语音通信技术的普及,逐渐诞生了越来越多的应用场景需求以及对通话质量越来越高的要求。而这里面的场景既包括不同的声学环境,也包括不同的设备以及运行于其上的系统。在各种不同环境下都能得到优秀的音频通话体验也对音频前端算法提出了更高的要求,特别是鲁棒性以及普适性上的提升。本次直播,我们将介绍声网SDK在回声消除以及信号降噪上的一些优化实践,以及取得的改进成果,特别是如何通过大规模的数据测试来验证算法的改进效果。

报名方式

1、扫码填写报名表单,报名成功后扫码入群,活动当日会在群里公布直播链接。

2、直播当日会在群里收到直播通知。

Tips

1. 访问RTC开发者论坛获取技术支持:https://rtcdeveloper.com/

关于声网

声网Agora 是实时音视频云行业的开创者,是全球最大的专业服务商,每年为全球超过20万开发者提供年千亿分钟实时音视频服务。开发者只需简单调用 API,30分钟即可在应用内构建多种实时互动场景,实现视频社交、互动直播、语音开黑、互动课堂、AR远程协作、视频客服等。声网的实时互动技术服务覆盖全球各个地区,也在当地提供技术和运营支持,与小米、陌陌、The Meet Group、Hike Messenger、Musical.ly、V-cube、好未来、招商银行、中国移动在线等建立战略合作关系。

点击阅读原文,报名直播

深入浅出,聊聊实时音视频中的回声消除与降噪相关推荐

  1. 聊聊实时音视频中的技术难点:回声消除+噪声消除

    文 | 菊风媒体引擎资深研究团队 在各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题.音视频正在发展成为互联网线上沟通的必然趋势,在自然的交流环境中,回声和噪声是非常影响沟通体验 ...

  2. 聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除

    聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除 在聊聊语音聊天室app源码各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题.音视频正在发展成为互联网线上沟通的 ...

  3. 怎么将抖音视频中的水印消除

    在社交网络上看到的不管是图片还是视频,一般都会有水印的存在,比如最常用的抖音短视频,保存下来的视频都会有水印,那怎么将抖音视频中的水印消除呢? 1 .今天要说的是一个手机 APP ,在应用商店找到&q ...

  4. 依图在实时音视频中语音处理的挑战丨RTC Dev Meetup

    前言 「语音处理」是实时互动领域中非常重要的一个场景,在声网发起的「RTC Dev Meetup丨语音处理在实时互动领域的技术实践和应用」 活动中,来自百度.寰宇科技和依图的技术专家,围绕该话题进行了 ...

  5. 即时通讯开发之实时音视频中的基本架构和协议栈

    为了便于理解,我们来看一个最基本的三角形WebRTC架构(见下图): 在这个架构中,移动电话用"浏览器M"表示,笔记本电脑用"浏览器L"表示,通过Web服务器将 ...

  6. 实时音视频聊天中超低延迟架构的思考与技术实践

    1.前言 从直播在线上抓娃娃,不断变化的是玩法的创新,始终不变的是对超低延迟的苛求.实时架构是超低延迟的基石,如何在信源编码.信道编码和实时传输整个链条来构建实时架构?在实时架构的基础之上,如果通过优 ...

  7. 有的放矢,远程操控中实时音视频的优化之道

    5G远程操控场景,对实时音视频传输的时延.卡顿率和抗弱网等指标都有着非常高的要求,本文将会介绍如何结合5G网络特点,在实时音视频通信链路中进行联合优化,满足行业场景远控需求,降低画面时延. 在上一篇文 ...

  8. 从零到一,使用实时音视频 SDK 一起开发一款 Zoom 吧

    zoom(zoom.us) 是一款受到广泛使用的在线会议软件.相信各位一定在办公.会议.聊天等各种场景下体验或者使用过,作为一款成熟的商业软件,zoom 提供了稳定的实时音视频通话质量,以及白板.聊天 ...

  9. 实时音视频直播带货中影响用户体验的Bug根因

    VOL 131 05 2020-06 今天距2021年209天 这是ITester软件测试小栈第131次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

最新文章

  1. 贴现率 vs 折现率
  2. 新站SEO优化五点注意事项!
  3. Codeforces Round #200 (Div. 1)A. Rational Resistance 数学
  4. SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型
  5. 《CCNA无线640-722认证考试指南》——9.3节集中式架构
  6. php bc高精度测试,php BC高精确度函数库
  7. 欣赏一下OFFICE 2013 PLUS吧
  8. spss三次指数平滑_17 统计学:SPSS基础
  9. 安装配置树莓派的最佳工具——NOOBS
  10. Java8新特性总结 -5.Stream API函数式操作流元素集合
  11. C语言程序设计精要,C语言程序设计精要.doc
  12. linux网卡取消混杂模式,Linux下网卡混杂模式设置和取消
  13. SpringSecurity授权
  14. Android 神器 xposed 框架使用指南
  15. 导出word文档——WordXML格式解析
  16. 时间管理类入门书籍分享
  17. ArcGIS中拓扑规则英文对照说明
  18. Babel学习之基础学习
  19. STM32寄存器编程思路 - 从51到stm32开发入门,真干货
  20. AR研究2-生成自己的识别图片

热门文章

  1. vant van-uploader 微信内置浏览器 打开h5页面 无法调起手机拍照
  2. 计算机硬件升级的说法有哪些,客户让我给他的电脑升级,看到电脑配置后:看来升级又凉凉了!...
  3. Typora学习笔记
  4. 销售被快速淘汰的8大死穴
  5. 【金万维】Windows Server安装远程桌面服务配置
  6. 导入idea中运行项目 如何解决各种程序包不存在的问题
  7. 南华大学的计算机专业收文科生吗,北大清华的计算机系文科生可以上吗?
  8. 10Base-T 与 100Base-TX 的区别
  9. GRBL三:gcode代码解析
  10. 披着transformer皮的CNN:SwinTransformer