声纹识别-3.i-vector/PLDA(上篇)

声纹识别-3.i-vector/PLDA(上篇)

前言

前面两篇博文分别介绍了声纹识别的绪论和传统的GMM-UBM声纹识别算法。本文介绍,到目前为止,声纹识别领域仍具很大影响力的i-vector1/PLDA2(identification vector, Probabilistic Linear Discriminant Analysis,辨识向量,概率线性判别分析)。i-vector是代表说话人的向量,PLDA是一种信道补偿算法。由于整个i-vector识别框架涉及的知识点较多,为了尽可能详细阐述各个知识点的数学逻辑,博文分为上下篇。

i-vector是从GMM均值超向量(GMM mean supervectors3该超向量代表说话人)中提取一个更紧凑向量,也叫全因子(total factors),是在联合因子分析(Joint Factor Analysis,JFA)的理念上发展来的。Patrick Kenny(JFA作者,加拿大蒙特利尔研究所)认为声纹信息可以用一个低秩的超向量子空间来表示,噪声和其他信道效应也用一个不相关的超向量子空间进行表达,如下图4所示。
在这里插入图片描述
上图中所示的超向量 M M 来表示某个说话人,它是自多个高斯模型的均值(从UBM自适应到GMM后的均值)堆积,如下图3所示。可以看出, M M 是经过UBM自适应之后得到的超向量,这个超矢量同时包含说话人影响和信道影响,也就是说,前篇博文提及的GMM-UBM算法,实际上并没有细致到把信道对说话人的影响考虑进来,所以其跨信道性能差。
在这里插入图片描述

研究显示,一段语音中包含的说话人因子和会话因子(信道及背景信息)很难通过JFA的方法完全分离,因为JFA方法得到会话因子仍包含有一定说话人的信息——所以,Patrick Kenny的学生Dehak提出了i-vector, M = m + T × w M = m + T\times w ,式中 M M 为上文提及的说话人、信道依赖的超向量, m m 为说话人、信道独立的超向量,一般用UBM的均值向量代替 w w 即identity vector,total factor,而 T T 叫做total variability matrix

PLDA是一种信道补偿(channel compensation)算法,所谓信道补偿——由于信道信息的存在,对我们做说话人识别产生了干扰,甚至严重影响系统的识别准确率。于是,我们就要想办法尽量减小该影响。信道补偿可以从说话人识别的三个维度来做,特征维度,模型维度和打分维度,而PLDA在特征维度给i-vector做了很好的信道补偿,因为i-vector同时含有说话人和信道的信息,我们只关心说话人信息。

整个i-vector/PLDA系统如下图5所示。
在这里插入图片描述

Step1. 训练UBM

UBM的训练与上一篇博文的训练方法相同,即使用EM算法基于一批说话人数据(提取成MFCC特征)训练得到通用背景模型,此处不再赘述。

Step2. 计算统计量和 T T 矩阵

1. i-vector框架

i-vector定义了一个低维度向量 R × 1 R\times1 w N ( 0 , I ) w \sim N(0,I) 先验假设,根据数据继续迭代计算调整——贝叶斯理派)来表示某语音段(utterance)。 M = m + T × w M = m + T\times w 这个公式用来模拟GMM supervector的产生,i-vector架构下并没有真正训练某个人的GMM,自然就没有GMM supervector; M M 是被建模的某个说话人对应的ideal特征超向量——经过T矩阵乘i-vector,加上UBM均值超向量;

m m 作为UBM均值超向量,假设UBM包含 C C 个高斯混合分量 g g ,那么 m m 就是所有混合分量均值向量 m c , c = 1 , . . . , C m_c, c=1,...,C 的组合, m m 的维度为 C F C*F T T 的维度为 C F × R C*F\times R F F 表示MFCC特征的维度,比如39维。

m vector
m1
m2
...
mC

对于每一个混合分量 c c ,我们还有参数混合权重 w c w_c , 和协方差矩阵 Σ c \Sigma_c 。我们可以进一步拆分 T T 矩阵为 C C V c V_c 的组合, V c V_c 的维度为 F × R F \times R μ c = m c + V c w \mu_c = m_c + V_c w 假如i-vector的维度为 400 × 1 400 \times 1 ,MFCC向量的维度为 13 13 ,那么 V c V_c 的维度为 13 × 400 13 \times 400 T T 矩阵和 V c V_c 的关系如下所示。

