摘要:
简介:该论文提出了Deep Speaker,这是一种采用神经网络对说话人进行向量嵌入的系统(a neural speaker embedding system),该系统将说话方式(utterances)整理到一个超球面上,在该超球面上,通过余弦相似度计算说话人的相似度。
应用场景:说话人身份辨别、确认、聚类。
方法:用ResCNN和GRU结构提取声学特征,用均值池化产生声学级别的speaker embeddings,采用基于余弦相似度的triplet loss进行训练。
结果:在三个不同数据集上的实验结果表明,Deep Speaker 表现优于DNN-based i-vector baseline。例如,在一个文本无关的数据集上,相对减少了50%的身份验证错误率,提高了60%身份辨别准确率。此外,实验也表明采用普通话训练出来的模型,可以提高英语说话人的识别准确率。
1、引言
基础知识点1:Speaker recognition
algorithms用于从音频数据识别说话人。主要分为两种,其一:speaker verification,说话人身份验证(二分类任务,是否为某说话人);其二,speaker identification,说话人身份鉴别(多分类任务,谁在说话)。
基础知识点2: Speaker
recognition按输入的数据分为两类:其一,text-dependent recognition,要求说话人发出特定句子的声音;其二,text-independent recognition,随便说话,不要求特定的说话内容。
业界行情1:Speaker recognition到目前为止还是一项挑战性任务。
基础知识点3:传统Speaker
recognition基于i-vectors 和 probabilistic liner discriminant analysis(PLDA,概率线性判别分析),该框架主要分为三步:1、收集足够的统计数据(sufficient statistics);2、提取说话人特征向量(speaker embeddings, i-vector);3、分类(PLDA)。
基础知识点4:sufficient statistics (也称为Baum-Welch statistics),可以通过高斯混合模型-通用背景模型(Gaussian Mixture Model-Universal Background Model,GMM-UBM)来计算,该模型采用序列类型的特征向量(如梅尔倒谱系数,mel-frequency cepstral coefficients ,MFCC)进行优化。最近,深度神经网络(DNN)也被用来提取sufficient statistics。
基础知识点5:传统方法上述三步操作相互独立。而基于DNN的方法则可以结合第一步和第二步进行训练,其中间瓶颈层(intermediate bottleneck layer)提供的帧级向量,可以用于不包含在训练集中的说话人。然而,该方法至少有两个主要问题,(1)步骤一和步骤二不是直接针对speaker recognition进行优化;(2)训练与测试不协调(mismatch),训练用的是帧级别(frame-level)的标签,测试用的是表达级别(utterance-level)的标签。
本文算法结构概览1:(1)用DNN(ResCNN和GRU)从说话方式提取帧级别特征。(2)池化和长度归一化层产生表达级别(utterance-level)的speaker embeddings。(3)模型采用triplet loss训练,即最小化同一说话人的向量对之间的距离,并最大化不同说话人的向量对之间的距离。(4)预训练采用softmax层和交叉熵提高模型表现。
基础知识点6:CNN可以有效减少声音特征的光谱变更(spectral variations),并对声音特征的声谱模型相关性(spectral correlations)进行建模。
本文算法结构细节1:不同于类似PLDA的损失函数,本文的损失函数是本文DNN训练出来的 能直接反应表达相似度 的嵌入向量的相似度。
本文算法结构细节2:不是在同一小批次训练数据负采样,而是采用全局负采样,从而提高训练速度。
本文结论1:Deep Speaker显著优于DNN-based i-vector
text-independent speaker recognition systems,在text-dependent recognition,Deep Speaker 可以达到基准线,若经过text-independent调试模型后,可以提高text-dependent recognition。
本文结论2:(1)Deep Speaker在大规模数据表现良好;(2)不同语种之间迁移表现良好。
2、相关工作
基础知识点7:PLDA可用于计算向量相似度,其变种方法有heavy-tailed PLDA、Gauss-PLDA。
3、Deep Speaker
总体结构:
3.1 DNN结构
3.1.1 Residual CNN
批量归一化:We adopt sequence-wise batch normalization (BN) between the convolution and the nonlinearity, following [18]。
激活函数clipped rectified linear (ReLU) function:
3.1.2 GRU
GRU采用的是forward-only GRU;
层之间同样使用了BN和clipped ReLu。
3.2 Speaker Embedding
3.3 Triplet Loss and Selection
相似度计算公式:
损失函数公式:
其中,
要点:全局寻找负样本,而不是仅在本批次寻找负样本。
Triplet loss 可参考https://blog.csdn.net/jcjx0315/article/details/77160273。
3.4 Softmax Pre-training
预训练(用预训练得到的权重去初始化正式训练的权重):用分类层(softmax + cross entropy)替换length normalization 和triplet loss层。
预训练的好处:
注:有预训练的那条线,前10次采用了softmax预训练,后15次采用triple正式训练,所以导致ACC和EER的突变。