因子分析、联合因子分析(JFA)、i-vector

GMM-UBM的缺点

关于GMM-UBM的具体过程可以参考GMM、GMM-UBM、GMM-SVM。
GMM-UBM方法可以得到一个超向量,将该超向量作为声纹嵌入码,然后使用分类器(如:SVM)进行分类,逐渐称为GMM时代的经典说话人识别方法。
但超向量存在下列缺点:

  • 超向量的维度过高:假设采用MFCC特征,通常为39维,并假设GMM具有512个高斯分量,得到的超向量维度为 39 × 512 = 19968 39 \times 512 =19968 39×512=19968
  • 超向量包含大量除说话人之外的其他信息,如:采集设备的特征、采集时声学环境的特征,包括噪声和混响

因子分析(Factor Analysis)

针对超向量的上述缺点,研究人员引入了联合因子分析法,先来了解因子分析法的原理

  • 因子分析法的动机:从可以被观察、高相关性的变量中,提取出数量更少的、不可被观察、低相关性的变量,这些被提取出的变量被称为“因子”
  • 举例说明:GMM-UBM就好比直接根据一个学生的10门考试成绩,计算出这个学生的考试能力,这10门考试成绩是可以观察得到的,并且相互之间可能有关联;但因子分析法是先从这10门考试成绩中,提取出如智力、勤奋程度等因子,这些因子不可被观察,因子之间的关联性也较低,再使用这些因子,计算学生的考试能力
  • 数学形式:假设有 p 个随机变量 x i x_i xi,每个随机变量的均值为 μ i \mu_i μi,则每个随机变量与其均值的偏差为:
    x i − μ i = l i 1 f 1 + l i 2 f 2 + . . . + l i k f k + ϵ i x_i - \mu_i = l_{i1}f_1+l_{i2}f_2+...+l_{ik}f_k + \epsilon_i xiμi=li1f1+li2f2+...+likfk+ϵi
    其中,
    • f 1 , f 2 , . . . , f k f_1,f_2,...,f_k f1,f2,...,fk 是 k 个公共因子,根据因子分析法的动机,可知: k < p k < p k<p,这 k 个公共因子是需要从 p 个随机变量中提取出来的,并且这 p 个随机变量共享这些公共因子
    • ϵ i \epsilon_i ϵi 是无法被提取出的随机误差,是每个随机变量所独有的,假定 ϵ i \epsilon_i ϵi 的均值为0,方差有限
    • l i 1 , l i 2 , . . . , l i k l_{i1},l_{i2},...,l_{ik} li1,li2,...,lik 是公共因子的线性组合系数,每个随机变量被表示为公共因子的线性组合,再加上一个随机误差
  • 将 p 个随机变量堆叠起来, x x x 变为 x ⃗ \vec{x} x ,假设进行了 N 次观察,现在下标范围变成 i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N,数学形式变为:
    x i ⃗ − μ ⃗ = L f i ⃗ + ϵ i ⃗ \vec{x_i} - \vec{\mu} =L\vec{f_i} + \vec{\epsilon_i} xi μ =Lfi +ϵi
    其中,
    • L 被称为载荷矩阵(Loading Matrix),维度 p × k p \times k p×k μ ⃗ \vec{\mu} μ 是根据 N 个观察值得到的均值向量,L 和 μ ⃗ \vec{\mu} μ 都是和 i 无关的
    • f i ⃗ \vec{f_i} fi ϵ i ⃗ \vec{\epsilon_i} ϵi 是对每个观察值提取出的公共因子和随机误差
  • 对上述式子,因子分析做出如下假设:
    • f i ⃗ \vec{f_i} fi ϵ i ⃗ \vec{\epsilon_i} ϵi 是相互独立的
    • f i ⃗ \vec{f_i} fi 的数学期望为0向量
    • f i ⃗ \vec{f_i} fi 的协方差矩阵为单位矩阵
    • ϵ i ⃗ \vec{\epsilon_i} ϵi 的均值为0向量,方差有限

联合因子分析(Joint Factor Analysis,JFA)

