本文由清华大学与广州虎牙信息科技有限公司、香港中文大学合作,提出了一种新型的基于通道注意力机制的复数谱单通道语音增强网络 FullSubNet+,在低信噪比(SNR) 的条件下于抑制噪声恢复语音信号任务上取得了良好的效果,超越了现有的最好的方法。

论文链接:

https://arxiv.org/abs/2203.12188

开源代码阅读及增强效果试听:

https://github.com/thuhcsi/FullSubNet-plus


背景动机

单声道语音增强旨在去除带噪音频中的背景噪声、提高语音的质量和清晰度。近年来,基于深度学习的语音增强方法,在低信噪比、混响等挑战性条件下可以取得较好的效果,相关方法可以分为时域方法和频域方法。时域方法直接从带噪语音波形预测干净的语音波形。频域方法则一般以带噪频谱特征为输入,其学习目标是干净的频谱特征或掩模(包括理想二值掩模IBM、理想比掩模IRM、理想复比掩模cIRM等)。对模型学习而言,由于频域信号具有更易区分的特征,因此频域方法在语音增强方法中占据了主导地位。

子带模型是一种典型的单通道语音增强方法:模型的输入由一个频带和几个相邻频带组成,通过学习局部频谱模式来区分语音和噪声。FullSubNet在子带模型的基础上加以改进,它由一个全带模型和一个子带模型组成,将两者串联后进行联合优化。通过这种方式,FullSubNet可以捕捉到全局频谱的上下文信息,同时保留了关注局部频谱模式的能力,因此在降噪任务上取得了优异的效果。然而,FullSubNet仍然存在一些不足:(1)网络将原始的整个频段作为全频段模型的输入,降低了网络对输入频谱中不同频段的辨别能力;(2)网络将cIRM作为预测目标,但是输入只考虑幅度谱、缺乏相位信息。这种输入和输出信息的不匹配是不合理的,导致增强语音的相位明显偏离,限制了网络性能的上限。

贡献

本文针对上述FullSubNet的问题,提出了一种新型的单通道语音增强网络 FullSubNet+。该网络首先使用一个自主设计的多尺度时间感知通道注意力模块 MulCA,利用多尺度卷积核通道注意力机制,帮助网络聚焦到对降噪更有意义的频带;而后,该网络将所有的幅度谱、实部谱和虚部谱作为输入,以充分利用噪声语音中的相位信息;最后,该网络还将原全频带模型中的 LSTM 层替换为堆叠的 TCN 模块,有效降低了计算复杂度。实验表明,本文所提的FullSubNet+网络在低信噪比的条件下于抑制噪声恢复语音信号任务上取得了良好的效果,超越了现有的最好的方法。

解决方案

FullSubNet+整体架构

FullSubNet+的整体模型结构如图所示。模型主要由三部分组成:三个并行的MulCA模块,三个全频带提取器(Full-band extractor)分别处理幅度谱,实部谱和虚部谱,以及一个子带模块(Sub-band Model)。

多特征输入

FullSubNet+将所有的幅度谱、实部谱和虚部谱作为输入,并对它们进行联合学习。该方法有助于解决FullSubNet中的输入-输出不匹配问题,并能够有效利用噪声语音中的相位信息。

多尺度时间感知通道注意力模块(MulCA)


MulCA模块示意图

多尺度时间感知通道注意力模块(MulCA模块)被用于计算分配给不同频率的权重,通过这些权重,模型将重点关注在降噪中发挥更重要作用的频段。如上图所示,MulCA模块由多尺度深度卷积、线性层和通道注意机制组成。我们首先使用三个具有不同大小卷积核尺度的depth-wise卷积网络,分别提取出不同时间尺度的特征;而后,将这些特征进行拼接后,通过全连接层得到一个融合的特征,融合特征中包含了不同时间尺度的信息;最后,再使用通道注意力机制,从融合特征中预测分配给不同频率的权重。

全频带提取器(Full-band extractor)


全频带提取器模块示意图

