
0. 摘要
部分研究成果虽然使用了复数频谱作为训练目标,但是却使用实数网络对幅度部分和相位部分(或者对实部和虚部)进行训练。此外,CRN(convolutional recurrent network)模型集成了CED(convolutional encoder-decoder)结构和LSTM结构特征,已被证明对复值训练效果较好。本文提出了一种模拟复值运算的新网络结构,DCCRN(Deep Complex Conbolution Recurrent Network),该网络模型参数大小为3.7M,在Interspeech 2020 deep noise suppression竞赛中实时赛道排名第一,非实时赛道排名第二。
1. Intorduction
噪声干扰不可避免的会降低语音交互的质量。因此,语音增强工作是一项非常重要的语音前端处理任务,将嘈杂的语音作为输入并生成增强的语音输出,以获得更好的语音质量、清晰度。近来,深度学习方法在语音增强领域取得了很好的结果,尤其是在处理具有挑战性的非稳态噪声方面。本文聚焦于基于深度学习的单通道语音增强方法,提升语音的感知质量和可懂度,尤其针对具有低模型复杂度的实时语音处理。
1.1 Related work
作为一个有监督学习问题,我们可以通过在时频域(TF-domain)和时域(time-domain)下对嘈杂语音进行增强。基于时域的方法又可以进一步划分为直接回归方法[2, 3]和自适应前端方法[4-6]两个类别。前者直接学习从语音噪声混合波形到目标语音的回归函数,无需显式的信号前端,通常使用某种形式的一维卷积神经网络 (Conv1d)实现。后者通常采用卷积编码-解码器和U-Net网络架构,时域信号作为输入和输出,实现类似于短时傅里叶变换和逆变换过程。然后在编码器和解码器之间插入语音增强网络,通常使用具有时间建模能力的TCN(temporal convolutional network)[4, 7]架构和LSTM(long-short term memory)架构[8]。
另一个主流的方法是在时频域方法[9-13],该类方法认为经过STFT变换得到的TF表示能够令语音和噪声的精细结构更加容易分离。CRN方法【14】是一项近期的工作,通过CED提取高级特征(high-level),以更好的进行带噪语音分离。CED方法能够处理复值谱和实值谱。复值频谱图可以分解为极坐标下的幅度谱和相位谱,或者笛卡尔坐标系下的实部和虚部。很长一段时间里,研究人员普遍认为相位是难以训练估计的,因此研究工作大多聚焦于幅度谱估计中[15-17],忽略的相位信息估计,通过估计出的幅度和带噪语音的相位信息进行语音重建,该方法限制了网络的性能上限。
基于时频域方法的训练目标主要可以分为两类:masking-based target和mapping-based target。前者描述了语音和背景噪声之间的时频关系。后者对应纯净语音的频谱表示。在基于掩码的方法中,理想二值掩蔽(IBM)【20】, 理想比值掩蔽(IRM)【10】和频谱幅度掩蔽(SMM)【21】仅仅用到了干净语音和混合语音的幅度信息,没用使用相位信息。相反,phase-sensitive mask(PSM)【22】是第一个利用相位信息进行相位估计的掩蔽训练目标。之后,提出了复数比值掩蔽(CRM)【23】,该方法同时增强实部和虚部,实现完美的重建纯净语音。论文[24]提出的CRN方法,使用一个encoder 和两个decoders,通过复值频谱映射(CSM)同时估计混合语音信号的实部和虚部。CRM和CSM方法用到了语音的全部信息,理论上可以达到最佳性能。
最近DCUNET方法【25】集成了深度复数网络和u-net网络的优势,直接处理复值频谱。该网络模型的训练目标为CRM,使用SI-SNR损失函数进行网络模型优化,虽然该方法实现了SOTA性能,但由于使用了多层卷积网络,使得模型的复杂度较高,训练效率低。
1.2 Contributions
本文在之前网络架构的基础上,提出了deep complex convolution recurrent network(DCCRN),使用SI-SNR损失函数进行网络优化。该网络模型有效的结合了DCUNET和CRN方法的优势,使用LSRM对时序依赖进行建模,有效减少了可训练参数数量和计算开销。比较了不同的训练目标,复数网络和复数目标可以达到最佳性能。实验中,DCCRN模型的性能远远超过CRN模型,以1/6的计算复杂度,达到了DCUNET的网络性能。对于实时语音增强问题,参数量仅为3.7M。
2. The DCCRN Model
2.1 Convolution recurrent network architecture
CRN 模型【14】是一种典型的CED架构网络,在编码器和解码器之间,插入两层的LSTM。这里的LSTM层用于对时序依赖进行建模。encoder部分包含五个Conv2d blocks,用于从输入特征中提取高级特征,或者降低分辨率。decoder部分,通过对称设计,重构低分辨率特征。二维卷积块中包含卷积和反卷积层,batch normalization和激活函数层。encoder和decoder对应层之间通过skip-connection相连。
论文【24】在CRN的基础上,进一步提出了一个encoder 和两个decoder 的网络架构。对复值STFT频谱的实部和虚部分别进行建模。相比于仅仅对幅度信息进行建模的方法,【24】的网络性能有了非常明显的提升。但是DCCRN将实部和虚部作为输入的两个通道,依然采用实值卷积进行运算,没有考虑复数的乘法规则,因此网络可以在没有先验知识的情况下学习实部和虚部。本文提出的DCCRN使用复数CNN,复数batch normalization和复数LSTM对CRN方法进行改进。具体而言,复数模块通过对复数乘法进行模拟,可以实现对幅度和相位的关系进行建模。
2.2 Encoder and decoder with complex network
复数编码器模块包含复数二维卷积、复数batch normalization【26】和实值PReLU【28】。通过DCUNET,本文设计了复数二维卷积模块,该模块包含4个传统的二维卷积操作,其控制encoder中的复数信息流。复值卷积滤波器W定义为 W = W r + j W i W = W_r + jW_i W=Wr+jWi,其中实值矩阵 W r 和 W i W_r 和W_i W