[语音分离论文小记] Dual-Path Transformer Network

作者:Jingjing Chen, Qirong Mao, Dong LiuJingjing Chen, Qirong Mao, Dong Liu
发表于 INTERSPEECH 2020


网上的笔记 asteroid源码 官方源码

论文地址

双路径transformer、端到端、时域、直接上下文感知

值得一读的论文

i Luo, Zhuo Chen, and Takuya Yoshioka, “Dual-path rnn: efficient long sequence modeling for time-domain single- channel speech separation,” arXiv preprint arXiv:1910.06379, 2019. (首次提出双路径循环网络DPRNN)

Y. Luo and Mesgarani,“Conv-tasnet: Surpassing ideal time–frequency magnitude masking for speech separation,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 27, no. 8, pp. 1256–1266, 2019.(ConvNet)


  1. 方法:为了更好地对长时间语音序列进行建模,作者提出双路径transformer网络(DPTNet),该网络在语音序列建模中引入了直接上下文感知,通过在原始transformer中加入循环神经网络,可以在不需要位置编码的情况下进行建模,双路径结构可以使得模型对长时间序列建模。

  2. 这篇论文的核心其实就是将DPRNN中的块间RNN和块内RNN替换为了改进Transformer,在改进Transformer中将原始Transformer中编码器的FFT中的第一个Linear替换为RNN

  3. Introduction

    • 一些语音分离的传统方法:非负矩阵分解(NMF)、计算听觉场景分析(CASA)和概率模型,但这些方法只能在close-set中使用(close-set就是所有的测试集都在训练集中出现过;open-set就是测试集没有在训练集中出现过)
    • 深度学习的方法可以分为T-F域和端到端时域的方法。T-F域的方法通过计算STFT,将每个源语音分离出来,之后通过iSTFT重构源语音波形,在重构源语音的时候使用的为混合语音的相位,因此对分离效果有一定影响;而端到端时域方法是直接对原始混合波形进行处理,无序将幅值和相位单独处理,可以避免相位难以估计的问题。
    • 端到端语音分离中,输入可能是非常长的时间序列,因此需要一个可以对长时间序列进行建模的方法,双路径网络DPRNN可以较好的解决这个问题。作者在DPRNN的基础上提出了DPTNet,该网络引入了一种改进的transformer,允许对语音序列进行直接上下文感知建模,从而获得更好的分离性能
    • 本文是第一个将上下文感知建模引入语音分离工作中的,该法使语音序列中的元素可以直接交互,有利于信息的传递;将递归神经网络引入到原始transformer中,增加模型对长时间序列的建模能力
  4. 模型结构

    • 模型包括三部分:编码器、分离层和解码器(类似ConvNet的结构)。编码器将混合语音转化为高维特征。然后将特征提供给分离层,为每个源语音估计一个掩蔽。最后,解码器通过混合语音和掩蔽来重建源波形

    • 编码器:将混合语音信号 x ∈ R 1 × T x\in\mathbb{R}^{1×T} xR1×T划分为长度为L的I个重叠向量 x ∈ R L × I x\in\mathbb{R}^{L×I} xRL×I,经过编码器后得到 X = R e L u ( x ∗ W ) , X ∈ R N × I X=ReLu(x*W),X\in\mathbb{R}^{N×I} X=ReLu(xW),XRN×I,其中W为长度为L的N个滤波器,实际上是一维卷积

    • 分离层主要由三部分:分割、双路径transformer和重叠添加,这是受DPRNN的启发。

    • 分割:将X分割为长度为K,步长为H的重叠块,并将所有重叠块拼接为三维ensor D ∈ R N × K × P D\in\mathbb{R}^{N×K×P} DRN×K×P

    • 双路径transformer:使用了transformer的编码器部分,且由于位置编码并不适用于双路径网络,在训练过程中往往会导致模型发散。为了学习顺序信息,作者将前馈网络中的第一个全连通层替换为循环神经网络后得到改进的transformer。不懂transformer的可以点击这里有一个详细的解读。分割后的数据D传送到由B个DPT块组成的双路Transformer中,每个DPT由块内transformer块间transformer组成,分别对局部序列和全局序列建模。(感觉这里和DPRNN基本是一致的

    • Overlap-Add:最后一个块间transformer的输出被用于通过二维卷积层学习每个源声音的掩蔽,之后用该掩蔽与混合语音经过element-wise乘法即可得到干净语音

    • 解码器:使用转置卷积模型来为第s个源重构分离的语音信号,然后采用叠加法(overlap-add)得到最终波形

  5. 数据集:WSJ0-2mix

  6. 实验结果:SI-SNR=20.2;SDRi=20.6

你可能感兴趣的:(【语音分离论文小记】,transformer,深度学习,语音识别,算法,信号处理)