噪声抑制和去混响算法可消除视频会议、语聊房、游戏语音等众多场景中的背景噪声和混响干扰,提升复杂场景下的实时互动体验。
本文整理自声网音频算法专家 @吴渤在 RTE 2022 大会的演讲。本次分享主要介绍降噪和去混响的应用场景和技术演进、声网 AI 降噪和去混响系统的设计方案、性能特点、增强效果和竞品对比等。
*本文内容基于演讲内容进行整理,为方便阅读略有删改。关注「声网开发者」公众号回复关键词「1102」,即可领取完整版 PPT;点击文末图片或阅读原文,即可回看完整版演讲视频。

大家好,非常高兴有机会跟大家进行分享。我本次分享的题目是《基于深度学习的语音降噪和去混响》。
首先和大家进行下自我介绍。2014-2016 年我在美国佐治亚理工学院联合培养,2018 年博士毕业于西安电子科技大学。我研究的方向主要包括:噪声抑制、去混响、特定说话人增强、语音识别、多模态、深度学习等。发表论文包括 IEEE/ACM Transactions on Audio Speech and Language Processing、IEEE Journal of Selected Topics in Signal Processing、ICASSP、INTERSPEECH 等 20 余篇。
目前是声网的音频算法专家,主要负责的是基于深度学习的噪声抑制和去混响的研究和落地工作。算法在会议、娱乐、游戏、教育等场景被大量采用。
下面进入正式的分享。

降噪和去混响的应用场景一般分为三大类,分别是会议场景、娱乐场景和游戏场景。其中,会议场景可以细化为办公和教育等场景,娱乐场景可以分为语聊和直播等。
在不同的应用场景中,面临的噪声干扰项是不同的。比如会议场景中经常会遇到敲击键盘、鼠标,背景讨论声,还有当人和麦克风离得比较远的时候,引入的远程混响,以及提示音、开关门、装修等噪声。
在例如唱歌这类娱乐场景中,当嘴巴离麦克风比较近时,可能会出现喷麦的现象,这个喷麦就是干扰项之一;在居家场景中,面临的噪声可能会包含孩子哭喊、狗叫、猫叫、电视噪声;在户外直播场景中,可能会遇到风噪、路噪还有地铁等等噪声。
游戏场景中最常出现的是多人同地组团开黑,开黑的玩家们处在同一个房间里,多个设备同时打开喇叭和麦克风非常容易引入啸叫的干扰;当玩家远程开黑时,本地播放的音效、手指敲击屏幕、摩擦麦克风对于线上的队友也是一种噪音。
下面我们看一个视频。大家可以通过这个视频了解远程办公中常见的噪声,以及声网 AI 降噪处理后的效果。
通过视频可以看到,在远程办公的场景中会遇到小孩哭喊、厨房噪声还有装修噪声等干扰。声网 AI 降噪在这方面处理的都是比较出色的。
我们首先来看一下噪声的定义。

噪声是加性的噪声,数学表达式为 y(t)=s(t)+n(t),也就是麦克风采集的带噪信号 y(t) 等于干净语音 s(t) 加上背景噪音 n(t)。
如上图中语谱的对比所示,上半部分为干净的语音,下半部分为带噪的语音。因为加性噪音特性,使得带噪语音的语谱质量明显更差。
卷积混响是另一个重要的概念,它的数学表达式为:y(t)=s(t)*h(t),也就是麦克风采集的混响语音 y(t) 等于干净语音 s(t) 卷积上房间脉冲响应。

混响的物理意义可通过上图中左上角部分的图例表示。
当我们在一个封闭的房间里面,说话人和麦克风有一定距离的时候,麦克风采集的信号除了说话人发出来的直达声以外,还包含了发出来的声音经过墙壁、天花板、家具、地板等等反射,这些反射路径是直达波的不同时延衰减的叠加路径,我们把这些反射路径称之为混响。
混响可以用左下角和右下角两幅语谱图来表示,左边是干净语音,右边是混响语音。我们明显可以看到右边混响语音的语谱图变得非常糊。由于有了混响了,会让语音的主观听感变得很差。
大家可以明显感知到,混响语音的声音离得非常远,且声音模糊。同时,我们可以通过房间脉冲响应的图示来对混响进行量化表示。如下图所示,横坐标为时间,纵坐标为幅度:

从图中可以看到,直达声由于没有经过任何反射,是最早到达麦克风的。并且由于没有经过反射衰减,所以能量一般也是最高的。因此可以看到红色的线表示的直达路径幅度最高。
在直达路径往后延 50 毫秒,我们称之为早期混响。早期混响和直达声的时延一般较短,因此对信号有一定增强作用。
早期混响之后的部分,我们称之为晚期反射。晚期反射由于和直达声的时延比较大,因此它和直达声的相关性就比较差。我们主要把晚期混响作为我们混响里面的干扰项,这是要被抑制的。
我们前面介绍了降噪和去混响的定义,接下来介绍一下传统降噪和 AI 降噪的对比。

