为高音质保驾护航——回声消除篇

大家好,我是来自网易云信的胡林艳。语音通信,在现在生活已经成为了大家绝大多数的沟通交流的方式,而通话语音的质量也是衡量每个厂商系统好坏的标志之一。在语音通信中,回声一直占据着影响音质的主要地位,它会带来种种影响,比如漏回声,产生杂音,处理人声断续,忽大忽小,丢字,失声等现象中,有一部分就是回声或者工作失调的回声消除算法引起的。所以,一个优质的回声消除算法,将很大程度上提升了语音通信的音质。这次给大家分享网易云信在回声消除算法中对通话语音质量的保证和提升。

作者:胡林艳,网易云信音视频引擎开发工程师

一、回声产生原因

为高音质保驾护航——回声消除篇

所谓回声,就是自己的声音又传回自己。

简单来说,一个人的声音传到对方,经过扬声器播放,通过空间声场传播被麦克风采集到,这样回声 echo 就产生了。叠加了近端本身的声音(包括近端语音,近端噪声)。这样对端就听到了自己的声音(回声 echo)+ 另一方声音。

一端麦克风采集的混合信号,有本端说话人的语音信号和对端说话人通过扬声器播放的语音产生的回声(红色信号),这样叠加的语音信号(蓝色信号)通过传输线路传到对端扬声器播放,对端人就听到自己刚刚的语音信号,即所谓的回声。

为高音质保驾护航——回声消除篇

所以混合信号中除了本地的语音之外,还有对方的回声信号。回声消除算法,就是要把这个红色的回声信号从蓝色的麦克风混合信号中去除掉。

(一)回声带来的影响

回声是不能在通话回路中存在的,一方面会引起对话的混淆,一方面也会带来啸叫,在会议中影响更大。所以通常会加入回声消除算法进行处理。

回声消除处理后的回声,如果没有完全消除,会因为消除时产生的畸变,导致听起来像杂音,严重影响主观感受。同时,回声消除处理两端同时说话的双讲数据时,可能会将近端语音当作回声处理,导致近端语音出现忽大忽小,甚至剪切的效果。

因此,一个优质的回声消除算法在通话中,极为重要。

二、回声消除原理

(一)回声消除框架

回声消除算法实施时,参考信号是从播放端接收到的远端信号获得的,声音从扬声器播放出去,再被采集产生的回声,分成直达声和反射回声,直达声是最先到达并且能量最大的回声,往往和设备本身,软件系统设计,声音传播路径有关。所以需要一个方法,找到参考信号/扬声器信号跟麦克风信号之间的延迟,并调整缓冲区。使得算法获取到的参考信号和回声信号中间时延较小。

回声经过扬声器播放,声音传播,再到麦克风采集,经过了三个系统,而这三个系统中,扬声器、麦克风系统为非线性系统的可能性很高,而声音传播的系统,是线性系统。所以整个过程中,有可能存在非线性部分,但是肯定存在线性部分,而在无法预知回声特征前提下,去跟踪线性回声成为一种可行的办法。跟踪的线性回声,从采集信号中减去,就得到了回声的残留信号。

而非线性的回声,就通过非线性的处理将残差信号中的残余回声给彻底抑制掉。

为高音质保驾护航——回声消除篇

如图所示,一个完整的回声消除算法框架,包含三个主要模块:

  • 延迟估计模块
  • 线性滤波模块
  • 非线性处理模块

(二)时延估计模块

1. 时延产生原因

参考信号取自下行接收的数据,麦克风信号取自采集的数据,中间存在时延,声音传播时间(无论内外),播放采集线程工作的 buffer,启动时间差,不同设备、不同环境,时延不同。

2. 时延估计模块影响

时延的对齐可以减轻自适应滤波器的压力,减少滤波器的跟踪长度,降低开销, 如 果没有时延对齐模块,就需要将滤波器跟踪的长度设计成能够覆盖所有参考信号到回声信号之间的时延,这经常是上百毫秒的,计算量非常大。