联合因子分析(简称JFA)是因子分析方法在说话人识别中的应用,具体而言,是对GMM-UBM进行因子分析

  • 假设GMM有M个高斯分量,每个高斯分量为K原高斯分布,即声学特征为K维,此时超向量s的维度为 M K × 1 MK \times 1 MK×1
  • 将超向量分解成
    s = m + V y + U x + D z s = m+Vy+Ux+Dz s=m+Vy+Ux+Dz
    其中,
    • m是说话人无关的,维度与超向量相同的向量,可以直接使用UBM的超向量作为m
    • y是说话人因子,服从标准多元高斯分布 y ∼ N ( 0 , I ) y \sim N(0,I) yN(0,I),V是y的载荷矩阵,V的每一列被称为一个本征音(eigenvoice)
    • x是信道因子,服从标准多元高斯分布,U是x的载荷矩阵,U的每一列被称为一个本征信道(eigenchannel)
    • z是说话人相关的,维度与超向量相同的公共因子,被称为残差项,服从标准多元高斯分布,D是z的载荷矩阵,维度为 M K × M K MK \times MK MK×MK,D是一个对角方阵
  • JFA起到了降低GMM-UBM参数维度,以及对超向量提取出说话人相关和说话人无关信息的作用,举例说明:
    • 假设MFCC特征维度为39,GMM有512个高斯分量,超向量维度为 39 × 512 = 19968 39 \times 512 =19968 39×512=19968
    • JFA得到的说话人因子y维度为300,信道因子x维度为100
    • JFA参数估计得到的载荷矩阵V维度为 19968 × 300 19968 \times 300 19968×300,U维度为 19968 × 100 19968 \times 100 19968×100,D维度为 19968 × 19968 19968 \times 19968 19968×19968(由于是对角方阵,实际上只有19968个参数)
    • 说话人识别系统只使用说话人因子y作为声纹嵌入码,定义核函数,训练非线性SVM进行分类,从而特征维度从19968降维到300,这样的方法被称为JFA-SVM

JFA的缺点

JFA分解出了说话人因子y和信道因子x,在理想情况下,y只具有说话人相关的信息,x只具有说话人无关的信息,若用x作为声纹嵌入码,进行说话人识别,那么EER应该为50%(等价于随机猜测),但实验表明EER达到了20%,由此说明:

  • 信道因子也包含了说话人相关的信息
  • 只使用说话人因子进行说话人识别会丢失这些信息

i-vector

针对JFA的上述缺点,研究人员提出了i-vector,i-vector也是一种因子分析方法,是对JFA的简化

  • i-vector的动机:
    • 不再区分说话人因子和信道因子
    • 将说话人空间和信道空间合并为同一个空间,称为总体变化空间,载荷矩阵记为T
    • 对应T的因子,称为总体因子,记为w
  • 数学形式
    s = m + T w s=m+Tw s=m+Tw
    其中,
    • m是说话人无关且信道无关的超向量,可以直接使用UBM的超向量作为m
    • w是总体因子,服从标准多元高斯分布,也被称为“身份向量(Identity Vector)”,简称i-vector,w的维度通常为400~600
    • 可以将s视为一个多元高斯分布,其均值为m,协方差矩阵为 T T T TT^T TTT,T的参数估计与JFA中V的参数估计类似
  • 由于总体因子w包含了说话人信息和信道信息,所以不能直接作为声纹嵌入码
  • 需要对w中信道信息进行补偿,也就是寻找一个映射矩阵A,信道补偿后的i-vector表示为 w ′ = A w w' = Aw w=Aw w ′ w' w可作为声纹嵌入码,用于说话人识别
  • 信道补偿的方法:
    • Within-Class Covariance Normalization(WCCN)
    • Linear Discriminant Analysis(LDA)
    • Nuisance Attribute Projection(NAP)
    • Probabilistic Linear Discriminant Analysis(PLDA)
  • i-vector与JFA在去除信道信息上的区别
    • JFA在高维的超向量空间直接提取出信道信息
    • i-vector在低维的总体变化空间尝试消除信道信息
    • i-vector效率更高,且性能更好
  • i-vector的后端
    • 可以直接计算不同的i-vector的余弦相似度,用于说话人识别
    • 也可以用i-vector定义核函数 K ( w 1 ′ , w 2 ′ ) = c o s ( w 1 ′ , w 2 ′ ) K(w'_1,w'_2)=cos(w'_1,w'_2) K(w1,w2)=cos(w1,w2),训练非线性SVM进行分类

总结

方法 GMM GMM-UBM GMM-SVM JFA i-vector
动机 将每个说话人用一个GMM来表征 对所有说话人样本训练一个UBM,利用UBM自适应每个GMM的参数 将每个话语样本都用一个GMM来表征,说话人成为SVM的一个类 将超向量分解成说话人因子和信道因子 将超向量分解成整体因子,再进行信道补偿
优点 根据中心极限定理,GMM拟合潜力强 每个GMM都同源,具有可比性,对于样本较少的说话人,也能自适应出一个GMM 利用了SVM这一强大的分类器 对超向量进行了降维,去除了部分信道信息 相对于JFA,效率更高,且性能更好
缺点 参数较多,需要每个说话人的样本也较多 超向量的维度过高,而且包含了说话人信息和信道信息,不利于说话人识别 需要针对超向量设计核函数,其余与GMM-UBM一样 信道信息去除得不够好 有待发现

你可能感兴趣的:(说话人识别,人工智能,语音识别,音频)