T matrix
V1
V2
...
VC

定义一段语音特征数据 X X ,其特征维度为 F F ,时序为 T T ,即 X = X 1 , . . . , X T X=X_1, ..., X_T X X 中属于第 c c 个高斯分量的子集为 X c X^c ,子集中某Frame(帧) X t c X_t^c ,则 X t c N ( μ c , Σ c ) X_t^c \sim N(\mu_c, \Sigma_c) X t c = μ c + v , v N ( 0 , Σ c ) X_t^c = \mu_c + v, v \sim N(0, \Sigma_c) 由此可得如下公式,这个形式叫做component-wise form6 X t c = m c + V c w + v X_t^c = m_c + V_c w + v

2. 为什么要计算统计量?

求解i-vector的过程实际上是MAP(最大后验概率)估计过程,即给定说话人数据,估计i-vector的后验概率分布 P ( w X ) P(w|X) ,分布的均值就是该说话人的i-vector;该过程中,包含EM算法过程——用以求解模型参数T矩阵,而w实际上就是隐变量

可以联想GMM-UBM框架下,某个说话人的GMM的参数并不是直接由该说话人的大量语音数据使用EM算法求解MLE(最大似然估计),而是训练一个UBM,然后使用MAP估计得来的;同理,i-vector框架也是一样,它是GMM-UBM的升级版,而i-vector就是压缩版或者更加抽象的GMM supervector。

为了得到这个后验概率分布的均值,我们需要alignment statistics,align的意思表示某个说话人的语音数据中的某些帧,依附于,产生于,来自于UBM中某个分量高斯,我们可以得到一系列alignment statistics,包括零阶、一阶、二阶统计量。用soft counting(来自某个高斯分量的概率),得到的是Baum-Welch statistics ,基于hard counting(来自某个高斯分量的概率最大,即为1),得到Viterbi statistics,与上一篇GMM-UBM博文相同,我们使用Baum-Welch statistics。
N c = t = 1 T ρ t ( c ) F c = t = 1 T ρ t ( c ) X t S c = t T ρ t ( c ) X t X t \begin{aligned} N_c &= \sum\limits_{t=1}^T\rho_t(c)\\ F_c &= \sum\limits_{t=1}^T\rho_t(c) X_t\\ S_c &= \sum\limits_t^T\rho_t(c)X_t X_t^{*} \end{aligned} 其中, ρ t ( c ) = P r ( c X t , λ c ) = w c g ( X t m c , Σ c ) c C w c g ( X t m c , Σ c ) \rho_{t}(c) = Pr(c|\bm{X_t}, \lambda_c) = \frac{w_c*g(\bm{X_t}|\bm{m_c},\Sigma_c)}{\sum\limits_c^Cw_c*g(\bm{X_t}|\bm{m_c},\Sigma_c)} 需要对上述统计量进行中心化计算,即减去高斯分量的均值然后再进行乘法操作,如中心化一阶分量,
F c ~ = t = 1 T ρ t ( c ) ( X t m c ) \tilde{F_c } = \sum\limits_{t=1}^T\rho_t(c) (X_t-m_c) 基于上述统计量,可得 w w 后验概率分布的方差和均值,分别Cov( w , w w, w )和< w w >7(文章中用的是 y y )表示,证明过程为Kenny(公式推导狂魔)文章Eigenvoice Modeling With Spare Training Data P r o p o s i t i o n   1 Proposition \ 1 8
C o v ( w , w ) = ( I + c N c V c Σ c 1 V c ) 1 < w > = C o v ( w , w ) c V c Σ c 1 F c ~ \begin{aligned} Cov(w,w) &= \big( I + \sum\limits_{c} N_c V_c^*\Sigma_c^{-1}V_c\big)^{-1}\\ <w> &= Cov(w,w) \sum\limits_{c} V_c^* \Sigma_c^{-1} \tilde{F_c} \end{aligned} 至此,我们可以看出,alignment statistics的作用。接下来,我们需要计算的就是 V c V_c ,也就是 T T 矩阵( T T 矩阵拆分为多个 V c V_c )。