时延的对齐影响滤波器的性能,时延没对齐,滤波器跟踪的参考信号和回声信号相关性极低,滤波器收敛会受到影响,时延估计过量,滤波器跟踪的信号缓冲区中根本找不到参考信号,滤波器同样不能收敛。

时延的对齐速度,影响整个收敛速度,影响滤波器收敛,同时也影响非线性回声处理。

时延变化时,需要能够快速跟踪到时延的变化,并且迅速调整,否则就会偶现回声。

3.时延估计设计

一般来说,由于设备扬声器和麦克风的响应影响,回声的分布大致在中频段,高频低频部分回声很少,因此可以在中频段去跟踪回声。

Webrtc 中 aec 模块采用的是频域 Binary Spectrum 的方法,将两端的频谱中间频段的分布映射到二值化数据,寻找相似性较高的远端信号并计算对应的时延,该方法计算量很低,但是受噪声影响很大。

Webrtc 的 aec3 模块采用的是线性滤波,匹配滤波器的方法,直接在时域信号做 NLMS(Normalized Least Mean Square)处理,这个方法鲁棒性很好。

时域信号互相关会出现多个峰值,导致时延估计不准。

我们考虑采用频域互相关的方法,结合线性滤波,一方面保证鲁棒性,一方面利用频域互相关检测速度快的特点,加快检测速度。

(三)线性滤波模块

为高音质保驾护航——回声消除篇

x(n) 为远端输入信号,经过未知的回声路径 h(n) 得到 y(n)=x(n)∗h(n),再加上观测噪声v(n),得到近端输入信号 s(n)=y(n)+v(n)。x(n) 通过自适应滤波器 h^(n) 得到估计的回声信号,并与近端输入信号 s(n) 相减得到误差信号 e(n),即 e(n)=s(n)−hT(n)x(n),自适应滤波算法所估计的回声路径就越接近实际的回声路径,得到的误差就越小,回声残留就越小。所以用得到的误差大小作为自适应调整的方向。

滤波器采用特定的自适应算法不停地调整权值向量,使估计的回声路径 h^(n) 逐渐趋近于真实回声路径 h(n)。这样滤波器的输出能够逼近真实的回声,从而误差信号中就不存在回声信号了。

自适应滤波器收敛阶段,近端信号是完全的 echo,不能混杂有近端语音。因为近端和噪声是会扰乱 h(n) 的收敛过程。也就是说要求回声消除算法开始运转后收敛要非常快,较好要求对方的算法在你一说就收敛好了;收敛好之后,如果对方开始说话,这个 h(n)系数就不要变化了,需要稳定下来。

回声路径可能是变化的,一旦出现变化,回声消除算法要能判断出来,因为自适应滤波器学习要重新开始,也就是 h(n) 需要一个新的收敛过程,以逼近新的回音路径 H。

自适应滤波器需要在收敛速度和跟踪性能,稳态失调之间进行平衡。

  1. 线性滤波器设计

自适应滤波器,目前常用的是 NLMS 滤波器,Kalman 滤波器,这两种滤波器各自有优点和缺点,Kalman 滤波收敛速度快,收敛性能欠缺,NLMS 相对来说比较平稳。基本上就是在于收敛速度和跟踪性能,稳态失调有不同的偏向。但是无论哪种滤波器,都是可以调整跟踪的速度来改变收敛速度和跟踪性能之间的平衡,NLMS 改变的是步长值,Kalaman 改变的是增益。

我们考虑用多种滤波器混合使用的方案,取不同滤波器的优点,保证收敛速度,同时也相互限制发散。非线性滤波器也会参与估计回声、双讲的状态,从而控制自适应滤波器跟踪步长,根据状态实现变步长跟踪。

(四)非线性滤波模块

非线性处理模块通常是计算参考信号、麦克风信号、线性回声信号以及残差之间的相关性,估计残留回声,或者回声的状态。采用维纳滤波的方式消除回声,其重点在于如何估计残留回声。而估计残留回声的大小,也直接影响到最终消除的结果。