传统降噪和 AI 降噪最大的不同是它们的建模对象不一样,传统降噪建模的对象是噪声,而 AI 降噪建模的对象是语音本身。
因此他们的技术实现也是不一样的。传统降噪是在带噪语音中去估计噪声的特性,估出来后再在语音中把噪声剪掉,得到降噪后的语音。AI 降噪的方法是 data-driven 的方式,首先要准备好大数据的带噪语音和干净语音的数据对,在语音降噪和去混响的损失函数定义下迭代优化模型。
由于技术实现的不同以及建模对象的不同,导致传统降噪的降噪类型包含了稳态噪声,但是没有办法很好地去除非稳态噪声。
这里面的原因主要是传统降噪在做噪声估计时有严格的假设条件,比如会假设噪声符合正态分布。但在实际生活中,我们遇到的噪声多是非稳态的,也就是瞬态的噪声。比如开关门的噪声特性就不符合正态分布。因此传统降噪算法上线后,在遇到非稳态噪声时,没有办法做到很好地抑制。而 AI 降噪的降噪类型包含了稳态和非稳态噪声,因为它是数据驱动的方式,不依赖于任何假设条件。
传统降噪算法的劣势有 3 点:
非稳态噪声抑制差
低信噪比损伤语音
降噪需要收敛时间
而 AI 降噪的算法劣势同样有 3 点:
参数量大
运算量大
依赖数据
传统降噪和 AI 降噪的应用难点,大概分为几类:
噪声类型成百上千难覆盖全
噪声和混响同时存在问题难
人生密集场景可能导致损伤
大混响下去混响太狠易失真
接下来,我们介绍一下基于信号处理的传统降噪和去混响的算法框架。

首先输入的是带噪、带混响的语音,这个时候会通过 VAD 来判断语音和非语音段,非语音段在输出时可以直接静音。语音段要去做噪声和混响部分的估计,可以通过时域或者频率的方式把噪声和混响部分估计出来。我们在原始的带噪带混响语音中把估计出来的噪声和混响减掉,从而得到降噪后或者是去混响后的语音。
下面,介绍一下基于深度学习的方法。最早的基于深度学习的方法是 2014 年佐治亚理工和中科大联合发表的基于幅度谱估计的深度学习语音降噪算法。详细信息大家可以搜索下图中展示的论文,这篇文章是首次将深度学习成功地应用到了语音降噪方面。

2015 年到 2016 年,俄亥俄州立大学和佐治亚理工分别发表了基于幅度谱估计的深度学习语音去混响算法,大家可以参考下图中展示的两篇文章。

第一篇文章是我撰写的叫做混响时间感知的去混响算法。之所以提出这样一个算法,主要的原因在于降噪和去混响是不一样的。如果想把去混响做到最优,一定不能把降噪的算法直接硬套到去混响上面,而是要去深入理解去混响的物理特性。
混响有一个重要的物理特性,是时间相关性。通过上图右侧部分的示例图可以看到,它表示的是 RT60=2s 时强混响环境下的自相关,和 RT60=0.2s 时弱混响环境下的自相关。图中的横坐标是时间,纵坐标是自相关的强度。我们明显的可以看到在强混响环境下,它的自相关大小明显强于弱混响环境。这就告诉我们在做去混响的时候,可以结合帧间相关性的特征。
这篇文章最主要的贡献是在做去混响的时候,利用了时间相关性的概念,提出了基于混响时间感知的对于不同混响环境具有鲁棒性的算法。
2016 年俄亥俄州立大学发表了基于复数域掩码的深度学习语音分离算法,可以扩展到降噪和去混响里面。

2019 年哥伦比亚大学发表了基于端到端时域的深度学习语音分离算法,同样可以扩展到降噪和去混响的方向,但它的做法有所不同。
前面讲的几类算法,都是时域特征会先经过 STFT 以后转变成频域特征,在频域特征去做预测。

但这个算法直接输入的是时域上的 sample 点,预测的也是时域上的 sample 点。也就是说它是时域到时域的映射,它的特性是时延可以做到很小,一般来讲可以做到帧长 5 毫秒,也就是几十个 sample 点。
由于它的整个网络结构采用的是多层的 CNN, CNN 的结构有一个特性是参数量相对比较小。但因为它是时域到时域的映射,所以需要通过较深的网络结构去提取更高维、更有意义的特征,因此它的运算量是比较大的。
下面,我们介绍一下声网 AI 降噪和去混响的系统框架以及效果。

