论文 | 【i-vector前身】关于说话人确认任务中一种高效的因子分析模型中的实现算法

这篇07年的论文探讨了一种用于说话人确认的高效因子分析模型实现,预示了i-vector的发展。文章介绍了模型的三个组成部分:独立组件、说话人依赖组件和会话依赖组件,并提出了一种使用SVM补偿均值超向量的新方法,简化了因子分析的计算。此外,论文还阐述了如何通过总体估计、隐变量估计和信道总体变化矩阵估计来建模语音变化性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Abstract

这篇论文是07年的《A Straightforward and Efficient Implementation of the Factor Analysis Model for Speaker Verification》,当时还没有提出i-vector,但在作者提出的这种Hybrid domain session compensation中暗含了信道总变化因子的思想。本篇paper主要讲了这么两件事:

  • 作者实现了一个简单明确的算法用来估计i-vector,也就是用在计算i-vector特征信道的MAP计算中;
  • 基于标准的GMM似然计算中提出了一个与众不同的补偿均值超向量supervectors的方案:是通过一个SVM分类器来补偿均值超向量;

总体来说,这篇paper为你提供了一个训练i-vector的算法和一个i-vector前身的一些思路。

二、Introduction

在Introduction中除了怼一下前人的方法有多么垃圾,再次强调一下自己的算法有多么多么高效:

  • 提出的了一个简洁直接的算法减少因子分析的计算量;

  • 提出了一种新的补偿方案,就是在处理特定句子影响中,不需要按照像《Speaker Verifiction Using Adapted Gaussian Mixture Models》中所用的得分规整,也就是在对每个说话人的GMM中进行的似然函数计算可以直接通过SVM分类器;

三、对语音变化性建模

作者给捋了一下思路,就是一个说话人的模型应该包含三个部分:

  1. a speaker-session independent compoment
  2. a speaker dependent component
  3. a session dependent component

作为一个数学渣渣,对于component分析的技术,还在学习,推荐看一本书,也是我在实验室偶然之间翻到的《独立成分分析》,这是一种ICA技术,也是因子分析中最重要的技术。

回到这篇论文,OK,在估计i-vector中主要是计算特征信道的MAP,我们用个公式来描述一下上面的三个部分是怎么组装在一起,分别代表了什么,整个公式计算的是一句话的所有信息,因为在论文《Front-End Factor Analysis for Speaker Verification》中,我也对这篇经典之作写了一下自己的感想,参见论文 |《Front-End Factor Analysis for Speaker Verification》,i-vector假设的是所有语音都有不同说话人产生,那么会对提取每一句话的i-vector:

m ( h , s ) = m + D y s + U x ( h , s ) m_{(h,s)} = m + Dy_{s} + Ux_{(h,s)} m(h,s)=m+Dys+Ux(h,s)

我们知道,UBM得到的就是一个GMM均值超向量GMM mean supervector,它是由GMM均值向量合并而成,维度大小是M x D,具体UBM方面如何计算和思想参见 论文 |《Speaker Verifiction Using Adapted Gaussian Mixture Models》

  • M:这个大的GMM有M个混合成分;

  • D:代表语音所提取的升学特征的维度,比如39维MFCC特征;

  • (h,s):代表说话人s的第h句话;

  • m ( h , s ) m_{(h,s)} m(h,s):代表session-speaker dependent supervector mean;特定说话人s在说特定语音h的超值均向量;

  • m:就是UBM得到的就是一个GMM均值超向量GMM mean supervector,UBM主要是估计参数 θ = ( m , Σ , α ) \theta=({m,\Sigma,\alpha}) θ=(m,Σ,α), 维度大小是M x D,对应第一个成分;

  • D: 是MD X MD大小的对角矩阵,满足 I = τ D t Σ − 1 D I=\tau D^{t}\Sigma^{-1}D I=τDtΣ1D, τ \tau τ是在标准MAP计算中的一个相关因子, D t D D^{t}D DtD是一个后验协方差矩阵;

  • y s y_{s} ys:大小是M X D,代表说话人向量;它和D构成了第二个成分

  • U U U: 是在低维R上的信道总变化矩阵,大小是M X D X R,这里的R就是i-vector的维度,在kaldi中常常取400维;

  • x ( h , s ) x_{(h,s)} x(h,s):也就是i-vector,是R维的向量,事实上, x ( h , s ) x_{(h,s)} x(h,s)并不依赖于具体说话人;它和 U U U构成了第三个成分;

其中, x ( h , s ) x_{(h,s)} x(h,s) y s y_{s} ys这两个因子服从 N ( 0 , I ) \mathcal N(0,I) N(0,I)分布。

这部分就是又回忆了一下i-vector的公式长啥样,怕大家后面计算又忘了。

四、因子分析模型中的Striaghtforward具体实现

本文中的因子分析模型主要估计三个部分:

  • 总体估计,其实就是对通过已知UBM的估计,计算一些零阶和一阶统计量,服务于对隐变量( x ( h , s ) x_{(h,s)} x(h,s) y s y_{s} ys这两个因子)和矩阵U(低维R上的信道总变化矩阵)进行估计;

  • 隐变量估计( x ( h , s ) x_{(h,s)} x(h,s) y s y_{s} ys这两个因子);

  • 矩阵U(低维R上的信道总变化矩阵)估计;

下面分别介绍一下,前方有一大波公式:

1. 总体估计

对于一个句子或者一个说话人有M维的混合成分,那么对于说话人和句子本身我们计算得到两个零阶统计量,大小为M x 1的向量:

M维的特定说话人相关的统计量(每个说话人都用M维的GMM表示,GMM对每个说话人说的所有话的响应度): N s [ g ] = Σ t ∈ s γ g ( t ) N_{s}[g]=\Sigma_{t\in s}\gamma_{g}(t) Ns[g]=Σtsγg(t);

  • Σ t ∈ s \Sigma_{t\in s} Σts:表示说话人s说的所有的话加在一起,也就是总帧数,t表示总帧数中的其中一帧;

  • γ g ( t ) \gamma_{g}(t) γg(t):在观测时刻t上,在第g个高斯成分上的后验概率,也就是在当前模型参数下第t个观测数据来自第g个分模型的概率,称为分模型g对观测时刻t的响应度;

M维的特定句子相关的统计量(特定说话人s说的特定句子h也就是该说话人说的每一句都用M维的GMM表示,GMM对每个说话人的每一句话的响应度): N ( h , s ) [ g ] = Σ t ∈ ( h , s ) γ g ( t ) N_{(h,s)}[g]=\Sigma_{t\in (h,s)}\gamma_{g}(t) N(h,s)[g]=Σt(h,s)γg

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值