语音降噪模型归纳(一)

  从事语音降噪增强算法开发多年了,上学期间和入行的前段都是做传统信号处理算法。19年以后基于深度学习的语音降噪模型凭借其优秀的处理效果,一时风头无两,似乎每个人都开始走上了模型降噪的路子。

  特别是从2020年微软开始举办的Deep Noise Suppression Challenge – INTERSPEECH 2020(DNS)开始,各个高校、科研院所和相关企业都参与进来施展武艺。后续又举办了Deep Noise Suppression Challenge – ICASSP 2021和Deep Noise Suppression Challenge – INTERSPEECH 2021。

  Deep Noise Suppression Challenge - INTERSPEECH 2020 - Microsoft ResearchDeep Noise Suppression Challenge - ICASSP 2021 - Microsoft ResearchDeep Noise Suppression Challenge – INTERSPEECH 2021 - Microsoft Research 比赛中多数只关注实时/非实时性,赛道约束的比较少,对模型的参数量和计算量要求比较开放,所以基本上参赛的模型都把自己武装得很“强壮”,把已知的有用的技巧融合到自己的模型中,更有一些模型基本是模块的排列组合。所以本人非常希望主办方能够开辟一条小模型赛道,可以迅速应用于现实,提升通话品质。

  实际工作中,想要模型落地,考虑的可不止这些,目前端侧对算法开销要求比较苛刻,PC还好一些,像手机、平板这些设备的算法落地需要更加严格的模型选型和剪枝、量化。

  模型选型,需要从模型的效果、参数量、计算量、占用内存大小、时延等方面着手开始考虑拆解问题,当然了,如果小模型就可以满足降噪的效果需求,那恭喜你,可以跳过下面的步骤,去训练模型、马上就可以工程化落地了。如果小模型不能work,那就需要根据落地设备的存储空间和开销限制,寻找若干个效果远超降噪效果需求的大模型,然后通过压缩手段(剪枝、量化等)将模型的参数量和计算量降下来,过程中可能出现效果下降的现象,这就是一个经验性尝试的打磨过程了。

  本文将近些年的经典网络和最近提出的新网络的关键参数、简介、开源代码都整理在这里,目前只是比较简单的梳理汇总,后续会针对每一个模型详细分析或者转载其他博主的优秀文章。希望对语音降噪算法的学习和应用过程有所帮助,如果不准确的地方,请大家批评指正。

  2021.12.06更:在若干模型下方更新了一些效果体验的链接。

  2022.07.26更:关于AEC回声抑制模型的讨论传送门。

  2023.01.17更:更新DCCRN模型的计算量,感谢各位讨论支持。

  干货分享:欢迎收藏点赞加关注 / 很荣幸被 “语音杂谈/SpeechHome” 公众号转载分享

  相关推荐

  语音降噪模型归纳(二)AEC回声抑制模型归纳目标说话人提取TSE/个性化语音增强PSEloss函数相关知识整理:模型训练——Loss函数Linux服务器环境搭建:Linux-Anaconda安装和虚拟环境配置《A Hybrid DSP/Deep Learning Approach to Real-Time Full-Band Speech Enhancement》

  Jean-Marc ValinMozilla Corporation Mountain View, CA, USARnnoise模型是第一代的模型降噪算法,算法在顶层设计阶段就充满了传统算法的影子:手工提取特征(42)、把模型部分按照传统降噪的思想划分为VAD、Noise spectral estimation和Spectral subtraction部分。语音降噪界的“鸭嘴兽”。

  主要思想是将传统信号处理与深度学习相结合来创造一个模型又小速度又快的实时噪声抑制算法。为了避免使用大量神经元,减少计算量,算法不直接使用语音样本或者能量谱,而是使用了一种符合人类听觉感知的频率尺度——巴克频带。模型输出22个频带增益,并对22个频带进行插值的方式代替了直接输出多个频谱值。

  2020年亚马逊提出一个PercepNet[1]模型是RNNoise的强化版本,可参考学习。

  1、模型框图

  2、效果

  3、开源代码

  https://github.com/xiph/rnnoise/

  4、笔记转载

  https://zhuanlan.zhihu.com/p/3972888515、效果体验

  RNNoise: Learning Noise Suppression

  《WAVE-U-NET: A MULTI-SCALE NEURAL NETWORK FOR END-TO-END AUDIO SOURCE SEPARATION》

  Daniel Stoller Sebastian Ewert Simon DixonQueen Mary University of London SpotifyWave-U-Net 是一种卷积神经网络,适用于音频源分离任务,它直接作用于原始音频波形(wav)。 它是 U-Net 架构对一维时域信号的一种变形, 实现端到端音频源分离。通过一系列下采样和上采样块(包括 1D 卷积和下/上采样过程),在多个尺度/抽象级别和时间分辨率上计算特征。

  1、模型框图

  2、效果

  3、开源代码

  https://github.com/f90/Wave-U-Net

  4、效果体验

  SiSEC MUS 2018

  SiSEC MUS 2018

  《Conv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation》

  Yi Luo, Nima Mesgarani论文提出了一种全卷积时域音频分离网络—Conv-TasNet,这是 Yi Luo 在继 2017 年提出 TasNet 之后,又一端到端的时域语音分离模型。Conv-TasNet通过使用线性编码器??生成了一种对语音波形的表示形式,并针对单个说话人的分离进行了优化。然后将一组加权函数应用于编码器的输出来实现说话人分离。最后使用线性解码器得到分离出的语音波形。使用由一维空洞卷积块组成的时域卷积网络(TCN)计算掩码,这使得网络可以对语音信号的长期依赖性进行建模,同时保持较小的模型尺寸。

  1、模型框图

  2、效果

  3、开源代码

  https://github.com/kaituoxu/Conv-TasNet

  4、笔记转载

  【论文笔记之Conv-TasNet】: Surpassing Ideal Time–Frequency Magnitude Masking for Speech Separation《PHASE-AWARE SPEECH ENHANCEMENT WITH DEEP COMPLEX U-NET》

  Hyeong-Seok ChoiDepartment of Transdisciplinary Studies, Seoul National University, Seoul, Korea时频域(TF)降噪模型相比纯时域(wav)降噪模型,会一直被诟病的一个点:只利用了输入信号的部分信息(频域幅值)。这倒逼了时频域模型将未利用的信息(频域相位)也利用了起来。

  DC-Unet 结合了深度复数网络和 Unet 的优点来处理复数值谱图, 利用复数信息在极坐标系下估计语音的幅值和相位。 该方法是通过许多卷积来提取上下文信息,从而导致较大的模型和复杂度。

  论文同时提出了 weighted-SDR loss。

  1、 模型框架

  2、 weighted-SDR loss

  3、效果

  4、开源代码

  https://github.com/chanil1218/DCUnet.pytorch

  《DUAL-PATH RNN: EFFICIENT LONG SEQUENCE MODELING FOR TIME-DOMAIN SINGLE-CHANNEL SPEECH SEPARATION》

  Yi Luo??, Zhuo Chen?, Takuya Yoshioka? ?Department of Electrical Engineering, Columbia University, NY, USA ?Microsoft, One Microsoft Way, Redmond, WA, USADPRNN 将长序列输入分割为较小的块(chunk),并迭代地应用块内(intra-chunk)和块间 (inter-chunk)RNN,这也导致了模型开销巨大。块内RNN用于对单帧中的频谱模式进行建模,块间RNN用于对连续帧之间的依赖性进行建模。

  对于实时系统,块内为双向RNN,块间RNN可设置为单向,这样模型时延仅为chunk size(即下图中的K)。从感受野角度分析,帧数为S,chunk size为K,overlap为50%,总长度达到约L=S\cdot K/2

  1、模型框架

  2、效果

  3、开源代码

  https://github.com/ShiZiqiang/dual-path-RNNs-DPRNNs-based-speech-separation

  4、笔记转载

  论文研究12:DUAL-PATH RNN for audio separationhttps://zhuanlan.zhihu.com/p/104606356《PHASEN: A Phase-and-Harmonics-Aware Speech Enhancement Network》

  Dacheng Yin1, Chong Luo2, Zhiwei Xiong1, and Wenjun Zeng21University of Science and Technology of China2Microsoft Research AsiaPHASEN 可以准确估计信号的幅值和相位信息。创新点如下:

  设计了一套双流网络结构(TSB, two-stream block,幅度流和相位流),并且双流之间有信息交互,交互发生在 TSB 模块结束的部分;设计了频域变换块(FTB,frequency transformation blocks)模块,用于获得频域上的长时间跨度的关系, FTB 分布在 TSB 模块的开始和结束位置, FTB 高效整合全局频域相关性,尤其是谐波相关性, 通过对于 FTB 参数的可视化,发现 FTB 自发地学到了谐波相关性。1、模型框架

  双流结构由强度流以及相位流构成。其中,强度流主要由卷积操作,频域变换模块(FTB)以及双向 LSTM 组成,而相位流为纯卷积网络。强度流的预测结果为幅值掩膜 M,其取值为正的实数,相位流的预测结果是相位谱 \varphi ,其取值为复数,由实部和虚部组成。记输入的时频表征为 S_{in} ,则输出 S_{out}=abs\left( S_{in} \right)\circ\ M  \circ \varphi 。其中 \circ 代表逐项相乘操作。为了充分利用双流的信息,采用 gating 的方式在强度流和相位流之间增加了信息交互机制,从而让强度或者相位处理过程中能利用另外一路的信息作为参考。增加了信息交互后,把网络的主体划分为3个 Two Stream Block(TSB)。每一个 TSB 的结构相同,在 TSB 的最后,均有一步信息交互操作。实验表明,双向的信息交互对相位预测至关重要。

  在设计强度流的过程中,发现图像处理中常用的小尺寸二维卷积操作无法处理语音信号中的谐波相关性。不同于自然图像,语音信号在转化为时-频表征时的相关性不仅有邻域成分,而且有谐波成分,而这些谐波相关性是一种分布在频域上的全局相关性。之前的工作中使用的 U-net,空洞卷积等卷积结构都适用于处理邻域相关性,但是无法高效地感受到这种全局频域相关性。为此,提出了频域变换模块(Frequency Transformation Block, FTB)来处理包括谐波在内的全局频域相关性。

  FTB 的结构如上图所示,简单来说,它利用注意力(attention)机制来挖掘非邻域(non-local)相关性。在整体架构中,每一个TSB中强度流的输入和输出端各有一个 FTB,确保每一个 TSB 中处理的信息以及双流交互的信息都能关注到谐波相关性。

  2、效果

  3、开源代码

  https://github.com/huyanxin/phasen

  4、笔记转载

  https://zhuanlan.zhihu.com/p/91838605《Music Source Separation in the Waveform Domain》

  Alexandre Défossez Nicolas Usunier Léon BottouFacebook AI ResearchDemucs是一个waveform-to-waveform 模型,由U-Net 结构和双向 LSTM构成。将模型框架顺时针转动90度,这已经是CRN的结构了。

  双向LSTM的原模型适用于非实时处理,调整为单向LSTM可用于实时处理,但降噪效果会下降。

  1、 模型框架

  2、效果

  3、开源代码

  https://github.com/facebookresearch/demucs

  《SUDO RM -RF: EFFICIENT NETWORKS FOR UNIVERSAL AUDIO SOURCE SEPARATION》

  Efthymios Tzinis, Zhepei Wang, Paris SmaragdisUniversity of Illinois at Urbana-ChampaignAdobe Research全称:SUccessive DOwnsampling and Resampling of Multi-Resolution Features多分辨率特征的连续下采样和重采样。该模型,a)可以部署在资源有限的设备上,b)训练速度快,并实现良好的分离性能,c)在增加参数数量时具有良好的扩展性。适合用于移动设备,能够在有限的浮点运算次数、内存要求和参数数量下获得高质量的音频源分离和较小的时延。

  1、 模型框架

  

  2、效果

  3、开源代码

  https://github.com/etzinis/sudo_rm_rf

  《DCCRN: Deep Complex Convolution Recurrent Network for Phase-Aware Speech Enhancement》

  Yanxin Hu1;?, Yun Liu2;?, Shubo Lv1, Mengtao Xing1, Shimin Zhang1, Yihui Fu1, Jian Wu1, Bihong Zhang2, Lei Xie11Audio, Speech and Language Processing Group (ASLP@NPU), School of Computer Science, Northwestern Polytechnical University, Xi'an, China2AI Interaction Division, Sogou Inc., Beijing, ChinaDCCRN组合了DCUNET 和CRN的优势,在相同的模型参数大小情况下,仅用了1/6的DCUNET计算量,就达到了DCUNET的效果。

  成就:Interspeech 2020 Deep Noise Suppression (DNS),实时赛道第一名,非实时赛道第二名。

  非实时赛道的第一名是Amazon的PoCoNet[2]模型,由于是非实时,就不展开介绍了。

  1、模型框架

  2、效果

  可以看到DCCRN-CL 和DCUNET 参数大小和PESQ指标都很接近,但是DCCRN-CL的计算量是DCUNET的1/6。

  3、开源代码

  https://github.com/huyanxin/DeepComplexCRN

  https://github.com/maggie0830/DCCRN

  4、笔记转载

  https://zhuanlan.zhihu.com/p/3395963035、效果体验

  Deep Complex Convolution Recurrent Network for Phase-Aware Speech Enhancement

  《Dual-Signal Transformation LSTM Network for Real-Time Noise Suppression》

  Nils L. Westhausen and Bernd T. MeyerCommunication Acoustics & Cluster of Excellence Hearing4all Carl von Ossietzky University, Oldenburg, Germany1、模型框架

  网络由两部分相似的模块组成,左半部分模块使用频域数据作为输入,估计出幅度谱mask,使用noisy信号的相位,得到输出:

  右半部分模块借鉴Tasnet语音分离模型的 encoder + seperator(generate mask) + decoder 结构,在时域上实现语音降噪功能。Tasnet结构如下图:

  2、效果

  

  3、开源代码

  https://github.com/breizhn/DTLN

  4、笔记转载

  https://zhuanlan.zhihu.com/p/313343001《ATTENTION IS ALL YOU NEED IN SPEECH SEPARATION》

  Cem Subakan1, Mirco Ravanelli1, Samuele Cornell2, Mirko Bronzi1, Jianyuan Zhong3 1Mila-Quebec AI Institute, Canada, 2Universit`a Politecnica delle Marche, Italy 3University of Rochester, USA 是DPRNN的一个变种算法,主要由multi-head attention 和 feed-forward layers组成。采用了DPRNN引入的双路径框架,并将RNN替换为a multiscale pipeline composed of transformers,可以学习短期和长期依赖关系。

  1、 模型框架

  2、效果

  3、开源代码

  https://github.com/speechbrain/speechbrain/

  《Interactive Speech and Noise Modeling for Speech Enhancement》

  Chengyu Zheng1*, Xiulian Peng2, Yuan Zhang1, Sriram Srinivasan3, Yan Lu 21 Communication University of China2 Microsoft Research Asia3 Microsoft Corporation提出了一种在两分支卷积神经网络中同时建模语音和噪声的新方法。在SN-Net中,这两个分支分别预测语音和噪声。与仅在最终输出层进行信息融合不同,在两个分支之间的多个中间特征域中引入交互模块,以使彼此受益。这种交互可以利用从一个分支学到的特征来抵消不需要的部分,恢复另一个分支缺少的部分,从而增强网络的分离能力。

  1、 模型框架

  2、效果

  

  3、开源代码

  代码未开源

  《A Simultaneous Denoising and Dereverberation Framework with Target Decoupling》

  Andong Li1;2, Wenzhe Liu1;2, Xiaoxue Luo1;2, Guochen Yu1;3, Chengshi Zheng1;2, Xiaodong Li1;21Key Laboratory of Noise and Vibration Research, Institute of Acoustics, Chinese Academy of Sciences, Beijing, China2University of Chinese Academy of Sciences, Beijing, China3Communication University of China, Beijing, ChinaDeep Noise Suppression Challenge – INTERSPEECH 2021 第一名

  SDD是论文名字中黑体字的缩写,一个网络同时完成降噪和去混响任务。作者主要目的是为了展现一种通过解耦(幅度+复数残差)的框架去优化复数谱的思路,至于框架内的模块具体实现没有具体展开介绍,可以自由发挥。

  整个模型是在TF域处理的,框图和精简的公式描述见下图。整个网络框架分为4部分:降噪模块(DN-Net)、去混响模块(DR-Net)、频谱恢复模块(SR-Net)和后处理模块(PP)。其中,前两个模块DN和DR仅使用了幅值信息,相位保持不变;SR模块使用了三种信息:原始输入、DN的输出、DR的输出;PP模块用来进一步抑制残留噪声,作者选择了RNNoise和MMSE-LSA的组合方式。从处理效果上可以看到,第三阶段(SR-Net)后的评分是最高的,这是因为后处理模块(PP)尽管可以进一步抑制残余噪声,但同时也损伤了语音(尤其是语音能量原本就弱的区域),导致了评分下降。1、 模型框架

  经与作者确认,文章中的delay 30ms指的是按照DNS的计算方式帧长20ms+帧移10ms。实际look ahead是0ms。

  2、效果

  3、开源代码

  代码未开源

  《DPCRN: Dual-Path Convolution Recurrent Network for Single Channel Speech Enhancement》

  Xiaohuai Le1;2;3, Hongsheng Chen1;2;3, Kai Chen1;2;3, Jing Lu1;2;31Key Laboratory of Modern Acoustics, Nanjing University, Nanjing 210093, China2NJU-Horizon Intelligent Audio Lab, Horizon Robotics, Beijing 100094, China3Nanjing Institute of Advanced Artificial Intelligence, Nanjing 210014, ChinaDeep Noise Suppression Challenge – INTERSPEECH 2021 第四名

  将DPRNN模块与卷积递归网络(CRN)相结合,设计了双路径卷积递归网络(DPCRN)模型,用于时-频域的语音增强。用DPRNN模块取代了CRN中的RNN,其中块内RNN被用来模拟单帧的频谱模式,块间RNN被用来模拟连续帧之间的依赖。

  1、 模型框架

  2、效果

  3、开源代码

  https://github.com/Le-Xiaohuai-speech/DPCRN_DNS3

  4、笔记转载

  DPCRN: Dual-Path Convolution Recurrent Network for Single Channel Speech Enhancement---论文翻译以上

  最后一首古诗与大家分享,在“淡妆”“浓抹”之间探寻算法的自然美

  饮湖上初晴后雨

  —宋?苏轼

  水光潋滟晴方好,山色空蒙雨亦奇。

  欲把西湖比西子,淡妆浓抹总相宜。