Permutation Invariant Training of Deep Models for Speaker-Independent Multi-Talker Speech Separation
3 Jan 2017
论文链接:Permutation Invariant Training of Deep Models for Speaker-Independent Multi-Talker Speech Separation
目录
Permutation Invariant Training
Introduction
要点:
- 直接最小化分离误差;
- 解决了长期标签排列问题;
- 易与其他技术结合,易于实现
场景(语音重叠场景):
- 自动会议转录
- 音频/视频记录的自动字幕(如YouTube)
- 多方人机交互(如互联网世界)
深度学习之前工作
- Factorial GMM-HMM:对目标和竞争语音信号之间的交互作用及其时间动态进行建模。(不足)这个模型假设并且只在扬声器关闭的情况下工作。
- 非负矩阵分解(NMF):学习一组非负基,可用于评估混合因子。
- 计算听觉场景分析(CASA):某些基于感知分组线索的分割规则(通常是半手动)被设计用于操作低级特征,以估计一个时频掩码,该掩码将属于不同说话人的信号成分隔离开来。然后用这个掩模来重建信号。
困难:独立说话人的多说话人语音分离的困难来自于标签歧义或排列问题。
基于深度学习的方法解决上述困难的文章:
-
Monaural speech separation and recognition challenge
- 利用瞬时能量解决了标签歧义问题,并利用具有说话人切换惩罚的双说话人联合解码器分离和跟踪说话人;
-
不足:由于标签的确定方式,很难扩大到两个以上的扬声器。
-
DPCL
-
每个tf bin训练了一个嵌入,以优化分割(聚类)标准。在评估过程中,首先将每个tf bin映射到嵌入空间,在嵌入空间上使用聚类算法生成tf bin的分区;
-
接受两个人混合言语训练的模型,在三个人混合言语训练时表现良好;
-
由于聚类步骤,假定每个时频bin只属于一个speaker(即一个分区)。虽然这通常是一个很好的近似,但是不准确的
-
难与其他技术相结合,如复域分离。
-
本文提出了用于独立说话人多说话人语音分离的训练准则——排列不变训练(PIT)。
大多数现有技术将语音分离视为一个多类回归问题或分割(或聚类)问题。然而,PIT认为这是一个分离问题。
Monaural Speech Separation
单声道语音分离的目标是估计线性混合单麦克风信号中的单个源信号,其中源信号在时频域中重叠。典型的设置中,假设只有STFT谱可用,相位信息在分离过程中(训练)被忽略,仅在恢复源的时域波形时(预测)使用。
将时域中的源信号S表示为,混合信号表示为.它们对应的STFT分别是和,对于每个t和f,给定,恢复其信号
然而只给定混合谱的幅度是不能恢复源的,因为有无限个可能的源组合可能导致相同的幅度。
如果首先使用DL模型来估计一组掩码而不是直接估计源信号,则可以获得更好的结果。约束条件是所有(t,f)bins的掩码,并且
首先估计掩码,模型参数优化可以最小化估计掩码和理想比率掩码之间的均方误差(mean square error)。
但是这个方法又两个问题
- 静默段mask的分子分母都为0,不好计算;
- 我们关心的是估计的振幅和真实振幅的误差,而掩码上较小的误差可能不会导致振幅上较小的误差。
于是提出了下面公式,在静默段,因此掩码估计的准确性不会影响这些段的训练标准。本文研究最小化
Permutation Invariant Training
最近的语音分离工作把混合信号|Y|的N帧特征向量用作深度学习模型的输入,如DNNs、CNNs、LSTM、RNNs。此类模型有多个输出层,每个混合源有一个输出层,依赖于相同的mixture,排列分配有问题。成为标签歧义(或排列)问题。
本文提出新模型关键点:
- 排列不变训练
- 基于片段的决策
新模型中,参考源作为一个集合给出,而不是一个有序列表。无论源以何种顺序列出,都会获得相同的训练结果。这部分是虚线矩形内PIT来实现的。
- 首先确定引用和估计的源之间可能的赋值(S!)
- 计算每次分配的总MSE,即参考源与估计源之间的成对均方误差
- 选择总均方误差最小的任务,并优化模型以降低该特定均方误差。(即同时进行标签分配的错误评估)
Fig.2 The two-speaker separation model with permutation invariant training
与先前的技术类似,PIT使用N个连续的特性帧(即输入元帧)来利用上下文信息。与现有技术不同的是,PIT的输出也是帧窗口。使用PIT,我们可以直接在元帧级别最小化分离错误。
(这里不是穷举所有排列 N! 所对应的损失函数,而是先计算出个估计语音和纯净语音的MSE,然后再对N!中排列求和,这样可以减少计算量)
在测试的时候,混合的语音是唯一可用的信息,直接对每个输入的meta-frame进行语音分离,由于PIT的训练方式,输出到说话人的分配可能在帧间变化。在最简单的配置中,可以假设meta-frame在重建源的时候帧间排列方式不变。为了获得更好的性能,可以引入说话人跟踪算法来解决这一问题。
Experimental Resuts
数据集:
WSJ0-2mix和Danish-2mix
模型:
- 前馈DNN(表示为DNN)有三个隐藏层,每个层有1024个ReLU单元。
- 在(inChannel,Outchannel)-(StrideW,strideH)格式中,CNN模型有一个(1,64)(2,2)、四个(64,64)(1,1)、一个(64,128)(2,2)、两个(128,128)(1,1)、一个(128,256)(2,2)、两个(256,256)(1,1)卷积层,具有3 × 3个核
- 一个池化层和一个具有1024个单元的ReLU层。
- 输入是语音混合的257-dim STFT频谱幅度的堆栈(在多个帧上),使用帧大小为32毫秒和16毫秒偏移的STFT计算。
- S-说话者混合语音有S个输出流。
- 每个输出流的维数为257 × M,其中M是输出元帧中的帧数。
- 验证集仅用于控制学习速率。
训练过程:
由图可得,传统方法的验证均方误差几乎没有降低。相比之下,使用PIT时,对于两个和三个说话者的混合语音,训练很快收敛到更好的均方误差。
信号失真比改进
- 在没有说话人跟踪的情况下,PIT可以实现与最初的DPCL、DNN、CNN相似且更好的性能。
- 但性能低于DPCL+[Single-channel multi-speaker separation using deep clustering]
- PIT比最原始的DPCL简单得多,没有[Single-channel multi-speaker separation using deep clustering]的微调架构和学习过程
- 减小输出窗口大小时,可以提高每个窗口内的分离性能,并且如果扬声器被正确跟踪,可以获得更好的SDR改善。
- PIT在扬声器打开和关闭条件下性能非常接近。
- 是用与不同说话者和不同语言。
Discussion
可以从以下方面改进:
- 由于跨帧输出-说话者的分配,最优输出-说话人分配与默认分配之间存在很大的性能差异,特别是同性别和当前输出窗口较小时(利用meta-frame中的重叠帧和说话者特征的单说话者跟踪可以减小这一差距;也可以训练一个端到端的系统,将说话人跟踪直接构建在模型中)
- 可以尝试更强大的模型,如bi-directional LSTMs,带反卷积的CNNs
- 本文工作仅从光谱幅度重建源。PIT可以很容易地与复制频谱的重建技术结合,以进一步提高性能。
- 该模型的学习线索很大程度上以说话者和语言无关,因此可以使用不同说话者、语言和噪声条件下的语音来训练通用语音分离模型
- 本工作关注单声道语音分离,但由于其灵活性,相同的技术可以部署在多通道设置中,并于波束形成等技术相结合。事实上由于波束形成和PIT使用不同的信息来分离语音,它们相互补充。例如,当波束形成可用时,扬声器跟踪可能容易得多。
参考
https://zhuanlan.zhihu.com/p/138441932
https://zhuanlan.zhihu.com/p/101232793