基于深度LSTM的端到端的语音识别
2020-04-29张瑞珍韩跃平张晓通
张瑞珍,韩跃平,张晓通
(中北大学 信息与通信工程学院,山西 太原 030051)
0 引 言
语音识别提出至今已经有60多年,随着新型架构的提出以及计算机计算能力的提升,自动语音识别的性能已经基本满足了日常使用的需求. 过去,最流行的语音识别系统通常采用梅尔倒谱系数[1]或者“相对频谱变换-感知线性预测”[2]作为特征向量,使用混合高斯模型-隐马尔可夫模型(Gaussian Mixture Model-Hidden Markov Model,GMM-HMM)作为声学模型,它描述了两个相互依赖的随机过程. 混合高斯模型将声学模型转换为隐马尔可夫状态,隐马尔可夫模型被用来处理语音声学序列的时间特征[3]. 近些年,随着计算能力的不断提升和大规模数据集的出现,深度神经网络逐步兴起[4]. DNN-HMM模型利用了DNN的表现学习能力和HMM的序列化建模能力,再次提升了语音识别系统的准确性. 在这个框架中,HMM用来描述语音信号的动态变化,而观察特征的概率则通过DNN来估计. 循环神经网络(Recurrent Neural Network,RNN)是神经网络模型的一种,通过神经元的一些链接组成了一个有向环,正是因为这些有向环,使得循环神经网络拥有了记忆结构,RNN拥有了之前网络所没有的构建动态时序模型的能力. 之后出现的长短时记忆(Long Short-Term Memory,LSTM)[5]神经网络进一步提高了语音识别的准确率,LSTM是一种特殊的RNN,解决了长句依赖的问题.
处理序列信号的标签问题,传统的方法是采用隐马尔可夫模型(HMM)或者条件随机场模型(CRF),但是这些架构在序列标签方面存在一定的缺陷,HMM状态模型的设计和CRF输入特征的选择都需要大量特定的知识,且这些模型的使用均需要独立假设作为支撑[6]. 为了解决上述问题,Graves提出基于连接时序分类准则(Connectionist Temporal Classification,CTC)[7],与之前的混合模型不同的是,CTC方法将输入序列映射到标签空间,简化了系统标签与语音帧对齐的步骤.
本文对长短时记忆网络进行了改良,在原有的标准LSTM的基础上加入了深度控制,采用多层记忆元胞构成网络来进行声学建模,并用CTC训练准则来训练神经网络,提高了语音识别的准确率.
1 基于深度LSTM的声学模型
RNN与DNN最大的不同在于RNN的输入不仅仅只有语音特征,还包括内部状态. 内部状态是将过去RNN处理过的时间序列中的信息进行编码,RNN中所使用的状态空间使得它可以学习和表示长时间范围内序列间的相关性. 简单的单隐层RNN可以表示为
ht=σ(Whht-1+Wxxt),
(1)
yt=f(Whyht).
(2)
Wx连接K个输入单元到N个隐含层单元.Wh连接N个隐含层单元从时刻t-1到时刻t.Whv连接了N个隐含层单元到L个输出层单元.σ是隐含层激活函数,f是输出层激活函数.
因为RNN中ht与ht-1之间的非线性关系,RNN会存在梯度消失和梯度爆炸的问题,使得模型在训练上存在一定的难度. Hochreiter和Schmidhuber最初提出LSTM[5],经过改进后,标准LSTM输出表示为[8]
it=σ(Wxixt+Whiht-1+Wcict-1,
(3)
ft=σ(Wxfxt+Whfht-1+Wcfct-1,
(4)
ct=ft⊙ct-1+C′,
(5)
C′=it⊙tanh(Wxcxt+Whcht-1),
(6)
ot=σ(Wxoxt+Whoht-1+Wcoct,
(7)
ht=ot⊙tanh(ct),
(8)
式中:W为各个阶段的权值矩阵;σ为激活函数;it代表输入门,表示旧状态和预选信息;ft代表遗忘门,表示在语言模型中需要丢掉的旧话题特征;ct代表神经元激活,表示本单元的输出的话题;ot代表输出门;ht代表隐层值[9-10]. 长短时记忆单元的基本思想是利用不同类型的门函数来控制网络中的信息流,LSTM的神经元可以长期保存数据信息,通过不同的门函数,决定什么时候该记住输入信息,什么时候忘记该信息,以及什么时候输出该信息.
相比标准LSTM,深度LSTM加入了深度控制门,连接多层记忆单元,利用深度控制门来控制数据从低层的记忆单元流向高层记忆单元. 图1 展示了深度LSTM的基本cell单元. 通过深度控制门连接上下两层LSTM,每层cell单元均有各自的当前状态ct以及隐藏层状态ht. 在t时刻的门控函数为
dt=σ(Wxdxt+Wcd⊙cL+1t-1+Wld⊙cLt).
(9)
图1 深度LSTM的cell单元Fig.1 Cell unit of depth-gated LSTM
门控函数连接上下两层长短时记忆的基本记忆单元,可以更深层次地利用信号的声学特征. 其中Wxd是深度门与该层输入的权值矩阵,Wcd是深度门与上一个记忆元胞关联的权值矩阵,Wld是深度门与上一层的记忆元胞相关联的权值矩阵.
2 链接时序分类
CTC准则最初是为了解决未分段数据自动标注问题而提出的,CTC是一种损失函数,它用来衡量输入的序列数据经过神经网络之后,和真实的输出相差有多少. 在深度LSTM的输出层使用CTC训损失函数,可以自动完成输入序列与输出标签之间的对齐,从而在传统的语音识别的声学模型训练中,对于每一帧的数据需要知道对应的label才能进行有效训练的问题得以解决. 时序分类器的主要功能在于将神经网络的输出转化为对应标签的条件概率,使得分类器可以按照得到的条件概率大小将输出进行分类[11-12].
在CTC模型训练时,除了输出音素对应的L个标签外,还有一个blank标签,blank标签可以将输入序列转化成所有可能的标签序列. 同时CTC准则定义了一个映射,将CTC网络的输入序列通过这个映射,转化为可能的标签序列,这种输出序列成为CTC的路径[13]. CTC网络输出的每种路径通过计算每帧标签的概率得到.
(10)
式中:x为输入序列;T为输入序列的长度;ytk为标签k在t时刻的输出. 之后建立多对一的映射,从得到的路径中去除掉空标签和重复的标签[7]. 因此,用可以映射到l的所有CTC路径集合表示输出序列l为
p(l|x)=∑p(π|x).
(11)
为了防止在p(l|x)计算过程中,由于路径中所有的可能性太多而引起指数爆炸,借鉴HMM中的思路,引入了前向后向算法[9,11]. 利用动态规整算法得到每个独立标签的条件概率,将标签对应的路径之和分解为相应标签前缀路径的迭代和. 在前向后向算法中,将给定长度的标签序列进行预处理,在每个字符的前后加入空字符,变成序列l′将序列长度变为2|l|+1,这样做不仅可以方便计算,还可以实现空白标签和非空白标签之间的相互转换. 定义在时刻t经过节点s的全部前缀子路径的概率总和为αt(s),在第s个字符为空或者第s个字符等于第s-2个字符时,
αt(s)=(αt-1(s)+αt-1(s-1))ytl′s.
(12)
其他情况的αt(s)为
(αt-1(s)+αt-1(s-1)+αt-1(s-2))ytl′s.
(13)
通过前向概率来计算标签序列l的输出概率
p(l|x)=αT(|l′|)+αT(|l′|-1).
(14)
同理,可通过动态规整算法求得后向算法的概率和βt(s),对于任意时刻t,可以通过αt(s)和βt(s)来求CTC损失函数[13-14]
(15)
为了使CTC损失函数最小化,在反向传播算法过程中,需要对每个输出预测求偏导,得
(16)
所有该模型的所有参数都可以通过与传统RNN类似的BPTT反向传播算法学习,为了最小化训练数据的损失函数,可以由BPTT算出损失函数对参数的梯度来做随机梯度下降. 在训练中,参数反向传播到隐层梯度被记忆单元记住,并被传送到各个门控函数中去,在解码过程,采用基于加权有限状态机(Weighted Finite-State Transducers,WFST)的综合搜索图来进行解码,将语言模型应用至解码过程,提高解码效率[14-15].
3 实验与分析
3.1 实验数据
本文在THCHS-30中文数据集上进行实验. 该数据集是在安静的环境下通过单个碳粒麦克风录制的,总时长35 h,采样频率为16 kHz,采样大小为16 bit. 其中前三组10 893句用作训练,最后一组2 496句用作测试. 本文将中文的声母和韵母作为建模单元,用于对比不同模型的性能,在训练过程中,实验选择随机梯度下降法优化目标函数,加快训练速度.
3.2 对比模型
在GMM-HMM训练中,将39维的梅尔倒谱系数作为输入特征参数,HMM状态通过高斯分裂和决策树聚类处理.
在LSTM-CTC训练中,采用120维的梅尔频率倒谱系数作为输入参数,采用3层隐层,输入节点120个,输出节点240个,采用CTC准则作为目标函数,解码方式采用 WFST[15],在加权情况下,具有相同输入标签的转换可以具有不同的权重. 深度LSTM-CTC训练与LSTM-CTC训练方法相同,只是将标准的LSTM网络换成本文的深度LSTM网络.
3.3 实验结果
实验通过每种模型的错词率(Word Error Rate,WER)和噪声对模型的影响来对比和评价模型的性能.
不同模型的错词率如表1 所示,传统的GMM-HMM模型的错词率为45.31%. LSTM-CTC模型的错词率为25.34%,相较于传统的语音识别模型,在引入深度学习之后,准确率有很大的提升. 在CTC训练准则不变的情况下,本文将声学模型替换为深度LSTM之后,再次降低语音识别系统的错误率. 通过表1 的数据表明,在该语音识别系统中,深度LSTM网络比标准LSTM网络的准确率有所提高. 相较于传统的长短时记忆网络,深度LSTM可以深度开发神经网络的建模能力,降低识别模型的错词率.
表1 不同模型的WER对比
另外,在有噪声干扰的情况下,对标准LSTM和深度LSTM模型的准确率进行实验,探究两种模型的抗噪声性能. 噪声环境下,在相同的测试集中加入噪声进行识别,对比两种模型在噪声条件下的准确率,结果如图2 所示. 从图中可以看出: 标准的LSTM网络迭代50次左右时,性能基本稳定,深度LSTM网络的收敛速度略慢,但是抗干扰能优于标准的LSTM网络.
图2 标准LSTM和深度LSTM模型的准确率Fig.2 Accuracy of standard LSTM and depth-gated LSTM
4 结 论
本文深入研究了长短时记忆神经网络,并以标准LSTM为基础,利用门控函数连接多层LSTM元胞,形成深度LSTM网络,使得系统可以调节上下层之间的线性关系. 并利用CTC训练准则,实现端到端语音系统,通过与传统的GMM-HMM模型和LSTM-CTC模型作对比,验证了深度LSTM神经网络在语音识别中的有效性.