一种基于CTC的声学模型训练方法与流程

文档序号:14912852发布日期:2018-07-10 23:53阅读:1565来源:国知局

本发明涉及语音识别技术领域,特别涉及一种基于CTC的声学模型训练的方法。



背景技术:

近年来,在语音识别系统中,引入深度神经网络(Deep Neural Network,DNN)进行声学模型建模已经取得了巨大的成功。由于DNN出色的分类能力,使其能够取代传统隐马尔可夫模型(Hidden Markov Model)架构中的混合高斯模型(Gaussian Mixture Model,GMM)用于产生后验概率。然而,这种新的HMM/DNN模型架构训练起来非常复杂。因此,研究人员们开始探索一种端到端的学习方法,即输入一句语音特征序列,直接得到其文本序列。在这种情况下,连接时序分类准则(Connectionist Temporal Classification,CTC)结合循环神经网络的方法(Recurrent Neural Network,RNN)越来越受到研究人员的关注。

CTC与传统的利用交叉熵(Cross-entropy,CE)训练神经网络的方法主要有两方面的不同:第一,一个额外的输出结点在被加到了网络的输出中,用于表示“空白”符号。在语音识别中,神经网络的每个输出结点代表一个声学建模因子,根据建模粒度的不同,其可以是单音素因子,也可以是三音素因子。而每个时刻网络的输出则代表了该时刻每个音素因子的后验概率。加入“空白”符号的原因是用其代表网络输出不确定时的状态,即当输入为表征噪声等不可辨识的特征或者输入为介于两个不同音素的临界状态时,网络可输出“空白”符号而避免输出一个确定的音素;第二,CTC训练方法是对网络输入的整句话进行优化,目的是最大化整句正确文本序列的输出概率,而并非像交叉熵一样最大化每一帧的输出概率,CTC通过前后向算法在网络的输出矩阵中,找到可能映射到正确文本序列的所有路径,计算其概率和,进而计算网络误差,通过误差反向传播和梯度下降算法来更新神经网络参数。

CTC的损失函数的计算公式为:

其中,S表示训练数据集;x表示输入特征;z表示可映射到正确文本序列的路径集合;L(S)表示网络输出与标注之间的误差;lnp(z|x)表示似然概率的自然对数;L(x,z)表示单个训练样本的误差。

似然概率p(z|x)可通过前后向算法计算:

其中,|U′|是加入“空白”符号后的标注序列长度,α(t,u)是前向计算因子,β(t,u)为后向计算因子,α(t,u)β(t,u)表示z中在t时刻经过音素u的概率。

最终,网络的误差可由以下公式表示:

其中,表示t时刻网络的第k个输出结点的值,则是在经过激活函数之前的网络输出值,表示结点k出现在U′中的位置集合。

在CTC模型的训练过程中,前后向搜索过程中会将所有可映射到正确文本序列的路径都包含在内,其中包含的一些极端不对称的路径,即那些音素出现的位置与实际情况相比有严重延迟或者提前的路径,而这些路径会导致模型训练的不稳定。另外,传统的CTC模型架构采用RNN进行训练,RNN具有长时的建模能力,可大大提高CTC的模型性能,但是由于RNN的一些特性导致其不易并行化训练,训练速度非常慢,训练效率低。

虽然CTC模型的训练步骤简化了,但其识别精度与CE模型相比并不具备竞争力;在识别精度上相比传统的交叉熵(Cross-entropy,CE)方法却略有下降,识别精度较低;尤其在中小型数据集上的性能下降较为严重,CTC声学模型的性能通常不如CE模型。此外,CTC模型的训练极其不稳定,容易发散。



技术实现要素:

本发明的目的在于,为解决对现有的声学模型的训练方法存在上述问题,本发明提供了一种基于CTC的声学模型训练的方法,该方法包括:

步骤1、训练一个初始的GMM模型,用该GMM模型对训练数据的文本标注进行时间点强制对齐,得到训练数据的音素标注序列中的每个音素所对应的时间区域;

步骤2、在训练数据的音素标注序列中,在每个音素后都插入一个与该音素相关的“空白”符号,则每个音素拥有一个特有的“空白”符号,即“空白”符号的数量与训练数据的音素标注序列中的音素数量相同;

步骤3、采用有限状态机(Finite-State Transducers,FST),对加入“空白”符号后的音素标注序列构建一个CTC前后向计算的搜索路径图;

步骤4、根据步骤1中的时间对齐结果,对每个音素出现的时间范围进行限制,规定每个音素出现的时间在对齐结果中,设置“时间容忍度”参数,即设定每个音素出现时间,并根据这个限制对步骤3中构建的搜索路径图进行剪枝,将音素位置超出时间限制的路径减掉,得到最终CTC计算网络误差时所需的搜索路径图。

步骤5、采用延时神经网络(Time-delay Neural Network,TDNN)结构结合CTC方法进行声学模型训练,得到最终的TDNN-CTC声学模型,TDNN中采用ReLU作为激活函数。所述ReLU激活函数公式为:

g(y)=max(0,y)

其中,g(y)表示经过激活函数之后的神经元节点的值,y表示经过激活函数之前网络的输出的神经元节点的值;

