黄 俊, 蒋 兵, 李先刚, 郭武生, 戴礼荣
1(中国科学技术大学 语音与语言信息处理国家工程实验室,合肥 230027) 2(百度在线网络技术(北京)有限公司 语音技术部,北京 100085) 3(安徽广行贝尔数码科技有限责任公司,合肥 230027)
说话人自适应是用一定的新的目标说话人的语音数据即自适应数据来尽量提高声学模型对该说话人的建模准确度.近年来,随着深度神经网络等被广泛应用到语音识别中,语音识别的性能得到了大幅度的提升.但是语音识别的训练集数据总是有限的,不能够涵盖所有的说话人,所以语音识别的性能很大程度上取决于模型的泛化能力,而说话人自适应技术通过将说话人相关的语音特征变换为说话人无关的语音特征或者将说话人无关的模型变换为说话人相关的模型的方法使得一定程度上减小了模型的不匹配问题.
按照自适应的对象是特征还是模型,说话人自适应技术可以分为两类:特征域的自适应和模型域的自适应.特征域的自适应是利用自适应数据构造变换方法,将说话人相关的特征变换为说话人无关的特征,然后将其送入说话人无关模型进行识别,从而实现说话人自适应.比如传统的GMM-HMM框架下的倒谱均值归一化(Cepstrum Mean Normalization,CMN)[1],声道长度归一化(Vocal tract length normalization, VTLN)[2],最大化后验概率(Maximum A Posteriori, MAP)[3],受限的最大似然回归(constrained Maximum Likelihood Linear Regression, CMLLR)[4]以及特征域的最大似然回归(feature-space Maximum Likelihood Linear Regression, fMLLR)[5]等都属于这一类.模型域的自适应利用自适应数据对说话人无关模型进行调整,对不同的说话人自适应出不同的声学模型,然后用自适应后的模型进行识别,从而实现说话人自适应.比如DNN-HMM框架下的插入线性层[6,7]、加入正则化项[8]、加入辅特征[9-14]、减小模型参数[15]、激活函数参数化[16,17]以及聚类自适应[18]等均属于这一类.
在所有的自适应方法中,加入辅特征是其中极为重要的一个方法,辅特征包括i-vector[9-12]、speaker-code[14]、d-vector[13]等.应用的最广泛的辅特征为i-vector,i-vector做自适应最经典的方法是直接将训练集的i-vector拼在输入进行训练,测试时,提取测试集的i-vector拼在输入进行测试[25],该方法的主要优点是简单易实现且性能较好,缺点是测试时需要提取测试集数据的i-vector不适合于线上的自适应.除此之外,还有许多对i-vector做说话人自适应的相关研究.如文[9]用i-vector作为权重对变换矩阵进行编码来进行自适应;文[10]通过将某一层分为K个子层,然后用i-vector通过GMM或者辅助网络得到的后验概率作为权值进行自适应;文[11]通过i-vector训练网络1得到的输出拼上原始特征训练网络2和将i-vector拼入网络不同层联合训练这两种方法进行自适应;文[12]利用i-vector预测各个基的系数进行自适应.文[9-12]识别性能均取得较好的提升,但是测试时提取i-vector需要用到整句话的信息,不能用于线上的自适应.
近年来,注意力(Attention)机制是自然语言处理领域中的重大进展之一,在很多场景下被证明有效,如文[19]将Attention机制运用到神经机器翻译中取得了较大的性能提升,文[20]在语音识别中加入了Attention机制,在TIMIT数据库上,音素分类错误相对下降5.8%.
在本篇论文中,我们提出了一种基于i-vector聚类字典与Attention机制结合的框架,通过Attention机制学习i-vector字典的权重系数来获取说话人的信息,测试时不需要提取i-vector和二遍解码,能够方便的进行线上自适应,并且该框架具有可扩展性好和灵活性优的特点,可以很方便的通过改变i-vector字典实现其他方面的自适应,如地域自适应和性别自适应.此外,其他的不基于i-vector进行自适应的方法,比如插入线性层[6,7]、激活函数参数化[16,17]等,大部分均需要二遍解码重训网络.本文的架构和这些方法相比,避免了二遍解码和重训网络的步骤,快速实现测试解码.
本文通过声学模型时延神经网络(Time Delay Neural Network, TDNN)[21]和长短时记忆模型(Long Short Term Memory, LSTM)[22,23]在数据集Switchboard上研究该框架的有效性,均取得了一定的性能提升.
相比于标准的前向深度神经网络,递归神经网络(Recurrent Neural Network, RNN)和时延神经网络可以利用上下文信息对当前时刻的输入进行建模,并得到相应的输出.因此,本篇论文中,首先对声学模型TDNN进行研究.
TDNN是美国卡内基梅隆大学的Waibel等提出的,通过在传统神经元中引入延时单元D1~DN来实现对时序依赖的建模.如图1所示为TDNN的一个延时神经元.和传统的神经元不同点在于增加了N个时延单元,每一个时延单元有一个单独的权值进行控制.所以对于每一个输入,权值从传统神经元的一个权值增加到N+1个权值.例如,如果J=20,N=3,则20个输入的加权和需要20*4=80个权值.所以一个TDNN单元有能力对时序上N个延时内的信息进行编码.
图1 延时神经网络单元Fig.1 Cell of TDNN
如图2所示为一种TDNN结构,输入为20帧语音特征向量,输入层从t-4到t+4左右各拼4帧,记做[-4,4];第2层,拼帧为第t-2帧和第t+2帧,记做{-2,2};第3层,拼帧为第t-4帧和第t+3帧,记做{-4,3}.随着层数的增加,网络学到了更长时的时间信息,所以低层学到了局部短时特征,高层学到的是更加复杂的长时特征.这种学习步骤保证了每层的时延神经元以提高整个网络性能的方式调整权重.
图2 一种TDNN结构Fig.2 A structure of TDNN
TDNN的基本训练方法仍为后向传播(Back-Propagation,BP)算法.TDNN通过学习提取得到的特征在时间变化过程中具有不变性,所以能够表达语音特征在时间上的关系.
LSTM是传统递归网络的改进,是目前解决梯度消失最为有效的一种方法,如图3为LSTM的一个单元.LSTM通过特定的门使当前时刻的误差能够保存下来并选择性的传递给特定单元,因此可以避免梯度消失,以获取长时记忆.
图3 LSTM单元Fig.3 Cell of LSTM
LSTM结构包含控制前向数据流和反向误差流的输入门、输出门、遗忘门三个门和一个记忆单元.设输入序列为x=(x1,x2,…,xT),输出序列y=(y1,y2,…,yT),则t时刻的具体公式如下:
it=σ(Wixxt+Wirrt-1+Wicct-1+bi)
(1)
ft=σ(Wfxxt+Wfrrt-1+Wfcct-1+bf)
(2)
gt=tanh(Wcxxt+Wcrrt-1+bc)
(3)
ct=ft·ct-1+it·gt
(4)
ot=σ(Woxxt+Worrt-1+Wocct-1+bo)
(5)
mt=ot·tanh(ct)
(6)
rt=Wrmmt
(7)
yt=φ(Wyrrt+by)
(8)
其中σ是Sigmoid函数,i、f、o、c分别是输入门、遗忘门、输出门以及记忆单元,m与r分别是隐层输出和投影层输出,φ是网络输出层激活函数,W为权重值,b为偏置.
近年来,基于Attention机制的神经网络成为了最近的研究热点.Attention机制来源于人们观察图像的启发,当人们在观察图像时,并不是关注于图像中的每一个像素点,而是有所侧重,重点关注图像中感兴趣的特定部分.这一点和本文要学习i-vector字典的字典系数相吻合,即学习到的i-vector字典系数是i-vector字典中不同字典向量的一个权重值,也可以看作是一种侧重,所以本文采用了一种模拟Attention机制来学习字典系数的框架实现自适应.
该框架由主网络和辅助网络两个网络组成,辅助网络利用Attention机制和i-vector字典实现利用当前帧的输入得到一个类似于i-vector的包含说话人信息的向量表达,不需要在测试时利用整句话的信息来提取i-vector进行自适应.所以该框架不仅能够进行offline的自适应而且在测试时能够在不提取i-vector的前提下快速实现online的自适应,另外该框架能够方便的通过变换i-vector字典实现地域自适应和性别自适应,具有良好的灵活性和可扩展性.
图4 I-vector聚类字典注意力机制框架Fig.4 I-vector clustering dictionary and attention mechanism based framework
该框架的具体实现如图4所示,其中基线网络即为主网络.首先通过聚类的方法生成一个包含N个向量的i-vector字典,然后利用辅助网络模拟Attention机制学习得到一组N维的字典系数,用字典系数作为权重值对字典向量加权求和得到一个新的向量,再将该向量拼入主网络进行联合训练.对应的计算公式为:
(9)
其中,ai为字典系数,vi为字典的第i个向量,v为新的加权求和后的向量,命名为注意力向量(Attention vector, A-vector).在该框架下,字典系数表征的是该帧特征在i-vector字典上的"侧重",所以看作是一种attention的机制.另外,输入一帧的语音特征,辅助网络会针对该帧产生一个字典系数,不需要在得到整句话的信息之后才进行测试解码,所以该框架相较于拼上i-vector的方法更具有实时性.
训练阶段,主网络和辅助网络用相同的输入特征进行联合训练.前向计算时,将辅助网络和字典向量得到的A-vector和主网络输入层的输出拼在一起作为主网络后续网络的输入进行训练,后向更新时保持i-vector字典不变,主网络和辅助网络同时更新.测试阶段,提取测试数据的特征,将该特征同时送入主网络和辅助网络得到后验输出,再进行维特比解码及打分得到最后的解码结果,不需要进行二遍解码并且当前时刻的特征可以实时得到该帧的输出,不需要延时来获得其他帧的信息.
该框架的可行性主要分为4部分:首先,i-vector的稀疏性即一个新的i-vector可以由 i-vector字典中的字典向量进行线性表达的性质已经在声纹的相关论文[24]中得到证明.然后,辅助网络采用attention机制学习字典系数增加了该方法的合理性.其次,由该框架得到的A-vector含有说话人相关的信息,可以辅助主网络提高识别性能.最后, 测试阶段直接将测试特征送入网络测试解码,实时得到该帧的后验概率,不需要提取i-vector,所以该框架可以简单快速的实现线上自适应.
实验中使用的数据集是Switchboard,共包含2435个对话,每个对话3-10分钟.训练集包括约300h的训练数据,测试集是标准的NIST 2000 Hub5中的Switchboard部分.实验中将数据按照速率0.9、1.0、1.1扩充到原数据的3倍.训练混合高斯模型得到状态对齐,共得到9076个绑定状态.解码中使用的语言模型是四阶的语言模型(Language Model, LM)由训练集、Fisher数据第1部分以及Fisher数据第2部分生成.训练特征为40维的filter-bank (FBank),训练采用随机梯度下降(Stochastic Gradient Descent, SGD)算法,准则为交叉熵(Cross Entropy, CE).
TDNN模型的基线使用的网络结构为6层的TDNN层加上一个softmax输出层,每个TDNN层的节点数为1024节点,仅在第3层和第5层分别拼入第t-2帧和第t+2帧{-2,2},其他层不做拼帧.输入层左右各拼上4帧送入网络输入层进行训练.TDNN基线结果如表1所示,在相同的数据量下,基线模型一次迭代的时间是63秒左右,本文的框架是107秒左右.
LSTM模型的基线使用的网络结构为6层LSTM层、一个全连接层加上一个softmax输出层.每个LSTM层包括1280个记忆单元,其中对应的投影层节点数为384,输出层的节点数为768.LSTM基线结果如表2所示,在相同的数据量下,基线模型迭代一次的时间是156秒左右,本文的框架是198秒左右.
在所有的实验设置中,TDNN和LSTM均随机初始化,并使用后向传播算法训练.实验中首先提取了训练集的句子级i-vector,然后通过k-means对其聚类得到i-vector字典用于本文提出框架的训练,i-vector的聚类数目为5000,i-vector的维度为100维.我们尝试了其他的聚类数目及i-vector维度,该组参数性能最优.
TDNN的相关实验结果如表1所示.其中基线的性能为13.2,第2行为输入拼上100维i-vector训练TDNN网络作为对比试验的性能为相较于基线相对提升为5.3%.本文的提出的i-vector聚类字典框架的性能如第3行所示,性能虽不及直接拼上i-vector的模型,但是相对于基线相对提升3.0%.辅助网络的配置为2层DNN隐层,具体参数为360*1024+1024*5000.从实验结果看,利用i-vector字典,通过模拟Attention的机制学习字典的权重系数来获得说话人信息的方式是有效的,虽然性能不及直接在输入拼上i-vector的性能,但是该方法具有在解码时,不需要得到整句话来提取i-vector,可以用于线上自适应的优点.
表1 TDNN性能Table 1 TDNN performance
LSTM的相关实验结果如表2所示.其中基线的性能为13.2,第2行为输入拼上100维i-vector训练LSTM网络作为对比实验的性能,相较于基线相对提升了5.3%.本文提出的i-vector聚类字典框架的性能如第3行和第4行所示,其中第3行是辅助网络为2层DNN隐层,参数为360*1024+1024*5000,相对于基线提升了1.5%.第4行是辅助网络为1层40*1280的LSTM层加上一层1280*5000的全连接层,相对于基线提升了2.3%.对比第3行和第4行的结果,LSTM辅助网络可以利用更长时的信息,能够更好的学习到字典权重系数,所以性能较DNN辅助网络更好.
表2 LSTM性能Table 2 LSTM performance
需要说明的是我们在TDNN和LSTM网络上将辅助网络加深和加宽,未带来进一步的性能提升.
在该框架得到性能提升的基础上,需要研究分析A-vector所包含的信息及意义.A-vector是对i-vector字典中字典向量线性表达,所以A-vector应该包含说话人相关的信息并且具有区分性.因此通过说话人识别任务来研究A-vector的具体意义以进一步验证该方法的合理性,我们分别用FBank特征,句子级的i-vector以及该框架TDNN+DNN和LSTM+LSTM模型得到的A-vector做说话人识别实验,其中句子级的FBank特征和A-vector通过对该句的所有帧的特征求平均得到.具体做法是首先从测试集的每个说话人中随机选取不重复的20句话,其中10句话用作注册,10句话作为测试,通过余弦打分评价性能.最后结果如表3所示.
表3 不同特征下说话人分类性能Table 3 Speaker classification performance under different features
由表3可以得到,i-vector具有较好的说话人分类效果,FBank特征的说话人分类性能较差,A-vector的说话人性能介于两者之间.说明A-vector较FBank特征包含了更多的说话人的信息用于辅助音素分类网络训练,所以得到更优的性能,进一步证明了该框架的合理性.
在本篇论文中,我们提出了一种基于i-vector字典及Attention机制以获取说话人信息用于辅助音素分类网络训练的框架.该框架在声学模型TDNN和LSTM上均取得了一定的性能提升,并且通过说话人识别任务验证了该方法的合理性.
该框架具有很好的扩展性,可以通过简单的改变i-vector字典实现减小不同地区口音差异的地域自适应和男性、女性生理差异带来影响的性别自适应.在未来的工作中,我们将研究该框架在地域和性别下的自适应性能.