基于PIT的单通道多说话人分离与识别
原文链接 https://hlthu.github.io/2018/05/14/PIT-multi-talker-ASR.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
最近两天再看文章,主要是看了好几篇有关单通道多说话人分离和识别 (Single-Channel Multi-Talker Speech Separation and Recognition) 的文章,而其中主要看的是大佬 Dong Yu 的 Permutation Invariant Training (PIT)。现在简单总结一下。
0. 背景
首先多说话人是指录音中含有多个说话人的语音,时域表达是 $$y_t=\sum_{s=1}^{S}x_t^s$$,其中 $$x_t^s$$ 是第 $$s$$ 个说话人的语音,$$S$$ 是总共说话人数。之前的工作多事是基于时频特征去做,也就是时域信号做短时傅里叶变换 (STFT) ,然后从混合信号的 STFT $$Y_t(f)$$ 中分理出需要估计各个说话人的 STFT $$X_t^s(f)$$。
PS:目前有 Columbia University 的研究者 Yi Luo等实现了基于时域的分离方法,而且目前的效果要好于基于频域的方法,请搜索 TasNet (Time-domain Audio Separation Network),之后有时间再介绍一下这几篇文章。
1. 2017 年 ICASSP,首先提出 PIT。
2018年ICASSP上,Dong Yu发表了一篇文章,讲的是将 PIT 用于语音分离。该文提出了一种结构用于估计各个说话人的 STFT,如下图为两个说话人的情况
损失函数为
从损失函数来看,似乎和普通的分离网络没什么区别,但是请注意,在图中有一个“Pairwise Scores”。这是什么意思呢,就是不考虑输出的两个端口的顺序,分别考虑第一个输出端口为第一个说话人和第二个说话人的情况,然后取使得 loss 最小的那个 assignment。这样的话,这种模式是不要对输出做任何假设,自然也是一种说话人无关的分离技术。
2. 2017 年 Trans 上进一步改进,提出 uPIT。
主要是将损失函数变到句子级别 (而不是以前的帧级别,以前在每一帧都考虑这种 assignment 的交叉与否,现在放在整句级别,也就是全局要不都是第一个输出端口全是第一个人的,要么全是第二个人的),这样还可以解决 speaker tracing 的问题。另外为了解决这种时序上的连续性,作者提出了将 LSTM 和 BLSTM 用于分离,取得了十分不错的效果。Loss 见下:
其中 $$B=T\times F \times S$$ 是对所有帧、频点和说话人的归一化系数,而 $$\hat{\mathbf{M}_s}$$ 则是估计到的第 $$s$$ 个人的 Mask,注意这个 Mask 是个 $$T\times F$$ 的矩阵,覆盖了所有帧和频点;而 $$\phi^*$$ 则是使得匹配的 loss 最小的那个 assignment:
3. 2017 年 Interspeech 上直接应用到识别上。
之前的工作都是在分离上进行的,一个直观的想法就是将两个输出换成识别系统中声学模型的输出,然后用交叉熵 (Cross Entropy, CE) 取代上面的最小均方误差 (Mean Square Error, MSE)。没错,Yu 老师就是这么想的,这篇论文是:
这时候把结构图换了一下:
Loss 函数也换成了基于 CE 的:
其中 $$\textbf{O}_t^s$$ 是第 $$s$$ 个人 $$t$$ 时刻的神经网络输出,而 $$l_t^{s^,}$$ 则是使得误差最小的 permutation 对应的标注。同样这个 loss 是整句算一个 loss,然后回传,因此对于一句话,每个时刻的 permutation 被强制约束为一致的。
4. 2018 年以来的一系列改进
至此,单通道多说话人识别的基础结构已经很清晰了,之后的工作都是在上面基础上做的小修小改,主要是提升性能。
4.1 Zhehuai Chen 的 Progressive Joint Modeling
这篇 Trans 文章的信息在于提出 Progressive 的训练方式,即先别训练帧级别的 PIT MSE,再训练句子级别的 PIT MSE;与此同时训练单通道单说话人的识别系统;最后再把两部分结合起来联合训练。并且,这篇文章也提出了利用干净语音进行 Transform Learning,此外还提出了一些序列化的方法。看这张图就好了。
4.2 Tian Tan 的 Transform Learning
其实 Yu 老师也想到了 Transform Learning,并发表在 ICASSP 2018 上。结构如下,很清晰易懂。
4.3 Xuankai Chang 的 Adaptation with Auxiliary Information
这也是 Yu 老师的作品,主要是在 PIT CE 系统中加入了说话人的特征 (pitch, i-vector),还实现自适应和性能的提升,同时增加了一个 Task 用于预测当前混合的说话人的性别对信息 (男男,女女,男女),结构如下。
4.4 Zhehuai Chen 的 SEQUENCE MODELING
这是 Zhehuai Chen 做的序列化工作,也是在 ICASSP 2018 上,笔者表示看不懂。
4.5 Yanmin Qian 的 Speech Com. 长文
这篇是个了解 PIT ASR 的期刊,但是文章新意已经不多,比较了四种结构。
4.6 Lianwu Chen 的 PIT-ASR + GAN
这篇文章将 GAN 和 PIT MSE 结合,Idea 很好,但是性能一般般。
4.7 Xuankai Chang 的 PIT-ASR + Attention
在 PIT CE ASR 基础上引入了 Attention 机制,取得了一定的效果。
5. PIT + End-to-End for ASR
最后还有一个很容易想到的点,将基于 CE 的识别换成基于 End-to-End 的识别。没错,笔者也想到了,但是没有来得及做出来,手还是慢了,这里也有几篇文章,主要是上交大的 Qian 和 JHU 的 Shinji 等的工作。不打算仔细介绍了,小伙伴们看论文吧,其中第一篇是 ACL 长文。