TCN作为一种具有强大时间序列建模能力的模型,近年来在语音分离和目标说话人提取任务中得到了广泛应用。我们使用堆叠的TCN块来取代原来FullSubNet中全频带模型中的LSTM,并将其命名为全频带提取器。具体来说,一组堆叠的TCN块被用来替代一层LSTM。我们通过指数级增加每组的扩张因子来堆叠TCN块,以捕捉全频段上具有长距离依赖性的语音信号的特征。

子带模型(Sub-band model)

子带模型模块示意图

为了学习频率方向的信号平稳性和保持模型训练中的稳定性,子带模型使用由两个堆叠的单向LSTM层和一个全连接层组成的网络结构。子带模型以拼接的embeddings作为输入,这些embeddings中包含了来自sub-band units的局部频谱模式信息以及从幅度谱、实部谱、虚部谱中提取出的全频带的幅度和相位信息。子带模型根据这些拼接embeddings来预测最终的学习目标cIRM。

实验验证

我们在InterSpeech 2021 DNS Challenge数据集的一个子集上训练和评测了FullSubNet+。干净数据集包括2150名说话人的562.72个小时的语音片段。噪声数据集包括来自超过150个类别的181个小时的60000个音频。

在模型训练过程中,我们使用动态混合语音-噪声来模拟带噪语音。具体而言,在每个训练周期开始之前,75%的干净语音与从OpenSLR26和OpenSLR28数据集随机选择的房间脉冲响应(RIR)混合。之后,在-5到20分贝的随机信噪比下,通过混合干净的语音和噪声来动态地产生带噪语音。

DNS Challenge提供了一个公开可用的测试数据集,由无混响和有混响的带噪语音组成,其中每个类别有150个噪声片段,信噪比分布在0分贝到20分贝之间。我们使用这个测试集来评估我们模型的有效性。


不同模型DNS Challenge测试集上的表现

与作为Baseline的FullSubNet的对比实验

在上表的最后两行,我们比较了FullSubNet+与作为Baseline的FullSubNet的性能。从表中我们可以看出,FullSubNet+在所有指标上都比FullSubNet有明显的性能提升。此外,FullSubNet+的推理速度在GPU上比FullSubNet提高了近18%,在CPU上则提高了接近80%。这证明了我们的模型改进的有效性。

与现有最好(state-of-the-art)方法的对比实验

在上表中,我们还将FullSubNet+与当前一些最先进的方法进行了比较。本文提出的FullSubNet+在没有混响的情况下显示出卓越的降噪性能,在有混响的情况下甚至有更突出的性能提升。这表明,作为对FullSubNet的改进,FullSubNet+继承了子带模型对混响效果的优秀建模能力,并在此基础上大大提高了降噪能力。

消融实验


探究MulCA模块效果的消融实验

我们首先探究了MulCA模块的效果。上表显示了模型在四种情况下对无混响测试集的效果,其中“Full-input”和“Sub-input”分别指对全频带提取器的输入进行加权和对子带模型的输入进行加权。从表中可以看出,经过MulCA的加权后,全频带提取器和子带模型的性能都有增益,两者一起使用时,性能达到最好。可以得出结论,MulCA模块只需增加少量参数就能对语音增强模型产生明显的效果。


探究相位信息对模型的影响的消融实验

我们进而探究了相位信息对模型的影响。从上表中,我们可以观察到四个模型在无混响测试集上的结果,其中“Phase-info”是指使用实部谱和虚部谱分支来利用语音的相位信息。可以发现,在使用从实部谱和虚部谱分支中提取的特征后,该模型在性能上有所提高。此外,这种改进与MulCA模块并不冲突,使用相位信息和MulCA模块两者的结合可以得到最佳的结果。

结论

本文提出了一个新的单通道语音增强模型FullSubNet+。首先,我们设计了一个轻量的MulCA模块,该模块采用了多尺度卷积和通道注意力机制,帮助模型关注更具区分度的频段,进而进行降噪。然后,为了充分利用带噪语音中的相位信息,我们的模型将幅度谱、实部谱和虚部谱作为输入。此外,通过用TCN块取代原始全频带模型中的LSTM层,我们设计了一个更有效的全频带模块,称为全频带提取器。实验结果表明,FullSubNet+在DNS Challenge数据集上的表现明显优于FullSubNet和其他先进的方法。

了解代码细节与增强效果试听

https://github.com/thuhcsi/FullSubNet-plus