说话人识别又称声纹识别,是利用语音信号中含有的特定说话人信息来自动识别说话者身份的一种生物认证技术[1]。 近年来,基于i-vector建模方法的引入使得说话人识别系统的性能有了显著的提升[2]。 i-vector模型认为语音中的说话人和信道信息均包含于一个低维的线性子空间之中,每段语音可以用该低维空间中一个固定长度的矢量表征(称作i-vector)。 基于i-vector的说话人识别系统主要包括充分统计量(sufficient statistics)提取、 i-vector映射和似然比得分计算3个步骤。 系统首先利用Gauss混合模型—通用背景模型(Gaussian mixture model-universal background model,GMM-UBM)来对语音声学特征序列进行对准并表示成高维的充分统计量,然后基于子空间因子分析(subspace factor analysis)将该统计量映射成i-vector,最后利用概率线性鉴别性分析(probabilistic linear discriminant analysis,PLDA)模型来计算不同i-vector间的似然比分数并做出判决。
近年来在语音识别领域,深度神经网络(deep neural network,DNN)被成功应用于声学建模之中,使得语音识别性能有了里程碑式的进展[3-4]。 说话人识别领域也对如何使用DNN对说话人进行建模进行了诸多探索,但由于说话人的类别不固定,每个说话人的训练数据相对较少等问题,取得的效果都十分有限[5-7]。 近年来,Lei等[8]提出了一种结合语音识别中基于音素状态DNN模型和i-vector模型(记为DNN/i-vector)来对说话人空间建模的方法,使得说话人识别取得了较大的性能提升。 该方法在提取充分统计量的过程中,利用语音识别中基于绑定三音素状态的深度神经网络模型代替原i-vector模型(记为UBM/i-vector)中的UBM(用GMM表征)来提取每帧对各个类别的后验概率,以实现帧在内容上的对准。 GMM和DNN的差异在于GMM的每一个混合分量代表一个类别,这些类是通过无监督聚类得到的,每个类没有具体的含义,仅代表空间中的某块区域; 在基于绑定三音素状态的DNN模型中,每个输出节点代表一个类别,这些类为通过语音识别中决策树聚类后得到绑定的三音素状态,与发音内容有明确的对应关系,从而通过DNN来计算每帧对各个类别的后验概率可以实现不同语音段在发音内容(绑定三音素状态)上的对准。 从人类辨别说话人的角度来看,对不同说话人相同发音内容进行比较会更有利于说话人的区分,相关实验也证实了这一点[8]。
在UBM/i-vector系统中,帧对准和充分统计量的计算这2个步骤都基于GMM的框架,使用的也都是相同的声学特征。 DNN的引入将这2个步骤分离开来,系统从而可以使用最有利于音素分类的特征来做帧对准,使用包含更多说话人信息的特征来提取充分统计量。 Lei等[8]提出的模型使用了多帧语音识别相关声学特征(Fbank特征)作为DNN的输入来计算后验概率,但计算充分统计量所使用的说话人特征仍为UBM/i-vector系统中基本的单帧短时频谱声学特征。 计算充分统计量的部分有2个问题: 首先单帧特征包含的信息十分有限,并且计算后验概率和计算充分统计量所使用的特征帧数不一致,在时间尺度上包含的信息有一定差异; 另外短时频谱声学特征是使用人工设计的信号处理相关算法计算得到的,没有利用到数据中的信息,并且该特征中同时包含信道、语种、说话人和语音内容等多种信息,这些信息可能会对说话人识别任务造成一定程度干扰。
基于此,本文提出利用基于说话人标签的DNN模型提取BN(Bottleneck)特征代替DNN/i-vector的PLP特征计算充分统计量来进行说话人识别(记为BN/i-vector),希望除了通过DNN获得帧层面更准确的内容对准外,还能够借助DNN强大的学习能力从数据中获得更有利于说话人识别的特征表示。
1 DNN基本原理及其在语音识别中的应用DNN是传统前馈人工神经网络(artificial neural network,ANN)的扩展,具有更多的隐含层数和更强的表达能力。 使用浅层网络中常用的参数随机初始化和反向传播(back-propagation,BP)算法来训练这种多层结构很容易使模型陷入局部最优解。 因此该种结构虽然提出的时间很早,但是并没有引起机器学习领域的过多关注[9]。 DNN的成功得益于近年来提出的一种无监督的生成式预训练算法,该算法使模型获得了更好的初始参数。 然后在此基础上,使用有监督训练的方式对模型参数进一步调优。
1.1 基于深度置信网络的参数预训练预训练的思想是把DNN当做一个深度置信网络(deep belief network,DBN),该网络可以通过逐层累加受限Bolzmann机(restricted Bolzmann machine,RBM)得到[10]。 RBM是一种包含一个可见层和一个隐含层的2层无向图模型,相同层的节点间没有连接。 假设v和h分别表示可见层节点和隐含层节点,定义(v,h)间的联合分布如下所示:
$P\left( v,h \right)=\frac{1}{Z}{{\text{e}}^{{{b}^{\text{T}}}v+{{c}^{\text{T}}}h+{{v}^{\text{T}}}Wh}}.$ | (1) |
其中: W表示可见层节点和隐含层节点间的权重矩阵,b和c分别是可见层节点和隐含层节点的偏置,Z是归一化因数。 RBM的优化目标是要最大化可见层节点概率分布P(v),在训练过程中可以通过梯度下降和对比散度(contrastive divergence,CD)算法估计得到模型参数[10]。
在训练DBN模型的时候,采用自底向上的方式依次训练多个RBM,每个RBM的隐含层作为下一个RBM的输入层,通过逐层累加得到最终多层的结构。
1.2 基于反向传播算法的参数调优当完成DBN的预训练后,先将其各层网络参数作为DNN的初始参数,然后再加上一层softmax函数输出层得到完整的DNN结构。 DNN每个输出节点对应一种类别,从而实现分类的目的。
假设第0层表示输入层,第L层表示输出层,1到L-1层表示隐含层。 对于隐含层l(l=1,2,…,L-1),其节点输出激励值可以计算如下:
$\begin{align} & {{z}^{l}}={{W}^{l1}}{{h}^{l1}}+{{b}^{l1}}, \\ & {{h}^{l}}=\sigma ({{z}^{l}}). \\ \end{align}$ | (2) |
其中: Wl-1和bl-1表示权重矩阵和偏置,(zl)为上一层输入值的加权,σ为激励函数,通常采用sigmoid或tanh函数。
对于输出层通常采用softmax函数:
${{p}_{s}}=\frac{\exp ({{z}^{L}}_{s})}{\sum\limits_{k}{\exp (z_{k}^{L})}}.$ | (3) |
其中: k为输出类别的索引,ps表示第s类的输出值。 由于ps的和为1并且取值范围为[0, 1],因此可以用其表示输出类别的概率分布。
在使用BP算法对参数调优时,通常使用交叉熵(cross entropy)函数作为优化函数,通过最小化该代价函数估计得到模型参数。 交叉熵函数为
$L=\sum\limits_{s}{{{d}_{s}}\log {{p}_{s}}}.$ | (4) |
其中: ds代表正确的类别值,当s为训练数据所属类别时ds=1,当s
在语音识别中,DNN代替了Gauss混合模型—隐Markov模型 (Gaussian mixture model- hidden Markov model,GMM-HMM)声学模型中GMM的部分来表征HMM模型不同状态的发射概率。 其输入为拼接了前后多帧的声学特征,输出为绑定的三音素状态。 根据Bayes公式,HMM状态概率的计算如下:
$~{{P}_{o|s}}\left( o|s \right)=\frac{{{P}_{s|o}}\left( s|o \right)}{{{P}_{s}}\left( s \right)}\text{const}\left( o \right).$ | (5) |
其中: s代表HMM模型绑定三音素状态类别; o代表声学特征; Po|s(o|s)表示HMM的状态发射概率,Ps|o(s|o)代表HMM状态的后验概率,原本通过GMM计算得到,现在用DNN的输出概率代替; Ps(s)表示三音素状态类的先验概率; const(o)是常数项。
声学建模中使用的DNN模型有2个主要的优点: 1) 为了从上下文中获取更多的信息,拼接了前后多帧特征(如左右各5帧,共11帧)作为模型输入; 2) DNN多层非线性结构具有强大的表达能力,通过有监督的鉴别式训练可以从数据中学习到更有利于音素状态分类的特征表示。
2 基于DNN和i-vector的说话人识别系统 2.1 i-vector基本模型i-vector因子分析模型建立在GMM-UBM所表征的Gauss均值超矢量(supervector)空间之上,它认为说话人信息和信道信息同时蕴含于一个低维的子空间之中。
给定一段语音,其Gauss均值超矢量M可以分解为如下形式:
$M=m+T\omega $ | (6) |
其中: m是说话人和信道无关分量,通常可以采用UBM的均值超矢量来代替; T是总体变化子空间矩阵; ω是包含了说话人和信道信息的变化因子,即i-vector。
在i-vector模型的训练和特征映射过程中,需要计算各语音段的充分统计量(Baum-Welch统计量):
$\begin{align} & N_{c}^{\left( k \right)}=\sum\limits_{t}{\gamma _{c.t}^{(k)}}, \\ & F_{c}^{\left( k \right)}=\sum\limits_{t}{\gamma _{c.t}^{(k)}o_{t}^{\left( k \right)}}, \\ & S_{c}^{\left( k \right)}=\sum\limits_{t}{\gamma _{c.t}^{(k)}o_{t}^{\left( k \right)}}o_{t}^{\left( k \right)\text{T}}. \\ \end{align}$ | (7) |
其中: $N_{c}^{\left( k \right)}$,$F_{c}^{\left( k \right)}$和$S_{c}^{\left( k \right)}$分别表示语音段k在第c个GMM混合分量上的零阶统计量、 一阶统计量和二阶统计量,$o_{t}^{\left( k \right)}$代表语音段k在时间索引t处的声学特征,μc是GMM第c个混合分量的均值,$\gamma _{c.t}^{(k)}$表示声学特征$o_{t}^{\left( k \right)}$对第c个GMM混合分量的后验概率。
$\gamma _{c,t}^{\left( k \right)}=\frac{\tilde{\omega }{{}_{c}}{{N}_{UBM}}(o_{t}^{\left( k \right)};\text{ }{{\mu }_{c}},\sum{_{c}})}{\sum\limits_{{c}'=1}^{C}{\tilde{\omega }{{}_{{{c}'}}}}{{N}_{UBM}}(o_{t}^{\left( k \right)};\text{ }{{\mu }_{{{c}'}}},\sum{_{{{c}'}}})}.$ | (8) |
其中: C表示混合分量总数,$\tilde{\omega }{{}_{c}},{{\mu }_{c}}$和$\sum{_{c}}$分别对应第c个Gauss混合分量的权重、 均值和协方差。 由以上各式可知充分统计量是通过对声学特征在各个混合分量上(类)做软对准后计算得到的。
2.2 DNN的作用由式(5)、 (7)和(8)可以看出,说话人识别中的i-vector模型和语音识别中的声学模型都需要计算帧对类别的后验概率,只是i-vector模型中的类别对应GMM的混合分量,由于是通过无监督聚类得到,每个类别没有明确的含义,只表示空间中的某个区域; 而声学模型中的类别是通过有监督训练得到的绑定三音素状态,与语音内容有明确的对应关系。 从人类辨别说话人的角度来看,对不同说话人相同发音内容进行比较会更有利于说话人的区分。 因此,文[8]提出使用语音识别中DNN模型来代替GMM-UBM计算每帧对各个类别的后验概率,即用DNN的输出概率代替γc,t(k),从而达到对不同语音段在发音内容(绑定三音素状态)上实现对准并进行区分的目的。 其流程如图 1所示。
UBM/i-vector模型建立在GMM之上,即假设每个类服从Gauss分布。 由于DNN只是代替UBM来计算后验概率,模型其余部分还是建立在GMM的基础之上,因此需要假设DNN表示的各类三音素状态服从Gauss分布,并估计出一个辅助UBM来完成充分统计量的提取。 该辅助UBM可以利用DNN输出的后验概率和说话人声学特征,依据GMM中标准的最大期望(expectation maximization,EM)算法估计得到[8]。
2.3 概率线性鉴别性分析模型基于简化的概率线性鉴别性分析(probabilistic linear discriminant analysis,PLDA)模型被证明是一种有效的度量不同i-vector间相似度的方法[11]。 与原始的PLDA模型相比,该模型有两处改进: 首先,需要对所有的i-vector做白化预处理,使其满足PLDA模型中的Gauss假设; 其次,去掉了原模型中对说话人类内差异建模的部分,并将残差项的方差矩阵由原来的对角形式改为满阵形式,以减小模型的计算量。
给定一个人的i-vector={ωi,i=1,2,…,R},R为语音段数,对于ωi,简化的PLDA模型如下:
${{\omega }_{i}}=w+\phi \beta +{{\varepsilon }_{i}}.$ | (9) |
其中: w表示由所有i-vector训练数据估计得到的全局均值; 矩阵$\phi $的列矢量表征了描述说话人类间差异的子空间; β是说话人因子矢量,是服从标准Gauss分布的隐变量; εi为残差项,服从均值为零协方差为满阵的Gauss分布。 PLDA模型的参数可以根据EM算法估计得到[12]。
测试时,给定2段语音的i-vector,分别为ω1和ω2,可以由下式计算出其似然比分数:
$\text{score}=\frac{\ln p({{\omega }_{1}},{{\omega }_{2}}|{{H}_{\text{same}}})}{p({{\omega }_{1}}|{{H}_{\text{diff}}})p({{\omega }_{2}}|{{H}_{\text{diff}}})}.$ | (10) |
其中: Hsame表示ω1和ω2属于相同的说话人,Hdiff表示ω1和ω2属于不同的说话人。 得到似然比分数后,根据预先设置的门限来做最终的判决。
3 基于Bottleneck特征的说话人识别系统DNN/i-vector模型将i-vector建模过程中帧对准和说话人充分统计量的计算分离,该模型虽然对帧对准的部分进行了优化,即通过DNN实现了内容上相对准确的对准,但是对于统计量计算部分,仍使用基本的单帧短时频谱特征(文[8]使用的是Mel频谱倒谱特征(Mel-frequency cepstral coefficient,MFCC),本文使用的是感知线性预测(perceptual linear predictive,PLP))。 这里存在两点问题: 短时特征包含的信息有限,无法有效捕捉类似“说话人身份”这种在较长时间中才有所体现的信息,并且在计算后验概率时使用的是拼接了多帧的声学特征,在时间尺度上所包含的信息与单帧短时频谱特征不一致; 另外,短时频谱特征是通过人工设计的基本的信号处理方法得到的,没有利用到数据中的信息,并且特征中同时包含有信道、语种和说话人身份等多种信息,这些信息可能会对说话人识别任务造成一定程度的干扰。 因此,如何构建出更有利于说话人识别的特征是十分有必要探究的问题。
针对上述问题,本文使用基于DNN的Bottleneck特征代替DNN/i-vector模型中的PLP声学特征计算充分统计量来实现说话人识别。 DNN具有强大分类能力的本质原因在于它从数据中学习到了更有利于特定分类任务的特征表示。 因此DNN也常用来作为特征提取工具,尤其是对于像人脸识别、 说话人识别这种类别数目通常不固定的开集识别任务[5, 13]。 Bottleneck特征是DNN作为特征提取工具的一种典型应用,该DNN模型中间含有一层节点数较少的隐含层,称为Bottleneck层,该层节点的激励值可以看做是输入信号的一种低维表示,即Bottleneck特征。 本文在利用基于音素状态的DNN实现更准确的帧对准的同时,借助基于说话人的DNN模型提取得到包含更多说话人信息的Bottleneck特征共同计算充分统计量从而达到更好的分类效果。 本文使用的Bottleneck特征提取DNN模型结构如图 2所示。
在本文使用的DNN模型中,输入为拼接了前后多帧的PLP特征,输出为说话人标签。 多帧的输入使Bottleneck特征能从上下文获得更多信息,针对说话人识别任务的有监督训练能从数据中学习到更有利于说话人识别的特征表示。 模型的训练与节1描述的方法一致,即先使用DBN对模型做预训练,然后通过BP算法对模型参数进一步调优。 图 3为基于Bottleneck特征的充分统计量提取流程图。
4 实验设置及结果 4.1 实验设置
本文在美国国家标准与技术研究院说话人识别库(National Institute of Standards and Technology Speaker Recognition Evaluation,NIST SRE)2008 女性电话对电话英语核心测试集上进行了实验。 采用等错误率(equal error rate,EER)和最小检测代价函数(minimum detection function,minDCF)作为系统性能评价指标。 基于音素状态的DNN模型训练数据为Switchboard数据库共300 h标注数据。 说话人识别中,训练UBM、 辅助UBM和Bottleneck特征模型的数据来自NIST SRE 2004—2006年女性部分,训练i-vector模型和PLDA模型的数据来自Switchboard,NIST SRE 2004—2006年女性部分。 实验对UBM/i-vector,DNN/i-vector和BN/i-vector系统性能进行了比较。
UBM/i-vector模型中使用的基本声学特征为39维帧长为25 ms、 帧移为10 ms的PLP特征(13维基本特征、 一阶差分、 二阶差分的组合)。 UBM的混合分量数目为2 048,方差采用对角矩阵形式。 i-vector子空间维数为400,PLDA说话人子空间维数为200。
DNN/i-vector模型中的音素DNN使用的基本声学特征为120维帧长为25 ms、 帧移为10 ms的FBank特征(40维基本特征、 一阶差分、 二阶差分的组合)。 通过拼接左右各5帧特征得到1 320维共11帧特征作为DNN的输入。 DNN的输出为绑定的三音素状态,状态数为2 227。 模型有5层隐含层,每层的节点数为1 200,其余部分的配置与UBM/i-vector模型一样。
BN/i-vector模型中,提取Bottleneck特征的DNN模型使用的基本声学特征为39维帧长为25 ms帧移为10 ms的PLP特征(13维基本特征、 一阶差分、 二阶差分的组合)。 通过拼接左右各5帧特征得到429维共11帧特征作为DNN的输入。 DNN的输出为说话人类别,共1 438人。 模型有5层隐含层,Bottleneck层的节点数为39,其他层的节点数为1 200,其余部分的配置与DNN/i-vector模型的一样。
4.2 实验结果与分析表 1给出了UBM/i-vector,DNN/i-vector和BN/i-vector的性能,其中BN-layer1到BN-layer5对应了Bottleneck层为第一层到第五层隐含层的情况。
系统 | EER/% | minDCF |
UBM/i-vector | 1.91 | 0.089 |
DNN/i-vector | 1.70 | 0.070 |
BN-layer1/i-vector | 1.57 | 0.066 |
BN-layer2/i-vector | 1.68 | 0.081 |
BN-layer3/i-vector | 2.02 | 0.118 |
BN-layer4/i-vector | 2.38 | 0.132 |
BN-layer5/i-vector | 2.95 | 0.149 |
由表 1可以看出,Bottleneck层数较低的时候,系统的性能较好; 随着层数的增长,系统性能有较大程度的下降。 其中当Bottleneck层为第一层的时候系统性能最好,与DNN/i-vector系统相比,其EER和minDCF分别相对下降了7.65%和5.71%。 图 4给出了UBM/i-vector,DNN/i-vector和BN-layer1/i-vector 3个系统的检测错误折中(detection error tradeoff,DET)曲线。
DNN是一个特征逐层抽象的过程。 用说话人身份作为输出标签,整个抽取过程会向说话人层面逐层递进,并最终使特征空间中相同说话人的特征相距较近,不同说话人的特征相距较远。 BN/i-vector模型仍然是在内容上对帧进行对准,当Bottleneck层为DNN中较低的层时,抽取得到的特征的在语音内容上的相对位置得到了保留,同时包含更多的说话人信息,因此系统性能得到了提升; 但随着隐含层的上升,相同说话人的特征被进一步拉近,在内容上的相对位置可能会受到破坏,这时候再基于内容进行对准不太合适。 这可能就是导致高层Bottleneck特征性能下降的原因。
5 结 论本文提出了一种基于深度神经网络和Bottleneck特征的说话人识别方法。 该方法首先以PLP特征作为输入、 说话人标签作为输出的DNN模型作为特征提取器,得到了更有利于说话人识别的特征,即Bottleneck特征。 然后通过结合该特征和语音识别中基于绑定三音素状态的DNN模型来共同计算i-vector模型中的充分统计量,进行i-vector映射并计算最终的似然比分数。 NIST SRE 2008女性电话对电话英语核心测试集上的实验证实了该方法的有效性。
[1] | Kinnunen T, Li H. An overview of text-independent speaker recognition:From features to supervectors[J]. Speech Communication , 2010, 52 (1) : 12–40. DOI:10.1016/j.specom.2009.08.009 |
[2] | Dehak N, Kenny P, Dehak R, et al. Front-end factor analysis for speaker verification[J]. IEEE Transactions on Audio, Speech, and Language Processing , 2011, 19 (4) : 788–798. DOI:10.1109/TASL.2010.2064307 |
[3] | Hinton G, Deng L, Yu D, et al. Deep neural networks for acoustic modeling in speech recognition:The shared views of four research groups[J]. IEEE Signal Processing Magazine , 2012, 29 (6) : 82–97. DOI:10.1109/MSP.2012.2205597 |
[4] | Dahl G E, Yu D, Deng L, et al. Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition[J]. IEEE Transactions on Audio, Speech, and Language Processing , 2012, 20 (1) : 30–42. DOI:10.1109/TASL.2011.2134090 |
[5] | Yaman S, Pelecanos J, Sarikaya R. Bottleneck features for speaker recognition[C]//Proceedings on Odyssey. Singapore:International Speech Communication Association, 2012:105-108. |
[6] | Variani E, Lei X, McDermott E, et al. Deep neural networks for small footprint text-dependent speaker verification[C]//Proceedings on ICASSP. Florence, Italy:IEEE Press, 2014:4052-4056. |
[7] | Ghahabi O, Hernando J. i-Vector modeling with deep belief networks for multi-session speaker recognition[J]. Network , 2014, 20 : 13. |
[8] | Lei Y, Scheffer N, Ferrer L, et al. A novel scheme for speaker recognition using a phonetically-aware deep neural network[C]//Proceedings on ICASSP. Florence, Italy:IEEE Press, 2014:1695-1699. |
[9] | Bengio Y. Learning deep architectures for AI[J]. Foundations and Trends in Machine Learning , 2009, 2 (1) : 1–127. DOI:10.1561/2200000006 |
[10] | Hinton G, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. Neural Computation , 2006, 18 (7) : 1527–1554. DOI:10.1162/neco.2006.18.7.1527 |
[11] | Garcia-Romero D, Espy-Wilson C Y. Analysis of i-vector length normalization in speaker recognition systems[C]//Proceedigs on Interspeech. Florence, Italy:International Speech Communication Association, 2011:249-252. |
[12] | Prince S J D, Elder J H. Probabilistic linear discriminant analysis for inferences about identity[C]//Proceedings on ICCV. Rio de Janeiro, Brazil:IEEE Press, 2007:1-8. |
[13] | Taigman Y, Yang M, Ranzato M A, et al. Deepface:Closing the gap to human-level performance in face verification[C]//Proceedings on CVPR. Columbus, OH, USA:IEEE Press, 2014:1701-1708 |