3. T T 矩阵计算

对于矩阵 T T 的求解,实际上就是因子分解中常见的EM算法,需要单独列个篇章讲讲(挖个坑),但在实际求解T矩阵的过程中,为了追求效率,我们用的是这篇paper9里面的逐行估计的方式来计算的。

D. Matrouf, N. Scheffer, B. Fauve, J.-F. Bonastre, “A straightforward and efficient implementation of the factor analysis model for speaker verification,” in Proc. INTERSPEECH, Antwerp, Belgium, Aug. 2007, pp. 1242-1245.

代码可以直接参照Reference 55.

Step3. 计算i-vector

实际上在Step2中,我们已经知道了,i-vector的计算公式,再写一遍。
C o v ( w , w ) = ( I + c N c V c Σ c 1 V c ) 1 < w > = C o v ( w , w ) c V c Σ c 1 F c ~ \begin{aligned} Cov(w,w) &= \big( I + \sum\limits_{c} N_c V_c^*\Sigma_c^{-1}V_c\big)^{-1}\\ <w> &= Cov(w,w) \sum\limits_{c} V_c^* \Sigma_c^{-1} \tilde{F_c} \end{aligned}
写成用 T T 矩阵表示的形式如下,
w = ( I + T t Σ 1 N ( u ) T ) 1 . T t Σ 1 F ( u ) ~ w = \big( I + T^t \Sigma^{-1}N(u) T\big)^{-1}.T^t \Sigma^{-1}\tilde{F(u)}
其中, N ( u ) N(u) 维度为 C F × C F CF\times CF 的对角矩阵,对角block为 N c I , ( c = 1 , . . . , C ) N_cI, (c=1,...,C) F ( u ) ~ \tilde{F(u)} C F × 1 CF\times1 的超向量,由所有的一阶BW统计量 F c ~ \tilde{F_c} 组成。

下篇正在撰写中

Reference


  1. N Dehak, PJ Kenny, R Dehak, P Dumouchel, P Ouellet, “Front-end factor analysis for speaker verification”, IEEE Transactions on Audio, Speech, and Language Processing 19 (4), 788-798 ↩︎

  2. S. J. D. Prince and J. H. Elder, “Probabilistic Linear Discriminant Analysis for Inferences About Identity,” 2007 IEEE 11th International Conference on Computer Vision, Rio de Janeiro, 2007, pp. 1-8. ↩︎

  3. W. M. Campbell, D. E. Sturim and D. A. Reynolds, “Support vector machines using GMM supervectors for speaker verification,” in IEEE Signal Processing Letters, vol. 13, no. 5, pp. 308-311, May 2006. ↩︎ ↩︎

  4. Deledalle, C.A., 2007. Factor analysis based channel compensation in speaker verification. ↩︎

  5. MSR Identity Toolbox ↩︎ ↩︎

  6. M.W. Mak, “Lecture Notes on Factor Analysis and I-Vectors”, Technical Report and Lecture Note Series, Department of Electronic and Information Engineering, The Hong Kong Polytechnic University, Feb 2016. ↩︎

  7. Kenny, Patrick. "A Small Footprint i-Vector Extractor."Odyssey 2012-The Speaker and Language Recognition Workshop. 2012. ↩︎

  8. P. Kenny, G. Boulianne, and P. Dumouchel, “Eigenvoice modeling with sparse training data,” IEEE Trans. Speech Audio Processing, vol. 13, no. 3, pp. 345–359, May 2005. ↩︎

  9. D. Matrouf, N. Scheffer, B. Fauve, J.-F. Bonastre, “A straightforward and efficient implementation of the factor analysis model for speaker verification,” in Proc. INTERSPEECH, Antwerp, Belgium, Aug. 2007, pp. 1242-1245. ↩︎

原创文章 11 获赞 49 访问量 5343

猜你喜欢

转载自blog.csdn.net/weixin_44278406/article/details/103999436