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

DCCRN:用于相位感知的语音增强的深度复数卷积递归网络

摘要

随着深度学习的成功语音增强在可理解性和可感知质量方面都有了提升。传统上,在时频(TF)上的方法主要是通过简单的卷积神经网络(CNN)或循环神经网(RNN)预测时频的遮罩矩阵或语音频谱。最近的一些研究使用复数频谱图作为训练目标,但训练是在实数网络中完成,其分别预测幅值和相位分量或实部和虚部。值得注意的是, 卷积递归网络(CRN)集成了卷积编码器-解码器(CED)结构和 LSTM,这已被证明对复杂目标有帮助。为了更有效地训练复杂目标,在本文中,我们设计了一个新的网络模拟复值的操作称为深度复杂卷积递归网络(DCCRN),其中CNN和RNN结构都可以处理复值操作。我们所提出的DCCRN模型在客观或主观指标上都比以前的其他网络非常有竞争力。在只有370万个参数的情况下,我们提交给Interspeech 2020DNS 挑战赛的DCCRN模型,在平均意见得分(MOS)方面,在实时轨道上排名第一,在非实时轨道上排名第二。

  • 受到CRN的启发,想使用复数的频谱做CRN

简介

 噪声干扰可能会严重降低语音通信的感知质量和可懂度。同样地,相关的任务,如自动语音识别(ASR),也会受到噪声干扰的严重影响。因此,语音增强是一项非常需要的任务,即把有噪声的语音作为输入,并产生一个增强的语音输出,以获得更好的语音质量、可懂度,有时还能在下游任务中获得更好的评判(例如,在自动语音识别中降低错误率)。最近,深度学习(DL)方法在语音增强方面取得了可喜的成果,特别是在处理挑战性条件下的非平稳噪声方面。根据具体的应用,DL可以使单声道(单声道)和多声道语音增强受益。在本文中,我们专注于基于DL的单通道语音增强,以获得更好的感知质量和可理解性,特别是针对低复杂性的模型的实时处理。Interspeech 2020 DNS挑战为这种目的提供了一个共同的测试平台[1]。

  • 语音增强,单声道信号

     相关

作为一个有监督的学习问题,嘈杂的语音可以通过神经网络在时频(TF)或直接在时域进行增强。时域方法可以进一步分为两类--直接回归[2,3]和适应性前端方法[4-6]。前者直接从语音-噪声混合物的波形中学习回归函数,而不需要明确说明。语音-噪声混合物到目标语音的回归函数,没有明确的 信号前端,通常是通过涉及某种形式的一维 卷积神经网络(Conv1d)。以时域的 后者的自适应前端方法采用时域信号的输入和输出。通常采用卷积编码器-解码器(CED)或u-net 框架,它类似于短时傅里叶变换(STFT)及其反演。(STFT)和它的反转(iSTFT)。

  • 直接回归:通过某种形式的一维卷积神经网络(1-D CNN)来学习混合语音到干净语音的映射关系,而无需明确的短时傅里叶变换
  • 自适应前端:通过构建可学习的前端来代替短时傅里叶变换(STFT)。然后将生成的类似于频谱图的内容做为分离模块的输入进行分离。这个方法的好处是可以在窗口大小和前端基频数量方面有更多灵活的选择 该类型的方法类似Conv-TasNet,Furcanext

