声纹识别的技术演变(三)

JFA方法的思想是使用GMM超矢量空间的子空间对说话人差异和信道差异分别建模,从而可以方便的分类出信道干扰。然而,Dehak注意到,在JFA模型中,信道因子中也会携带部分说话人的信息,在进行补偿时,会损失一部分说话人信息。

所以Dehak提出了全局差异空间模型,将说话人差异和信道差异作为一个整体进行建模。这种方法相比JFA具有以下优点:

  1. 改善了JFA对训练语料的要求
  2. 计算复杂度相比JFA更低,可以应对更大规模的数据
  3. 性能与JFA相当,结合PLDA的信道补偿,其信道鲁棒性更强。

1 I-vector算法原理

对于给定的utterance,其GMM supervector可分解为:

其中:

  • \(M\): GMM Supervector
  • \(m\):说话人无关超矢量(UBM超矢量)
  • \(T\): 全局差异空间矩阵,低秩
  • \(w\): 全局差异因子,它的后验均值即为i-vector矢量,服从\(N(0,1)\)先验分布 本征信道矩阵,低秩

1.1 Training

对于全局差异空间矩阵的训练,与JFA中本征音矩阵的训练一致。

1.2 Evalution

对于i-vector,可以采用余弦距离(cosine distance)对目标speaker和测试speaker的判决打分:

其识别框架如下:

2 PLDA

PLDA是一个概率生成模型,为了解决人脸识别的问题而提出。后被广泛应用的声纹领域,并产生了多重变种。主要有以下三种:

  • Standard

  • Simplified

  • Two Covariance

Reference [6]中将上述三种PLDA统一到了同一框架中,并实验验证Two-Covariance对声纹具有最好的性能

本文的讨论的主要是Reference [6]中提出的PLDA(Two Covariance PLDA,kaldi中采用的版本). 在介绍PLDA前,先简单介绍下LDA.

2.1 LDA

LDA 假设数据服从高斯分布,并且各类的协方差相同。各类的先验概率为\(\pi_k\),且

各类的概率分布为

对于观测数据,其类别的后验概率为

为了对数据进行分类,计算各类后验的似然比

由于假设协方差相同,似然比是关于输入 \(x\) 的线性函数。LDA 用一系列超平面划分数据空间,进而完成分类。 如下图

LDA还可以对数据进行降维,但它无法出类训练数据中未出现的类别数据。

2.2 Two Covariance PLDA

如果把类别\(\boldsymbol{y}\)当作隐变量,对其进行建模,就可以处理未知类别的样本数据。

其中

  • \(\Phi_w\)为正定矩阵,反映了类内差异
  • \(\Phi_b\)为半正定矩阵,反映了类间差异

此时可以对\(\Phi_w\)和\(\Phi_b\)做合同对角化,即

其中 \(\Psi\)为对角阵,\(I\)为单位阵。

令\(A = V^{-1}\), PLDA可以等价为

其中,\(\Psi\)反映类间差异,\(I\)反映类内差异

2.2.1 Evaluation

对每个观测变量\(x\),可以先做变换得到

对给定的一组同类观测数据\(u_1, …, u_n\),类别\(v\)的后验概率为

其中\(\bar{u} = \frac{1}{n}\sum_{i=1}^{n} u_i\)。

因此,对于未知的数据点\(u^p\)和已知某类的若干数据点\(u_1^g, …, u_n^g\), \(u^p\)的属于该类的概率为

\(u^p\)不属于任何类的概率为

其中\(C = - \frac{1}{2} d\ln 2 \pi\)为常量,与数据无关,\(d\)为数据的维度。

因此,利用PLDA做说话人识别时,

  • 对于说话人识别,计算最大似然度

  • 对于说话人验证,计算似然比

更多关于PLDA打分的内容可参考Reference [8]

2.2.2 Training

PLDA中,需要估计的参数有\(A\), \(\Psi\), \(m\)。

  • 对于每类样本数相同(若样本数不一致,可做上采样)的场景,可以直接求解。可参考【Reference 6】
  • EM算法,参考【Reference 7】

之后有时间再补上

2.3 Length Normalization

经过PLDA变换之后,我们一般还有在做Length Normalization,可以进一步提升性能,为何要做Length Normalization?主要基于以下两点考虑:

  • PLDA基于高斯假设
  • 样本较少时数据服从学生$t$分布,通过whithen和 Length Norm进行补偿。

那么Length Normalization 是如何做的呢?主要分为两步:

  1. Centering and whitening(PLDA变换中已完成)
  1. Scaling

or (Kaldi中采用的方式)

更多可参考【Reference 5,9】

Reference

[1] Front-End Factor Analysis for Speaker Verification
[2] A Straightforward and Efficient Implementation of the Factor Analysis Model for Speaker Verification
[3] A Small Footprint i-Vector Extractor
[4] Probabilistic Linear Discriminant Analysis for Inferences About Identity
[5] Analysis of I-vector Length Normalization in Speaker Recognition Systems
[6] Probabilistic Linear Discriminant Analysis
[7] Unifying Probabilistic Linear Discriminant Analysis Variants in Biometric Authentication
[8] From single to multiple enrollment i-vectors: Practical PLDA scoring variants for speaker verification
[9] ROBUST SPEAKER RECOGNITION BASED ON LATENT VARIABLE MODELS