市场中常规的做法如上图的上半部分所示,噪声抑制模型和去混响模型分为两个模型,分别处理独立的任务。而声网 AI 降噪采用的是噪声抑制和去混响一体化模型,意思就是用一个模型解决两个问题。
上图中的表格是两类模型的区别对比。运算量方面,一体化模型明显低于前后端模型,鲁棒性和维护成本方面也都有优势。 在深度学习领域中,如果遇到训练时没有遇到过的数据,就会产生 mismatch 现象,需要模型具有很好的泛化能力。
任务难度来讲,前后端模型要相对简单一些。因为它是用两个模型分别处理独立的任务,而一体化模型是一个模型处理两件事,所以任务难度相对较高。
声网在 AI 降噪和去混响领域之所以可以采用一体化模型,是因为在训练流程、学习目标、损失函数上进行了深入的优化。
在基于深度学习语音增强领域,常规的做法是模型增强幅度,相位从带噪语音里面提取来做波形还原。而声网 AI 降噪采用的是同时增强幅度和相位,再去做波形还原。我们通过下面这个例子来对比看一看相位的重要性:

干净语音幅度+干净语音相位
干净语音幅度+随机语音相位
分别播放两段语音,我们可以明显的分辨出随机语音相位的语音质量是比较差的。所以在做基于深度学习的降噪和去混响时,需要把相位信息也同时进行增强。
另外声网 AI 降噪采用的是兼顾强降噪和高保真的损失函数。

我们可以通过上图对比来看。图中的上半部分采用的是强降噪的损失函数,下半部分是声网 AI 降噪采用的强降噪 + 高保真的一组均衡的组合损失函数。如黄色框中所示,因为采用了高保真的损失函数,所以语音的保护是比较好的。
声网 AI 降噪的一大特点是可以强力抑制 100+ 种突发噪声,这相比于传统降噪算法性能有巨大的提升。

比如居家场景中的电视噪声、风扇噪音、厨房噪声等,户外场景中的风声、雨声、鸟叫声,游戏场景中的背景噪音、触屏声、英雄语音,K 歌场景下的口水声、喷麦声等等,声网的 AI 降噪都可以去除掉。
声网 AI 降噪的另外一大特点,是可以不依赖专业的拾音设备,清晰拾音的距离可以达到 10 米。在很多会议场景中,环境都是在空间很大的玻璃房内,这种情况下去混响是刚需。

此外,基于声网自研的高性能 AI 推理引擎,可以使得千元机型也可以满足 AI 降噪算法的应用条件。同时声网做了全平台的低功耗适配,目前可以支持 Native 端的 iOS、Android、Mac、 Windows、Linux 操作系统,以及 Web 端全平台。

下面我们通过一个例子,来展示声网 AI 降噪的输出效果。视频中每段语音的前半段是输入,后半段是降噪和去混响后的效果:
另外一个例子,主要展示的是语聊场景以及 K 歌场景中对于喷麦的降噪优化:

下方案例是户外直播场景中,对于风噪的降噪:

下方案例是游戏场景的降噪效果:

另外,声网 AI 降噪可以进行很好的啸叫抑制,可以有效的解决同地多设备啸叫的问题。

当没有开启 AI 降噪时,如上图左侧的场景,同时打开多台麦克风和扬声器便会引起啸叫,这会极大影响参会者的参会体验。开启声网 AI 降噪后,全场所有人均可以打开麦克风和扬声器,而不会出现啸叫的情况。

下面是基于 GMOS、SMOS 和 NMOS 三类主观指标,进行的竞品效果对比。我们选择的 8 个友商,都是国内和国际上比较知名的做 AI 降噪算法的公司或部门:

GMOS 是一个相对综合的主观指标。它主要考量的是降噪性能和语音保护的综合指标。声网 AI 降噪在和 8 个友商的对比中取得了最高的分数。

SMOS 侧重的是降噪时对语音的保护是否够好。声网 AI 降噪在和 8 个友商的对比中取得了最高的分数。

NMOS 主要衡量的是对于噪声的抑制程度,也就是噪声残留的多少。声网在竞品的横评中分数也是最高的。
另外我们制作了一个叫做 Preference 的图表,如下图所示。图中蓝色部分代表声网和友商 PK 时打平的概率,深橘色代表声网输给友商的概率,黄色代表声网赢友商的概率。

从图中可以看出,声网赢的概率远高于打平或者输掉的概率。
目前我们在 Web 端可以支持 WebSDK v4.15.0加AI降噪插件 AI Denoiser Extension v1.1.0,Native 端可以支持NativaSDK v4.1.0 及以上。欢迎大家使用和体验。
(正文完)
点击下方图片
即可查看完整视频回顾
⬇️⬇️⬇️
声网赵斌:RTE 体验提升,新一代 Killer App 将成为现实
声网王浩宇:RTE 场景下的 Serverless 架构挑战
熹乐科技范维肖CC:基于开源 YoMo 框架构建“全球同服”的 Realtime Metaverse Application
关注实时互动领域的
技术实践、行业洞察、人物观点
☟☟☟