然后在编码器和解码器之间插入增强网络,通常使用具有时间建模能力的网络,如 temporal convolutional network(TCN)[4, 7]和 long shortterm memory(LSTM)[8]。作为另一个主流,TF的方法[9-13]在频谱图上工作,认为在STFT之后,语音和噪声的细微结构可以通过TF表示更容易分离。

     卷积递归网络(CRN)[14]是一种最新的方法,它也采用了与时域方法类似的CED结构,但通过二维CNN(Conv2d)从嘈杂的语音频谱中提取高级特征以实现更好的分离。具体来说,CED可以将复值或实值的频谱图作为输入。复数频谱可以分解为极坐标中的幅值和相位,或者笛卡尔坐标中的实部和虚部。长期以来,人们一直认为相位是难以估计的。因此,早期的 研究只关注与幅度有关的训练目标,而忽略了相位[15-17],通过简单地应用估计的幅度与噪声语音相位来重新合成估计的语音。这就限制了性能的上限。而估计的语音的相位会在严重的干扰下出现明显的偏差 严重的干扰。尽管最近有许多方法 虽然最近提出了许多相位重建的方法来解决这个问题 18, 19],但神经网络仍然是实值的。

  • 传统CRN网络做编解码CED结构,但没有引入相位信息

通常,在TF域定义的训练目标主要分为两类,即以掩蔽的目标和以映射的目标,前者描述了干净语音和背景噪声之间的时频关系,后者对应于干净语音的频谱表现。在掩蔽系列中,ideal binary mask (IBM) [20], ideal ratio mask (IRM) [10] and spectral magnitude mask (SMM) [21]只使用干净语音和混合语音之间的幅度,忽略了相位信息。相比之下,phase-sensitive mask (PSM) [22]是第一个利用相位信息的掩码,显示了相位估计的可行性。随后,complex ratio mask(CRM)[23]被提出,它可以通过同时增强干净语音的实部和虚部的分割来完美重建语音和混合语音频谱图的实部和虚部同时增强,可以完美地重建语音。和混合语音频谱图的实部和虚部同时增强,可以完美地重建语音。后来,Tan等人[24]提出了一个具有一个编码器和两个解码器的complex spectral mapping (CSM) 的CRN,以同时估计混合语音的实部和虚部谱图。值得注意的是,CRM和CSM拥有语音信号的全部信息,因此它们在理论上可以达到最佳的语音增强性能。

  • TF下一般的操作可以分为遮罩(遮罩矩阵,加强语谱图的目标声音)和映射(通过编解码直接完成输入到输出的映射)
  • 之前的模型虽然考虑到了相位信息,但网络还是只包含实数

上述方法都是在实数网络下学习的,不过已经考虑到了相位信息。最近,deep complex u-net [25]结合了deep complex network[26]和u-net[27]的优点来处理复数频谱图。特别是,DCUNET被训练来估计CRM,并在通过iSTFT将输出的TF域频谱图转换为时间域波形后,优化了标度不变的源噪比(SI-SNR)损失[4]。虽然在时间建模能力方面取得了最先进的性能,但采用了许多层卷积来提取重要的上下文信息,导致模型的大小和复杂性很大,这限制了其在效率敏感型应用中的实际应用。

  • 根据DCUNET的启发,采用复数卷积层,以处理复数频谱

     搭建

在本文中,我们在以前的网络架构基础上,设计了一个新的复值语音增强网络,称为deep complex convolution recurrent network (DCCRN)[ 深度复数卷积递归网络],其以SI-SNR作为损失函数来优化模型。 该网络有效地结合了DCUNET和CRN的优点,使用LSTM对时间背景进行建模,可训练的参数和计算成本大大降低。在提出的DCCRN框架下,我们还比较了各种训练目标,复杂的网络与复杂的目标可以获得最好的性能。在我们的实验中,我们发现提出的DCCRN在很大程度上优于CRN[24]。DCCRN只有1/6的计算复杂度,在类似的模型参数配置下,DCCRN达到了与DCUNET[25]竞争的性能。针对实时语音增强,我们的模型只有3.7M的参数,根据DNS挑战中的P.808主观评价,我们的模型取得了在实时轨道中最好的MOS得分,并且在非实时轨道中取得了第二好的成绩。

  • 数据参数小,在3.7M,结合CRN和LSTM