残留回声估计不足,回声处可能会有残留,残留回声估计太过,双讲处会对近端语音损伤。

  1. 非线性滤波器设计

我们的非线性处理模块也是针对参考信号、麦克风信号、线性回声信号以及残差信号,采用峰值相关性、频域相关性、幅值相似性等特点,联合判断得到双讲状态、回声状态等信息。除了上述的相关性外,还可以利用线性滤波器的更新权值去获得回声的状态。

而影响最终输出结果的,是残余回声或者回声大小的估计。残余回声的估计,采用了回声的状态和滤波器的 ERL (Echo Return Loss) 估计相结合的方法。

三、业务中回声消除算法设计

(一)不同场景对回声的需求

根据业务的需求,我们结合着场景分类模块,将通话场景分成音乐场景和语音场景,而不同的场景下,回声的特点和对回声消除的要求不同,从而可以调整回声和双讲的平衡。

在音乐对话场景下,双讲占比较多,希望保留音乐,音乐下回声不明显,所以在整个非线性检测上,偏向于双讲的检测。

在语音对话场景下,双讲占比消,回声要求干净,所以非线性检测上,偏向于回声的检测。

(二)不同模式对回声的需求

通过检测外设情况,分成耳机模式、外放模式。

耳机下通常是没有回声的,部分由于线路耦合产生的回声,或者耳机密封性不好外漏的回声,这些回声线性特点明显,回声较小,但是耳机下对回声和双讲的剪切感都比较明显,可以结合线性滤波器的残差结果,调整残留回声的估计。

而常用的外放模式下,基本上回声都非常大,信回比低,对回声的残留比较敏感,所以残留回声估计时,会比较偏向于回声估计,从而达到优异的听觉效果。

四、结语

以上技术方案就是本次分享的全部内容,通过回声消除技术,能够提升用户的听感,适应各种场景切换,环境变化,保证不受回声干扰。每块技术都是比较重要,也是经过多次优化调优的结果。网易云信也将继续打磨音频技术,给行业带来更好的服务。

作者介绍

胡林艳,网易云信音视频引擎开发工程师,负责音频引擎的回声消除算法开发,在传统语音增强算法设计方面有丰富的经验。

关于网易云信

网易云信:网易智企旗下融合通信云服务专家、通信与视频 PaaS 平台。集网易 24 年 IM 以及音视频技术打造的融合通信云服务专家,稳定易用的通信与视频 PaaS 平台。提供融合通信与视频的核心能力与组件,包含 IM 即时通讯、5G 消息平台、一键登录、信令、短信与号码隐私保护等通信服务,音视频通话、直播、点播、互动直播与互动白板等音视频服务,视频会议等组件服务,并联合网易易盾推出一站式安全通信方案「安全通」。目前,网易云信已经成功发送 1.6 万亿条消息,覆盖智能终端 SDK 数累计超过 186 亿,我们期待每个智能终端都有云信的融合通信能力。

文章标题:为高音质保驾护航——回声消除篇,发布者:网易智企,转载请注明出处:https://worktile.com/kb/p/5866

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
网易智企的头像网易智企认证作者
上一篇 2022年3月16日 下午11:04
下一篇 2022年3月16日 下午11:17

