- 由于每个人的声道、口腔和鼻腔(发音要用到的器官)也具有个体差异性。因为反映到声音上,也是具有差异性的。就比如说,当在接电话的时候,通过一声"喂",就能准确的分辨出接电话的是谁,人耳作为身体的接收器生来就具有分辨声音的能力,那么也可以通过技术的手段,使声纹也可以向人脸、指纹那样作为“个人身份认证”的重要信息。
- 识别性能好坏的关键在于对语音中身份信息的建模能力与区分能力,同时对于身份无关的其余信息具有充分的抗干扰能力和鲁棒性。
- 通用背景模型(UBM)
- 可以用UBM和少量的说话人数据,通过自适应算法(如最大后验概率MAP、最大似然线性回归MLLR等)来得到目标说话人模型。
- 思路:可以从其他地方收集到大量非目标用户的声音,将这些非目标用户数据(声纹识别领域称为背景数据)混合起来充分训练出一个GMM,这个GMM可以看作是对语音的表征,但是又由于它是从大量身份的混杂数据中训练而成,它又不具备表征具体身份的能力。可以把这种模型看作是某一个具体说话人模型的先验模型。形象的比方就是说你准备去相亲,媒人给你看了小莉的照片,你耳边浮现的肯定是小莉各种可能的温柔的声音,而不是你家旺财的叫声。这种GMM-UBM就是起到类似的作用,它对语音特征在空间分布的概率模型给出一个良好的预先估计,使得可以提前训练GMM。然后将目标用户的数据在这个模型上进行参数的微调即可。GMM-UBM模型最重要的优势就是通过MAP算法对模型参数进行估计,避免了过拟合的发生,同时不必调整目标用户GMM的所有参数(权重,均值,方差)只需要对各个高斯成分的均值参数进行估计,就能实现最好的识别性能。 根据实验表明,这可以让待估的参数减少超过一半,越少的参数也意味着更快的收敛,不需要那么多的目标用户数据即可模型的良好训练。
- 算法逻辑:使用背景数据通过EM算法训练UBM模型,然后在使用目标用户训练数据通过最大后验估计MAP训练UBM模型,就可以得到目标用户GMM.
- 本质:用其他用户的数据来进行“预训练”,减少对真正目标用户的训练时间和参数调整。
- 在GMM-UBM系统框架中,UBM拟合出大量说话人的特征分布,目标用户的数据散落在UBM某些高斯分布的附近。其中自适应的过程就是将UBM的每个高斯分布向目标用户数据偏移。极大后验概率(MAP)算法就是解决这种问题的算法之一。
- 对目标用户的GMM模型自适应的过程分为两个步骤:
- 首先,使用目标说话人的训练数据计算出UBM模型的新参数(高斯权重、均值和方差);
- 将得到的新参数与UBM模型的原参数进行融合,从而得到目标说话人的模型。
- 具体计算方法:
- 给定GMM模型和目标说话人的训练矢量集X = (X1, X2...XT)。计算新的参数。计算Xi和UBM中中第i个高斯分布的相似度:计算新的权重、均值和方差参数:
- 由第一步得到的新参数和UBM原参数融合,得到最终的目标说话人模型,其中,自适应参数{α_i^w,α_i^m,α_i ^v}用于调节新参数和UBM参数对最终模型的影响。归一化因子(可以理解为权重值的权重)γ可以保证各混合度的权重满足:
- 具体自适应参数的取值与具体模型有关GMM-UBM系统框架,是GMM模型的一个推广,是用于解决当前目标说话人数据量不够的问题的一种方式。通过收集其他说话人数据来进行一个预先的训练。通过MAP算法的自适应,将预先训练过的模型向目标说话人模型进行微调。这种方式可以大大减少训练所需要的样本量和训练时间(通过减少训练参数)。
- i-vector:
- 在实际应用中,由于说话人语音中说话人信息和各种干扰信息掺杂在一起,不同的采集设备的信道之间也具有差异性,会使我们收集到的语音中掺杂信道干扰信息。这种干扰信息会引起说话人信息的扰动。传统的GMM-UBM方法,没有办法克服这一问题,导致系统性能不稳定。
- 在GMM-UBM模型里,每个目标说话人都可以用GMM模型来描述。因为从UBM模型自适应到每个说话人的GMM模型时,只改变均值,对于权重和协方差不做任何调整,所以说话人的信息大部分都蕴含在GMM的均值里面。GMM均值矢量中,除了绝大部分的说话人信息之外,也包含了信道信息。联合因子分析(Joint Factor Analysis, JFA)可以对说话人差异和信道差异分别建模,从而可以很好的对信道差异进行补偿,提高系统表现。但由于JFA需要大量不同通道的训练语料,获取困难,并且计算复杂,所以难以投入实际使用。
- JFA方法是对说话人差异空间以与信道差异空间分别建模,而基于I-Vector的方法是对全局差异进行建模,将其二者作为一个整体进行建模,这样处理放宽了对训练语料的限制,并且计算简单,性能也相当。
- 由于I-Vector矢量中不仅包含说话人差异信息,同时也存在信道差异信息,不光需要去除I-Vector矢量中的信道干扰,同时还需要信道补偿技术来消除信道干扰。
- 均值超矢量(supervector)是GMM-UBM模型的最终结果。在GMM-UBM框架下,说话人模型是从UBM模型自适应得到的,过程中只改变了均值的大小,因此说话人之间的区别信息都蕴含在GMM的均值矢量中。将说话人GMM模型的每个高斯成分的均值堆叠起来,形成一个高维的超矢量,即为均值超矢量。
- 假设语音声学特征参数的纬度为P,GMM的混合度为M(M个高斯成分),那么这个GMM的均值超矢量的维度为MP。
- 信息冗余是高维数据分析常见的问题,使用因子分析方法,可以将一些信息重叠和复杂的关系变量简化为较少的足够描述原有观测信息的几个因子,是一种数据降维的统计方法。JFA和I-vector都为因子分析方法。
- 因子分析:
- 设P维的观察矢量x可以用n个因子组合得到,它们之间的关系:x=u+Az+e
- μ为观测矢量x的均值,即E[x] = μ (期望);
- 矢量z为不可观测的变量,称为隐藏因子;
- 矩阵A为因子荷载矩阵;
- 矢量e为误差矢量。
- 可以理解为,因子分析法认为高维数据样本实际上是由低维数据样本经过线性变化,叠加误差扰动生成的。
- 因子分析的实质是认为m个n维特征的训练样例,x^(i)(x_1^(i),x_2^(i),...,x_n^(i) )的产生过程如下:
- 首先在一个k维的空间中按照多元高斯分布生成m个z^(i) (k维向量)
- 然后存在一个变换矩阵Λ∈R^(nxk) ,将 z^(i) 映射到n维空间中,即Λz^(i) 。因为z^(i) 的均值是0,映射后仍然是0.
- 然后将Λz^(i) 加上一个均值u(n 维),即u+Λz^(i) 对应的意义是将变换后的Λz^(i) (n维向量)移动到样本x^(i)的中心点u
- 由于真实样例x^(i)与上述模型生成的有误差,因此继续加上误差ε(n维向量,且符合多元高斯分布), u+Λz^(i) +ε
- 设P维的观察矢量x可以用n个因子组合得到,它们之间的关系:x=u+Az+e
- 联合因子分析(Joint Factor Analysis,JFA)认为,说话人的GMM模型的差异信息,是由说话人差异和信道差异这两个不可观测的部分组成的,公式如下:M=s+c,s为说话人相关的超矢量,表示说话人之间的差异;
- c为信道相关的超矢量,表示同一个说话人不同语音段的差异;
- M为GMM均值超矢量,表述为说话人相关部分s和信道相关部分c的叠加。
- JFA定义公式:s=m+Vy+Dz c=Ux
- s为说话人相关的超矢量,表示说话人之间的差异;
- m为与说话人以及信道无关的均值超矢量;
- V为低秩的本征音矩阵;
- y为说话人相关因子;
- D为对角的残差矩阵;
- z为残差因子;
- c为信道相关的超矢量,表示同一个说话人不同语音段的差异;
- U为本征信道矩阵;
- x为与特定说话人的某一段语音相关的因子。
- 这里的超参数集合{V,D,U}即为需要评估的模型参数。
- 基于以上,可以将均值超矢量重新改写为:M=m+Vy+Ux+Dz
- JFA(联合因子分析)方法的思想是使用GMM超矢量空间的子空间对说话人差异和信道差异分别建模,从而可以方便的分类出信道干扰。但JFA模型中,信道因子中也会携带部分说话人的信息,在进行补偿时,会损失一部分说话人信息。
- 所以提出了全局差异空间模型,将说话人差异和信道差异作为一个整体进行建模。这种方法改善了JFA对训练语料的要求,和计算复杂度高的问题,同时性能也与JFA相当,逐渐流行起来。给定说话人的一段语音,与之对应的高斯均值超矢量可以定义为如下:M=m+Tw
- M为给定语音的高斯均值超矢量;
- m为通用背景模型(UBM)的高斯均值超矢量,该超矢量与具体说话人以及信道无关;
- T为全局差异空间矩阵,低秩;
- w为全局差异空间因子,它的后验均值,即为I-Vector矢量,它先验地服从标准正态分布。
- 相对于JFA而言,I-Vector的计算量大大降低,可以应对大规模数据,同时因为I-Vector本身具有不错的跨信道能力和PLDA信道补偿法的引入,I-Vector对信道的鲁棒性也比JFA更好。
- M和m是可以计算的出的,而全局差异空间矩阵(T)和全局差异空间因子(w)是我们需要估计的