在进行所述前后向计算的搜索路径中,允许每个“空白”可以连续重复任意次出现,而两个相邻“空白”符号之间的建模音素不可连续重复,其状态跳转拓扑结构为:如果当前状态是音素,则下一状态可跳到“空白”状态或者下一个音素;如果当前状态是“空白”状态,则下一状态可跳转到“空白”自身或者下一个音素。

采用多个独立的“空白”符号取代原CTC模型中的所有音素共享一个“空白”符号。

所述每个音素出现时间的范围为50-300毫秒。

本发明的优点在于:采用多个独立的“空白”符号取代原CTC模型中的所有音素共享一个“空白”符号,提高了“空白”符号的独立性和辨识度,同时可起到对网络输出音素的辅助判决作用,提高模型精度;而对CTC搜索路径加时间点限制,一方面减少了前后向计算的搜索路径数量,提高了训练速度,同时在去除与实际情况相差较多的的干扰路径后,模型的训练更加稳定,最终的识别精度也更高;采用TDNN-CTC结构,具有长时建模能力,可充分利用输入的上下文信息,可在保证识别精度与RNN-CTC模型相同的同时,大大缩短训练周期;与普通DNN一样,易于并行计算,使CTC模型的训练速度提高约3倍;并且通过本专利提出的方法所训练的CTC模型相比于原始的CTC基线模型在识别词错误率上可得到约相对10%的下降。

附图说明

图1是本发明的一种基于CTC的声学模型训练的方法的状态跳转拓扑结构图

图2是本发明的一种基于CTC的声学模型训练的方法的流程图

具体实施方式

以下结合附图对本发明作进一步的详细说明。

如图2所示,本发明提供了一种基于CTC的声学模型训练的方法,该方法首先采用多个独立的“空白”符号取代原CTC模型中的所有音素共享一个“空白”符号,然后对训练数据的音素标注序列通过一个初始模型GMM做时间点对齐,得到每个音素出现的大概位置,然后对加入“空白”符号后的音素标注序列构建一个CTC前后向计算的搜索路径图;然后通过一个可配置的参数“时间容忍度”控制音素在搜索路径中在“时间容忍度”范围内稍微提前或延后出现,所述“时间容忍度”范围是每个因素出现时间的范围,通常设置为50-300毫秒。在本实施例中,所述“时间容忍度”设为50毫秒,对CTC前后向搜索的路径中音素出现的时间点进行限制,该方法具体包括:

步骤1、训练一个初始的GMM模型,用该GMM模型对训练数据的文本标注进行时间点强制对齐,得到训练数据的音素标注序列中的每个音素所对应的时间区域;

步骤2、在训练数据的音素标注序列中,在每个音素后都插入一个与该音素相关的“空白”符号,则每个音素拥有一个特有的“空白”符号,即“空白”符号的数量与训练数据的音素标注序列中的音素数量相同;如图1所示的路径图每条路径中音素之间的跳转结构,将某一条路径中的所有“空白”符号去掉,便可得到对应的音素序列。因此,路径图表示为所有等长的带有“空白”符号且可映射到正确音素标注序列的路径集合。其中,每条路径的音素出现位置和“空白”重复的次数不同。

步骤3、采用有限状态机(Finite-State Transducers,FST),对加入“空白”符号后的音素标注序列构建一个CTC前后向计算的搜索路径图;

步骤4、根据步骤1中的时间对齐结果,对每个音素出现的时间范围进行限制,规定每个音素出现的时间在对齐结果中,设置“时间容忍度”参数,即将每个音素出现时间设定在50毫秒,并根据这个限制对步骤3中构建的搜索路径图进行剪枝,将音素位置超出时间限制的路径减掉,得到最终CTC计算网络误差时所需的搜索路径图。

步骤5、采用延时神经网络(Time-delay Neural Network,TDNN)结构结合CTC方法进行声学模型训练,得到最终的TDNN-CTC声学模型,TDNN中采用ReLU作为激活函数。所述ReLU激活函数公式为:

g(y)=max(0,y)

其中,g(y)表示经过激活函数之后的神经元节点的值,y表示经过激活函数之前网络的输出的神经元节点的值。

在本实施例中,采用采用延时神经网络(Time-delay Neural Network,TDNN)结构,所采用的TDNN结构为七层,每个隐层576个输出结点,采用ReLU激活函数,每层的配置分别为:{-1,0,1}{-1,0,1,2}{-3,0,3}{-3,0,3}{-6,3,0}{0},其中{-1,0,1}代表第一层将输入层的当前帧及其前一帧和后一帧的输入特征拼接起来作为输入,依此类推,每层会将其前一层若干时刻的输出结点拼接起来作为输入。网络的输出结点数为78(39个英文音素和对应的39个“空白”符号)。

在进行所述前后向计算的搜索路径中,允许每个“空白”可以连续重复任意次出现,而两个相邻“空白”符号之间的建模音素不可连续重复,其状态跳转拓扑结构为:如果当前状态是音素,则下一状态可跳到“空白”状态或者下一个音素;如果当前状态是“空白”状态,则下一状态可跳转到“空白”自身或者下一个音素。

采用多个独立的“空白”符号取代原CTC模型中的所有音素共享一个“空白”符号。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1