发布时间:2024-08-20 19:01
14 Aug 2020
论文链接:https://arxiv.org/pdf/2007.13975.pdf
目录
Dual-Path Transformer Network:Direct Context-Aware Modeling for End-to-End Monaural Speech Separation
Abstract
Introduction
Speech separation with dual-path transformer network
Eecoder
Separation layer
Decoder
Datasets
实验设置
训练目标
表现评估
Conclusion and future work
主要的语音分离模型是基于RNN或CNN,这种神经网络对语音序列的建模间接地取决于上下文,例如在RNN中通过许多中间状态传递信息,导致分离性能不佳。
本文提出了一种用于端到端语音分离的双路Transformer网络(DPTNet),该网络在语音序列的建模中引入了直接上下文感知。通过引入一种改进的transformer,使得DPTNet能够对语音序列进行直接交互,从而实现对语音序列的直接上下文感知。
该方法中改进的transformer通过在原transformer中加入递归神经网络来学习语音序列的顺序信息,而不需要位置编码。此外,双路径的结构使我们的模型对极长的语音序列建模有效。在基准数据集上的大量实验表明,我们的方法优于当前的先进水平(公共WSj0-2mix数据语料库上的20.6 dB SDR)。
虽然单通道语音分离存在诸多挑战,但在过去的几十年里,人们对解决这一问题进行了大量的尝试。在深度学习时代之前,很多传统的方法被引入到该任务中,如非负矩阵分解(NMF),计算听觉场景分析(CASA)和概率模型。然而,这些模型通常只适用于封闭数据集,这大大限制了它们的实际应用。
随着深度学习技术在各个领域的成功,研究人员开始设计基于数据的模型来分离混合的未知说话人,这克服了传统方法的障碍。总的来说,深度学习技术可以分为两类:时频(T-F)域方法和端到端时域方法。
T-F方法在计算短时傅里叶变换(STFT)生成的TF特征的基础上,对每个源的T-F特征进行分离,然后通过STFT逆重构源波形[DPCL,DANet,PIT,uPIT]。它们通常利用混合波的原始相位来合成估计的源波形,从而保留了有噪声混合波的相位。该策略对分离性能有一个上限。
为了克服这一问题, Tasnet提出了时域方法,该方法采用编码解码器框架直接建模混合波形。
主流的语音分离模型通常基于RNN或CNN,不能直接在背景条件下建模语音序列,导致分离性能不佳。
基于RNN的模型需要通过许多中间状态传递信息。
基于CNN的模型也存在接收域有限的问题。
基于自注意力机制的transformer可以有效地解决这一问题[Self-attention acoustic models],其输入元素可以直接交互。然而,该transformer通常只处理长度为数百的序列,而端到端时域语音分离系统往往建模非常长的输入序列,有时可达数万个。双路网络是解决[Dual-path rnn]这一问题的有效方法。
受上述启发,我们提出了一种用于端到端单声语音分离的双路transformer网络(DPTNet),该网络引入了一种改进的transformer,允许对语音序列进行直接的上下文感知建模,从而获得更好的分离性能。
主要贡献如下:
1.第一次将直接上下文感知建模引入语音分离。该方法使语音序列中的元素可以直接交互,有利于信息的传输。
2.将RNN引入到原始transformer中,使其能够在不进行位置编码的情况下学习语音序列的顺序信息。并且我们将这个改进的transformer嵌入到一个双路网络中,这使得我们的方法对极长的语音序列建模有效。
3.在基准数据集上的大量实验表明,我们的方法优于当前的先进水平(公共WSj0-2mix数据语料库上的20.6 dB SDR)。
如图1所示,语音分离系统由encoder、separation layer和decoder三个阶段组成,类似于conv-tasnet。
首先,利用encoder在中间特征空间中将混合波形分段转化为相应的特征;
然后将特征输入到separation layer,为每个源构造一个Mask。最后,解码器通过转换掩蔽特征来重建源波形。
如果用表示混合语音,那么我们可以将其划分为长度为L的I个重叠向量。编码器接收x并输出语音信号,
其中编码器可被描述为具有N个长度为L的滤波器的滤波器组W,这实际上是一个一维卷积模块。
分离层:双路变压器网络分离层即双路变压器网络,由分段、双路变压器处理和重叠相加三个阶段组成,其灵感来自于常见的双路网络[Dual-path rnn]。
Segmentation
首先,分割阶段将X分割成长度K,跳数H的重叠块,然后将所有块拼接成一个三维张量
Dual-path transformer processing
广义来说,transformer由编码器和解码器[Self-attention acoustic models]组成。编码器和解码器共享相同的模型结构,只是解码器是一个仅用于生成的左上下文版本。(the decoder is a left-context-only version for generation.)
为了避免混淆,本文中的transformer特指编码器部分,它由三个核心模块组成:
缩放点积注意是一种有效的自注意机制,通过关联输入序列的不同位置来计算输入的表示,如图2(a)所示。该模块的最终输出计算为这些值的加权和,其中每个值的权重由带有相应键的查询的注意函数计算。多头注意由多个缩放的点积注意模块组成,如图2(b)所示。
首先,它将输入h次线性映射为不同的、可学习的线性投影,以分别获得并行查询、键和值。然后对这些映射的查询、键和值同时执行缩放的点积注意。位置式前馈网络是一种全连通前馈网络。它由两个线性转换组成,其间有一个ReLU激活。除三个核心模块外,transformer还包括多个残差层和标准化层。
如图3(a)所示,我们给出了变压器的整体结构,其表达式为:
是长度为、维数为d的输入;
是映射的查询、键和值;
和是参数矩阵;
表示的是position-wise前馈网络输出,
其中,, ,
由transformer建模的语音序列中的元素的可以直接接触,无需中间传播, 这将直接的上下文感知建模引入到我们的方法中。
上述transformer所忽略的一件事是如何利用语音序列中的顺序信息。原transformer将位置编码添加到输入嵌入(embedding)中,以表示顺序信息,这是正弦和余弦函数或学习参数。
然而,我们发现位置编码并不适用于双路径网络,在训练过程中往往会导致模型发散。为了学习顺序信息,我们将前馈网络中的第一个全连通层替换为循环神经网络,这是对论文[Self-attention acoustic models]的一个有趣的改进:
我们在图3(b)中展示了这种改进的变压器,并将其应用于下一个双路transformer proposing阶段。
在双路transformer proposing阶段,segmentation阶段的输出D被传递给B堆双路transformer (DPTs),如图1所示。每个DPT由intra-transformer和inter-transformer组成,分别致力于对局部和全局信息进行建模。
Intra-transformer内处理块首先独立地对局部块(chunk)建模,其作用于D的第二维度:
然后使用inter-transformer汇总所有块的信息,学习全局依赖关系,执行D的最后一个维度:
式中,b=1,…, B, 且
每个sub-transformer中的层标准化适用于所有维度。实际上,这种结构使得语音序列中的每个元素只与某些元素直接交互,并通过一个中间元素与剩下元素交互。这一事实对直接上下文感知器建模产生了轻微的负面影响。然而,双路径的结构使我们的方法能够有效地建模极长的语音序列。一般来说,双路结构带来的小缺点远远小于它带来的好处。
Overlap-Add
最后一个inter-transformer 的输出用于通过二维卷积层学习每个源的掩码。掩码通过overlap被转换回序列,第s个源的掩码编码器特征通过X和之间的元素式乘法获得:
在解码器中,使用转置卷积模型来为第s个源重构分离的语音信号:
其中中的值是转置卷积模块的参数。然后采用叠加法(overlap-add)得到最终波形,解码器的结构和功能与编码器对称。
我们使用WSJ0-2mix和LS-2mix数据集评估了我们提出的双说话人语音分离模型。
WSJ0-2mix数据集来自WSJ0数据语料库。30个小时的训练数据和10个小时的验证数据包含两个说话者的混合,这是通过随机选择WSJ0训练集si_tr_s中不同说话者的话语,并以-5 dB和5 dB之间的随机信噪比(SNR)混合而产生的。5小时测试集同样是使用WSJ0验证集si_dt_05和评估集si_et_05中未见过的说话者的话语生成的。
LS-2mix是在Librispeech数据集的基础上创建的,是一个新的阅读英语语音语料库。从train-100集合中随机选择两个扬声器,以在0 dB和5 dB之间均匀采样的各种信噪比生成训练混合。验证和测试集类似地使用来自Librispeech验证和测试集中未见过的说话者的话语来生成。生成的LS-2mix数据集包含训练/验证/测试集中的20000、5000和3000个话语。
在编码器和解码器中,窗口大小为2个样本(samples),使用50%的步长(stride size)。过滤器(filters)的数量设置为64。至于分离层,双路transformer的数量,即B,被设置为6,并且采用h = 4个平行的attention层。
在训练阶段,我们在4秒长的片段(segments)上为100个epoch训练所提出的模型,并且早期停止的标准是在10个epoch的验证集上损失函数不减少。
Adam被用作优化器(optimizer),并且在训练期间应用最大L2范数为5的梯度裁剪。
对于最初的warmup_n个训练步骤,我们线性增加学习速率,然后每两个epoch将其衰减0.98:
式中,n为step number,k1、k2为可调标量,本文中k1= 0.2, k2= 4e-4,warmup_n = 4000。
这些超参数是根据双路网络[Dual-path rnn]和transformer[Attention is all you need]的设置经验选择的。
DPTNet的Pytorch实现: https://github.com/ujscjjDPTNet
使用uPIT训练模型,以最大化尺度不变信噪比(SI-SNR)
其中,分别为干净源和估计源,两者在计算前均归一化为零均值。
在所有的实验中,我们报告了尺度不变信噪比(SI-SNR)和信噪比(SDR)来衡量DPTNet的分离性能,这两者经常被用于各种语音分离系统的评估。
我们首先报告了我们的模型和近年来著名的分离方法在WSJ0-2mix数据集上的SI-SNR和SDR得分。如表1所示,我们的DPTNet在SI-SNR和SDR指标上分别达到20.2 dB和20.6 dB,这是一种新的最先进的性能。
由于直接上下文感知的建模,DPTNet建模的语音序列中的元素可以直接交互,从而获得最佳的单音语音分离性能。
此外,我们的模型保持一个小的模型尺寸。
为了证明我们的方法的泛化,我们在LS-2mix数据集上进行了相关的实验。与WSJ0-2mix数据语料库相比,LS-2mix中的混合数据难以分离,但这并不影响我们的方法与基线的比较。我们再现了两种经典的方法,即convo - tasnet和DPRNN作为基线。
表2列出了我们的DPTNet和两个基线获得的平均SI-SNR和SDR,其中我们的直接上下文感知建模仍然明显优于最先进的方法DPRNN。说明了该方法的泛化性,并进一步证明了该方法的有效性。
本文提出了一种端到端多说话人单声语音分离的双路变压器网络,该网络直接模拟上下文条件下的语音序列。我们的模型可以在不使用位置编码的情况下学习语音序列中的顺序信息,并且可以有效地对极长的语音信号序列进行建模。
在两个基准数据集上的实验证明了该模型的有效性,并在公共WSJ0-2mix数据语料库上取得了较好的性能。
在未来,我们希望扩展这项工作,直接建模长语音特征序列,没有双路径结构。为进一步提高分离性能奠定了基础。