近几年来,深度神经网络(deep neural network,DNN)在语音识别领域获得很大成功,其性能比之前的主流建模技术——高斯混合模型(Gaussian mixture model,GMM)有显著提升。但是在DNN系统中,说话人自适应(speaker adaptation,SA)一直没有很好地解决。在GMM系统中,利用特定说话人的少量语音对模型参数进行调整,系统对该说话人的识别率可以有较大提升[1];但在DNN系统中,由于参数很容易出现过拟合,类似的说话人自适应技术没有明显效果。
后来,学者们报道了利用说话人编码对DNN进行说话人自适应的技术,该方法需要额外训练一个自适应网络;最新的研究中,学者利用i-vector对DNN进行自适应,但直接使用i-vector效果不佳,对i-vector进行长度归一化处理后系统性能有所提升。尽管如此,已有文献并没有对i-vector的处理做进一步研究。
本文尝试提出一种i-vector的max-min线性归一化方法,使得系统性能比之前文献中报道的长度归一化方法进一步提升。
神经网络是由大量的人工构建的神经元彼此相连而成的复杂网络,每个神经元计算来自其他多个神经元输入的加权和,并将其通过一个非线性函数映射后输出到其他神经元。通常神经网络具有分层结构,除与外界相连的输入层与输出层外,其他的层称为隐层,具有多个隐层的神经网络称为深度神经网络。
Hinton等[2]在2006年提出的基于深度置信网络(deep belief network,DBN)逐层训练算法,使得DNN迈入实用阶段。DBN由一系列的受限玻尔兹曼机(restricted Boltzmann machine,RBM)单元组成,每个RBM的权值利用吉布斯采样进行估计[3]。
在GMM中,最大似然线性回归(maximum likelihood linear regression,MLLR)是一种行之有效的自适应技术,然而该技术在应用到DNN时遇到了困难,其原因在于MLLR是一种线性变换,而DNN众多的隐层中含有大量的非线性关系。另外一种简单的方法是使用可获得的自适应数据利用标准BP算法直接训练DNN的网络参数,但这很容易导致过拟合问题,原因是需要估计的参数量往往远大于可获得的自适应数据量[4]。
Seide等[5]将DNN看做是一个提取环境和说话人信息的复杂的分类特征提取器,探究在GMM模型中发展起来的声道长度归一化(vocal-tract length normalization,VTLN)和特征空间最大似然线性回归(feature-space maximum-likelihood linear regression,fMLLR)对于DNN模型的效果。他们在switchboard数据集上进行实验,结果表明,在仅有1个隐层的浅层模型中,VTLN和fMLLR分别可以使WER相对降低7%和4%;而在7个隐层的深层模型中,这一数值均仅为2%。
另一种神经网络自适应的方法在文献[6]中提出,其做法是在网络的输入层和输出层之前各增加一个进行线性变换的层。前者称为线性输入网络(linear input network,LIN),其作用是在输入观测向量和网络输入层之间进行线性变换,旋转输入空间使得目标条件和训练条件更加符合;后者称为线性隐藏网络(linear hidden network,LHN),它被用来处理隐层的输出值,这些值代表网络输入的内部结构,更加适用于分类。二者都是在自适应数据上,利用标准BP算法进行训练。作者在WSJ0数据集上的实验结果表明,二者结合使用可以使WER下降5%左右。
文献[4]提出另外一种神经网络自适应的方法,即在原始的神经网络之外,再训练一个通用的自适应网络(adaptation NN)和多个很短的说话人编码(speaker code),其中自适应网络在整个训练集上训练,而每个说话人对应的说话人编码仅使用该说话人的数据进行训练。自适应网络每一层的输入都是说话人编码和前一层网络输出的拼接,自适应网络最上层的输出作为原始神经网络的输入。每个说话人编码从属于一个说话人,是一个包含该说话人信息的短向量,在训练过程中,它能调整自适应网络对该说话人的数据进行处理,从而提高系统对该说话人的性能。作者在TIMIT集上的实验结果表明,该方法可以使WER下降5%左右。
最新的文献研究表明,可以通过i-vector扩充DNN输入的办法实现其自适应。与文献[4]中的说话人编码类似,i-vector也是一种包含特定说话人信息的低维向量;而与文献[4]中的系统相比较,结合i-vector的系统不需要额外训练一个自适应网络,实现起来更加简单。Gupta等[7]中作者的实验结果表明,结合i-vector的新系统可以使WER下降5%左右, 同时,对i-vector进行长度归一化后,系统性能将获得提升。本文对i-vector的归一化进行进一步的研究,最终使用的max-min线性归一化,其性能比文献中已有的长度归一化有明显提升。
1 i-Vector身份认证矢量(identity vector)是一个包含特定说话人身份信息的低维定长矢量,它是目前最前沿的一种说话人识别建模技术,具有优秀的识别性能,这说明i-vector很好地描述了特定说话人区别于其他说话人的性质。
1.1 提取i-vectori-vector的提取算法可在很多文献[8-9]中找到,本文在此简要介绍i-vector的提取算法。
i-vector的核心思想源于高斯混合模型——通用背景模型建模技术以及子空间因子分析理论[8]。在多个高斯均值超矢量张成的高维均值超矢量空间中,利用因子分析的方法,寻找一个被称为总体变化子空间(total variability space)的低维线性空间,该空间既包含说话人的信息,也包含信道的信息[8]。一段语音的高斯混合模型均值超矢量可用下式表示[9]:
$ \mathit{\boldsymbol{M}} = \mathit{\boldsymbol{m}} + \mathit{\boldsymbol{Tw}}. $ | (1) |
其中:m是一个与说话人和信道均独立的高维矢量;T为总体变化子空间矩阵;w为总体变化因子,也就是i-Vector。
根据文献[8],为了估计总体变化子空间T,需要先依据UBM(即通用背景模型)提取出每一段语音的Baum-Welch统计量。假设有L帧的语音数据{y1, y2, …, yL}和一个共有C个F维混合分量的通用背景模型Ω,则估计语音段u对应的i-vector所需要的第c个高斯混合分量所对应的Baum-Welch统计量为
$ {N_c} = \sum\limits_{t = 1}^L {P\left( {c|{\mathit{\boldsymbol{y}}_t}, \Omega } \right)} . $ | (2) |
$ {F_c} = \sum\limits_{t = 1}^L {P\left( {c|{\mathit{\boldsymbol{y}}_t}, \Omega } \right)} {\mathit{\boldsymbol{y}}_t}. $ | (3) |
其中,P(c|yt, Ω)是生成向量yt的第c个混合高斯分量的后验概率。此外还需要计算基于UBM混合分量均值的1阶Baum-Welch统计量
$ {\tilde F_c} = \sum\limits_{t = 1}^L {P\left( {c|{\mathit{\boldsymbol{y}}_t}, \Omega } \right)} \left( {{\mathit{\boldsymbol{y}}_t}-{\mathit{\boldsymbol{m}}_c}} \right). $ | (4) |
其中,mc为第c个混合分量的均值。于是i-vector可由下式估计得到:
$ \mathit{\boldsymbol{w}}={{\left( {\mathit{\boldsymbol{I}}}+{{\mathit{\boldsymbol{T}}}^{\rm{T}}}{{\sum }^{-1}}\mathit{\boldsymbol{N}}\left( u \right)\mathit{\boldsymbol{T}} \right)}^{-1}}{{\mathit{\boldsymbol{T}}}^{\rm{T}}}{{\sum }^{-1}}\mathit{\boldsymbol{\tilde{F}}}\left( u \right). $ | (5) |
其中:N(u)为CF×CF维的矩阵,其对角块为NcI(c=1, …, C);
我们给DNN原有的输入特征拼接上相对应的i-vector,在训练和测试中都是如此,如图 1所示。
Download:
|
|
图中w为上面提取出的属于特定说话人的i-vector,y1~yL为输入该说话人的输入语音特征的每一帧,在进行拼接时,i-vector是分别拼接到原有特征的每一帧上的。
1.3 i-vector归一化大量的研究表明,在机器学习中,数据预处理的效果将会直接决定后续模型能否有效工作。然而,目前绝大多数的学术研究都集中在模型构建与优化方面,对数据预处理的理论研究较少。数据归一化是预处理的一种重要方法,在本节中,我们对i-vector应用不同的归一化方法,它们对系统的最终性能有很大影响。
1.3.1 向量范数归一化对每一个i-vector分别进行范数归一化,设属于第i个说话人的i-vector为xi,则归一化后的i-vector
$ {\mathit{\boldsymbol{\tilde x}}_i} = \frac{{{\mathit{\boldsymbol{x}}_i}}}{{{{\left\| {{\mathit{\boldsymbol{x}}_i}} \right\|}_k}}}. $ | (6) |
实验中k取值1、2、无穷分别表示xi的1范数、2范数和无穷范数,特别地,k=2时表示长度归一化。
1.3.2 均值方差归一化在用语音特征超矢量进行DNN训练时,往往需要对特征超矢量进行均值方差归一化。借鉴这种思想,将均值方差归一化应用于i-vector。设xi为属于第i个说话人的i-vector,xi(k)为它的第k个元素,共有L个说话人,则归一化后的i-vector可由下式得到:
$ {\mathit{\boldsymbol{\tilde x}}_i}\left( k \right) = \frac{{{\mathit{\boldsymbol{x}}_i}\left( k \right)-\frac{1}{L}\sum\limits_{j = 1}^L {{\mathit{\boldsymbol{x}}_j}\left( k \right)} }}{{\sqrt {\frac{1}{L}{{\sum\limits_{m = 1}^L {\left( {{\mathit{\boldsymbol{x}}_m}\left( k \right)-\frac{1}{L}\sum\limits_{n = 1}^L {{\mathit{\boldsymbol{x}}_n}\left( k \right)} } \right)} }^2}} }}. $ | (7) |
该方法利用线性函数把数据映射到[0, 1]区间内。设xi为属于第i个说话人的i-vector, xi(k)为它的第k个元素,共有L个说话人,则归一化后的i-vector可由下式得到:
$ {\mathit{\boldsymbol{\tilde x}}_i}\left( k \right) = \frac{{{\mathit{\boldsymbol{x}}_i}\left( k \right)-\mathop {\min }\limits_{1 \le j \le L} \left\{ {{\mathit{\boldsymbol{x}}_j}\left( k \right)} \right\}}}{{\mathop {\max }\limits_{1 \le j \le L} \left\{ {{\mathit{\boldsymbol{x}}_j}\left( k \right)} \right\}-\mathop {\min }\limits_{1 \le j \le L} \left\{ {{\mathit{\boldsymbol{x}}_j}\left( k \right)} \right\}}}. $ | (8) |
本文各项实验中所使用的语音数据,均来自TIMIT数据集。TIMIT语料库为语音学研究以及自动语音识别系统的开发与评价提供语音数据,它包含8种美式英语主要方言的630个说话人的录音,每个说话人有10条语音,每段语音的采样率均为16 kHz,量化位数为16 bit。在实验中,我们根据TIMIT语料库说明文档的建议,将train文件夹下的说话人语音作为训练集,使用462个说话人的语音数据(每个说话人的2条SA语音除外,因为它们会造成结果偏差)共3 696条;从test文件夹下选取24个说话人的语音作为测试集(同样,每个说话人的2条SA语音除外),共192条语音。
2.1 TIMIT数据集语音识别现状TIMIT数据集广泛应用于各种语音识别任务中,为了对本文的实验结果有一个更直观的认识,本小节对TIMIT库上的语音识别性能做一个简要的介绍。
文献[10]中引入双重分层狄里克莱过程隐马尔可夫模型(doubly hierarchical dirichlet process hidden markov model, DHDPHMM),这是一种非参数的贝叶斯HMM。它有3个特点:状态之间共享数据、对非遍历结构进行建模、对不进行发射的状态进行建模。其中第一点尤为重要,因为共享数据可以使得模型估计更加精确。文章将该模型应用于TIMIT上的语音识别任务,使用GMM训练声学模型,测试集上的WER从35.9%下降到28.6%,性能相对提升20.33%。
有学者研究表明核方法的性能与深度神经网络的性能相当,Chen等[11]采用核方法完成语音识别任务。他们使用核岭回归(kernel ridge regression)将帧层面的语音特征映射为高维的随机傅里叶特征,这些特征组成一个低秩的核矩阵从而使得计算量大大降低;使用一对一分类策略,使得在实现相近性能的情况下,需要的随机特征数大大减少。作者在TIMIT数据集上采用一对一核岭回归方法,当随机特征数为20 K的情况下,测试集上的WER达到20.9%,超出DNN方法的性能。但该方法的模型训练需要在分布式存储的BlueGene上进行,且当随机特征数为20 K时需要的存储高达249 GB,实际使用受到一定限制。
Sailor和Patil[12]利用修正线性单元(rectified linear unit, ReLU)的卷积受限玻尔兹曼机(convolutional restricted boltzmann machine, ConvRBM)将任意长度的语音信号进行无监督建模为非手动设计的fbank特征,与手动设计的fbank特征类似,这些特征的中心频率与滤波器阶数之间也存在非线性的关系,符合人的耳蜗对频率的感知规律。采用DNN-HMM模型,在TIMIT数据集上进行语音识别实验表明,使用120维ConRBM-filterbank特征的系统WER为22.8%,与使用普通120维fbank特征的基线系统WER23.4%相比,提升2.56%。
Ghahremani等[13]提出一种新型的网络结构——线性增强深度神经网络(linear augmented deep neural Network, LA-DNN),在每一个非线性层的输入和输出之间增加一个线性连接。LA-DNN与普通的DNN相比,不需要预训练且没有梯度消失的问题,训练速度大大加快,性能也更好。在TIMIT数据集上进行语音识别任务,实验中网络单元采用sigmoid单元和ReLU单元,基线系统DNN+sigmoid的WER为23.63%,LA-DNN+sigmoid系统的WER在最好情况下为22.08%,提升6.56%;LA-DNN+ReLU系统的WER在最好情况下为21.7%,提升8.18%。
在本文中,我们利用kaldi语音识别工具构造一个普通结构的DNN,其神经元为sigmoid单元,与文献[11]需要特殊硬件支持不同,我们的DNN使用GPU进行训练,且只需要不超过20 GB的存储空间。
2.2 预处理我们给每段语音提取40维fbank特征,并与其一、二阶差分组成120维特征。为了提高训练的精度,需要对每一个说话人特征进行均值方差归一化,使得归一化后从属于该说话人的特征均值为0,方差为1。在DNN训练中,为了给DNN提供一定的上下文相关信息以提高识别精度,需要对输入特征进行帧扩展,根据文献[6]中的建议,本文采用前后各5帧的11帧扩展。
2.3 系统构建本文所使用的基线系统DNN含有6个隐层,每个隐层含有1 024个单元,输出层为1 900个HMM状态。在实验中发现,若再提高隐层数或隐层节点数,性能只有些许提升而训练耗时明显增加,因此实验中不再使用更大规模的神经网络。在基线系统的基础上,参考文献[7]中的设置,对每个说话人提取一个i-vector,并对其进行归一化,然后在帧扩展之后进行拼接,整个系统如图 2所示。
Download:
|
|
首先对典型的400维i-vector进行之前文献报道的长度归一化,并将其拼接到帧扩展后的特征上输入DNN,DNN先进行交叉熵训练(CE),之后进行序列训练(sequence),使用标准反向传播算法更新权重。系统WER如表 1所示。
可见,在CE和Sequence中,拼接i-vector后WER分别比基线相对下降1.26%和0.60%,这说明拼接i-vector确实可以提高DNN语音识别系统的性能。
2.5 不同的归一化技术实验设置与2.4节相同,但对400维i-vector使用不同的归一化方式,WER如表 2所示。
2.5节中的结果表明,对i-vector进行线性归一化可比长度归一化取得更好的系统性能。为了寻找使得系统性能最优的i-vector维数,我们分别使用100, 200, 300, 400维的i-vector进行实验,得到的结果展示在图 3中。
Download:
|
|
在各个维数下,线性归一化的结果均好于长度归一化,且WER呈现出明显的先下降后上升趋势。以sequence的结果为例,最好的结果在200维处取得,此时线性归一化系统的WER为22.08%,比基线系统WER下降5.34%,比长度归一化系统WER下降5.10%。
2.7 与其他系统结果对比2.1节中介绍了目前基于TIMIT数据集一些最新语音识别技术的性能,表 3展示本文的结果与这些结果的对比。文献[10]中由于使用GMM建模,其性能比DNN或核方法差很多;文献[11]中的核方法性能最佳,但需要特殊硬件的支持,且存储消耗巨大;与剩下的两种方法相比,本文的结果优于文献[12]中的结果;比文献[13]中的结果稍差,但网络结构更为简单。
本文首先表明可以通过给DNN输入特征附加上一个i-vector实现DNN的说话人自适应。其次着重研究结合i-vector的DNN说话人自适应系统中的i-vector归一化问题,使用max-min线性归一化,相比于此前文献中的长度归一化,系统性能取得明显的提升。在TIMIT数据集上的实验表明,在最好的情况下可以使WER相比长度归一化下降5.10%。最后,我们展示不同的i-vector维数对系统性能的影响,在维数较大时,WER反而有所升高,这意味着此时可能出现了一些过适应的问题。
[1] | 李虎生, 刘加, 刘润生. 语音识别说话人自适应研究现状及发展趋势[J]. 电子学报, 2003, 31(1):103–108. |
[2] | Hinton G E, Osindero S, Toh Y W. A fast learning algorithm for deep belief nets[J]. Neural Computation, 2006, 18(7):1527. DOI:10.1162/neco.2006.18.7.1527 |
[3] | 孙志军, 薛磊, 许阳明, 等. 深度学习研究综述[J]. 计算机应用研究, 2012, 29(8):2806–2810. |
[4] | Abdel-Hamid O, Jiang H. Fast speaker adaptation of hybrid NN/HMM model for speech recognition based on discriminative learning of speaker code[C]//Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on. IEEE, 2013: 7942-7946. http://ieeexplore.ieee.org/document/6639211/ |
[5] | Seide F, Li G, Chen X, et al. Feature engineering in context-dependent deep neural networks for conversational speech transcription[C]//Automatic Speech Recognition and Understanding (ASRU), 2011 IEEE Workshop on. IEEE, 2011: 24-29. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=6163899 |
[6] | Gemello R, Mana F, Scanzio S, et al. Adaptation of hybrid ANN/HMM models using linear hidden transformations and conservative training[C]//Acoustics, Speech and Signal Processing, 2006. ICASSP 2006 Proceedings. 2006 IEEE International Conference on. IEEE, 2006: 1189-1192. http://ieeexplore.ieee.org/document/1660239/ |
[7] | Gupta V, Kenny P, Ouellet P, et al. i-Vector-based speaker adaptation of deep neural networks for french broadcast audio transcription[C]//Acoustics, Speech and Signal Processing (ICASSP), 2014 IEEE International Conference on. IEEE, 2014: 6334-6338. http://ieeexplore.ieee.org/document/6854823/ |
[8] | 栗志意. i-vector说话人识别建模关键技术与实用化研究[D]. 北京: 清华大学, 2014. |
[9] | Dehak N, Kenny P, Dehak R, et al. Front-end factor analysis for speaker verification[J]. Audio, Speech, and Language Processing, IEEE Transactions on, 2011, 19(4):788–798. DOI:10.1109/TASL.2010.2064307 |
[10] | Torbati A H H N, Picone J. A doubly hierarchical Dirichlet process hidden Markov model with a non-ergodic structure[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2016, 24(1):174–184. DOI:10.1109/TASLP.2015.2500732 |
[11] | Chen J, Wu L, Audhkhasi K, et al. Efficient one-vs-one kernel ridge regression for speech recognition[C]//2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2016: 2454-2458. http://ieeexplore.ieee.org/document/7472118/ |
[12] | Sailor H B, Patil H A. Filterbank learning using Convolutional Restricted Boltzmann Machine for speech recognition[C]//2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2016: 5895-5899. http://ieeexplore.ieee.org/document/7472808/ |
[13] | Ghahremani P, Droppo J, Seltzer M L. Linearly augmented deep neural network[C]//2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2016: 5085-5089. http://ieeexplore.ieee.org/document/7472646/ |