相关推荐

  • 为什么vscode运行不了html

    VSCode无法运行HTML文件通常是由于缺乏实时预览插件、文件路径错误、或者浏览器关联设置不当等原因造成的。 最常见的情况是,用户尝试在VSCode中直接打开HTML文件,但没有实现在浏览器中的预览。安装Live Server等插件可以在本地服务器上打开HTML文件,并且该插件支持热重载功能,使得…

    2024年4月3日
    15800
  • 投标项目智能管理软件有什么

    投标项目智能管理软件有:1、PingCode;2、Worktile;3、Asana;4、禅道;5、Redmine。PingCode是国内国内的一款知名研发项目管理软件,曾在2021年,被知名媒体36氪评为:2021年国内研发项目管理榜单名列前茅的研发项目管理系统。 一、PingCode 这是国内国内…

    2023年4月22日
    42400
  • devops的dev是什么意思

    DevOps中的”Dev” 指的是软件开发(Development)环节,关键聚焦在软件解决方案的创建、迭代及维护。此部分涵盖代码编写、功能实现、性能优化等方面。在DevOps文化中,软件的快速交付与持续改进显得尤为重要,代码持续集成(Continuous Integrati…

    2024年3月26日
    6500
  • 营销渠道网络建设目标有哪些

    营销渠道网络建设目标有:1、销售型网络营销目标;2、服务型网络营销目标;3、品牌型网络营销目标;4、提升型网络营销目标;5、混合型网络营销目标。销售型网络营销的目标主要是为企业拓宽销售网络,为顾客提供较为方便快捷的网上销售点。 1、销售型网络营销目标 销售型网络营销的目标主要是为企业拓宽销售网络,借…

    2023年1月10日
    59600
  • 从数据库导数据总是宕机的原因是什么

    原因有:1. 硬件资源不足;2. 导出操作消耗大量资源;3. 网络连接不稳定;4. 并发操作过多;5. 软件或系统配置问题;6.磁盘I/O限制;7.未处理的软件错误。硬件资源不足可能是一个关键因素,因为数据导出通常是资源密集型操作,如果硬件不足以支持这些操作,可能会导致系统宕机。 1.硬件资源不足 …

    2023年7月12日
    66600
  • 监理如何开展项目工程管理

    监理在开展项目工程管理中扮演着关键角色,关注的核心领域包括工程质量、进度控制、成本监控、合同执行、安全监督、还包括对环境保护的监控。特别在工程质量方面,监理需要通过编制和实施质量控制计划,定期对施工现场进行巡检,以确保所有施工行为都符合项目规范和国家标准。这不仅仅涉及对建筑材料、结构安全性和施工工艺…

    2024年4月10日
    7400
  • 如何在Scrum团队中促进创新思维

    在Scrum团队中促进创新思维关键在于构建一个支持创新的环境、鼓励团队协作、营造积极的反馈文化、提供持续的学习机会。构建一个支持创新的环境包括确保团队拥有必要的资源和自由度来探索新想法。鼓励团队协作强调的是通过多学科团队合作,促进知识的交流和想法的碰撞。要营造出积极的反馈文化,必须鼓励团队成员之间的…

    2023年12月12日
    26800
  • 甘特图中的依赖关系是如何工作的

    甘特图中依落系的运作机制涉及任务之间时序与完成顺序的相互关联。其中最常见的类型包括完成-开始(FS)、开始-开始(SS)、完成-完成(CC)与开始-完成(SF),每种类型决定了后续任务起始的条件。1、完成-开始依赖是最普遍形式,需前序任务完成后下一任务才能启动。2、开始-开始与完成-完成则分别规定了…

    2023年12月20日
    40000
  • 如何管理好的项目经理

    项目管理是一个涵盖计划、组织、指挥、协调和控制资源以达到特定目标的复杂过程。一个好的项目经理需要具备多方面能力,包括沟通技巧、团队领导力、时间管理、风险评估以及问题解决能力。在众多素质中,沟通技巧尤为关键。项目经理应该能够清楚地传达项目目标、期望以及任何项目变更,并确保所有利益相关者都在同一频道上进…

    2024年4月10日
    7500
  • 实现精细化管理的需求管理策略与方法

    需求管理的策略与方法实现精细化管理,包含:1、建立综合性需求框架、2、采纳迭代式需求优化、3、运用数据分析提高预测准确性、4、构建跨部门沟通平台、5、实行动态需求调整制度。通过建立综合性需求框架,可以将各个需求及其优先级进行结构化排序,并确保管理过程的透明度和连贯性。 在实现精细化管理的过程中,确立…

    2023年12月18日
    33400

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部