DCCRN模型

    CRN结构

      最初在[14]中描述的卷积递归网络(CRN)是一个本质上的因果CED结构,在编码器和解码器之间有两个LSTM层。在这里,LSTM被专门用来模拟时间依赖关系。编码器由五个Conv2d块组成,旨在从输入特征中提取高级特征,或降低分辨率。随后,解码器将低分辨率的特征重构为输入的原始大小,使编码器-解码器的结构成为对称设计。详细来说,编码器/解码器Conv2d块由卷积/解卷积层组成,然后是批量归一化和激活函数。跳跃连接有利于通过集中编码器和解码器来流动梯度。

  • 原始网络结构:对称的五层复数二维卷积编解码,每层做Batch Normalization和PReLu,中间两层复数的LSTM,输入输出对应层做链接

      与原来的幅度映射的CRN不同,Tan等人[24]最近提出了一种修改的结构,用一个编码器和两个解码器来对STFT谱图的实部和虚部建模使得混合有噪音的输入可以转换为纯净语音。与传统的仅有幅度的目标相比,同时增强幅度和相位获得了显著的改善。然而,他们把实部和虚部当作两个输入通道,只用一个共享的实值卷积滤波器进行实值卷积运算,这不符合复数乘法的规则。因此,网络可以学习实部和虚数部分,而不需要先验知识。为了解决这个问题,本文提出的DCCRN对CRN进行了实质性的修改,在编码器/解码器中加入了复杂的CNN和复杂的批量归一化层,同时还考虑用复杂的LSTM代替传统的LSTM。具体来说,复数模块通过模拟复数乘法来模拟幅度和相位之间的关联性。

  • 复数乘法(a+bi)(c+di)=( ac-bd)+(bc+ad)i,为了保持乘法特性还需计算复数的实虚步相对关系

     复数网络编解码

      复数编码器模块包括复数Conv2d、复数批归一化[26]和实值PReLU[28]。复数批归一化和PReLU遵循原论文的实现。我们根据DCUNET[25]中的设计来设计复杂Conv2d块。复杂的Conv2d由四个传统的Conv2d操作组成,它们控制着整个编码器的复杂信息流。复值卷积滤波器W被定义为W = Wr+jWi,其中实值矩阵Wr和Wi分别代表复值卷积核的实部和虚部。同时,我们定义输入复数矩阵X = Xr + jXi 。因此,我们可以从复数卷积运算X ~ W得到复数输出Y。

  • 这部分就是怎么在卷积和lstm层实现复数的卷积和lstm。简单来说,若把参数和输入均看为复数,一次的卷积就会变成四次,因为涉及到实虚部的相互关系,lstm同理

实验

    数据集

第一个数据集,我们从WSJ0[30]中选择了24500个语料(约50小时),其中包括131个演讲者(66个男性和65个女性)。我们对训练、验证和评估集进行洗牌和拆分,分别为20000、3000和1500个语料。噪声数据集包含6.2小时的自由声噪声和42.6小时的MUSAN[31]音乐,我们用其中的41.8小时进行训练和验证,其余7小时用于评估。训练和验证中的语音-噪声混合物是通过从语音集和噪声集中随机选择语料并在-5dB和20dB之间的随机信噪比下混合产生的。测试集是在5个典型的信噪比(0dB、5dB、10dB、15dB、20dB)下产生的。

第二个大数据集是基于DNS挑战提供的数据。180小时的DNS挑战赛噪声集包括150个类别和65,000个噪声片段,而干净的语音集包括来自2150个发言人的超过500小时的片段。为了充分利用该数据集,我们在模型训练期间用动态混合来模拟语音-噪声混合物。详细地说,在每个训练历时,我们首先用房间脉冲响应(RIR)对语音和噪声进行卷积,该房间脉冲响应是通过图像方法[32]从模拟的3000个RIR集合中随机选择的,然后通过在-5到20dB之间的随机信噪比混合混响语音和噪声,动态地产生语音-噪声混合物。经过10个全训练集的训练,该模型 "看到 "的总数据超过5000小时。我们使用官方测试集进行客观评分和最终的模型选择。