一种基于随机深度时延神经网络模型的自动语音识别方法与流程

文档序号:16368037发布日期:2018-12-22 08:32阅读:1081来源:国知局
一种基于随机深度时延神经网络模型的自动语音识别方法与流程

本发明属于自动语音识别技术领域,涉及一种基于随机深度时延神经网络模型的自动语音识别方法。

背景技术

随着深度学习技术的不断发展,自动语音识别在实际应用中的范围也越来越广,如苹果siri、亚马逊alexa,且不断深度到人们的工作、学习和生活中。因此,对于鲁棒性、建模能力更强的模型的需求也越来越高。

自动语音识别的主要任务是寻求一种在能够有效地解决不同环境因素(如说话人、声道等)的前提下,达到同人类一样的识别率,解决思路是给定输入语音信号,提取合适的特征,通过声学模型和语言模型解码得到对应的文字。传统的声学建模使用混合高斯模型(gmm)对每个音素状态进行建模,但是这种模型存在几个缺点:首先,gmm对非线性建模不具有优势,对于一些复杂的信号(如语音)需要更多的参数才能到达到很好的效果;其次,gmm对于输入特征维度敏感,输入维度的增长带来模型参数的几何增长。

目前,深度神经网络(dnn)已经成为自动语音识别领域研究的热点。从dnn到卷积神经网络(cnn)、循环神经网络(rnn),都在自动语音识别的声学建模上取得了比较好的效果,因此深度学习已经成为语音识别的主流方案。延时神经网络(tdnn)最早用在音素识别任务,网络每一层在当前时刻的输入都是由前一层的某些时刻的输出拼接而成。有研究者在延时神经网络中引入子采样(sub-sampling),既减少了模型参数,又加快了模型的训练速度,此后tdnn开始成为自动语音识别中的主流声学模型之一。而后,在tdnn中引入长短时记忆模型(lstm),赋予神经网络更强的序列建模能力。

现有的tdnn模型主要存在以下问题:

1.tdnn模型在每个上下文颗粒度建模时,只有一个tdnn层,其建模能力不足;

2.较深的tdnn模型会导致梯度消失问题,从而限制了神经网络的学习能力;

3.当采用较大的tdnn模型时,容易造成过拟合问题。



技术实现要素:

针对现有技术的不足,本发明提供一种基于随机深度时延神经网络模型的自动语音识别方法,首先在基本tdnn网络框架上,对于每层tdnn,加入更多的dnn层,并在这些dnn层中引入随机深度,以提高模型的建模能力和鲁棒性。本发明不仅提高了模型的建模能力,也很好地解决了训练过程中的过拟合以及梯度消失的问题,从而提高了语音识别的准确性。

本发明所采用的技术方案是:

一种基于随机深度的时延神经网络模型的自动语音识别方法,包括以下步骤:

a.准备训练语音音频数据和对应的文本标注数据;

b.提取特征:对训练语音音频数据提取声学特征,形成特征向量序列;

c.训练传统的gmm-hmm模型,用训练好的gmm-hmm模型对训练语音音频数据进行强制对齐,得到对应的帧级别训练标注;

d利用训练音频数据和对应的帧级别训练标注,对基于随机深度的时延神经网络(tdnn-sd)模型进行监督训练,最终结合隐马尔科夫模型得到声学模型;

e.利用对应的文本标注数据或者其他数据集的文本进行训练,得到训练好的语言模型;

f.利用训练好的语言模型和声学模型,构建自动语音识别的解码器。

进一步地,步骤d中随机深度时延神经网络(tdnn-sd)模型的构建,包括以下步骤:

①.在原有的tdnn网络框架上,对于每一个拼接了上下文帧的tdnn层,加入g个dnn层;

②.对于每一个加入的dnn层,加入shortcut连接,构成dnn残差结构;

③.在dnn残差结构内部,加入随机深度结构,得到tdnn-sd模型。

进一步地,tdnn-sd模型由tdnn-sd块(又称tdnn-sd-block)组成,每个tdnn-sd-block包含一个tdnn层和g层dnn层,且在dnn层中引入随机深度,引入了随机深度的dnn层又称sd层;具体为:在tdnn模型的第k个tdnn层的基础上,加入g个dnn层,同时引入随机深度,形成第k个tdnn-sd块,增强了模型在每个上下文颗粒度时的建模能力。

在一个优选的实施例中,对于第k个tdnn-sd块,其输入的拼接帧配置为[-m,n],且加入2个dnn层(设置g=2),通过以下方程计算第k个块在t时刻的输出激活向量

其中,表示前一个tdnn-sd块在t-m时刻的输出激活向量,表示拼接第k-1个tdnn-sd块在t-m和t+n时刻的输出激活向量,作为第k个tdnn-sd块的输入向量,w0k和b0k表示第k个块中tdnn层的权重矩阵和偏置向量,w1k、b1k、w2k和b2k分别表示第k个块中添加的两个dnn层的权重矩阵和偏置向量;φ表示随机深度的丢弃(dropout)函数。

与现有的技术相比,本发明的有益效果是:

(1)在原来tdnn模型的tdnn层中加入更多的dnn层,从而增强了每个tdnn层的建模能力。与传统的tdnn模型相比,其建模能力更强,鲁棒性更高。

(2)充分考虑随机深度和tdnn各自的优点,把随机深度嵌入到tdnn中,很好地解决了训练过程中的过拟合以及梯度消失的问题,提高了语音识别的准确性。

附图说明

图1为本发明一个实施例中的tdnn-sd架构图。

具体实施方式

下面结合附图和实施例,对本发明所述的技术方案作进一步的阐述。

一种基于随机深度时延神经网络(tdnn-sd)模型的自动语音识别方法,充分考虑随机深度和tdnn各自的优点,把随机深度嵌入到tdnn中。tdnn作为一种长时依赖建模的模型,其计算效率和训练时间相比于循环神经网络更加高效。通过将随机深度嵌入到tdnn中,即在原来的tdnn中,对于每一个有上下帧拼接的tdnn层,引入随机深度网络,从而增强网络的建模能力和鲁棒性,解决训练过程中的过拟合以及梯度消失的问题,从而提高语音识别的准确性。

典型的语音识别系统由特征提取、声学模型、语言模型和解码器等组成。一种基于随机深度时延神经网络模型的自动语音识别方法,包括以下步骤:

s1.准备训练语音音频数据和对应的文本标注数据。

s2.提取特征,对训练语音音频数据提取声学特征,形成特征向量序列。

本实施例中,把训练音频数据每一帧波形变成一个包含声音信息的多维向量,对训练音频数据提取梅尔倒谱系数(mfcc)作为声学特征。

s3.训练传统的gmm-hmm模型,用训练好的gmm-hmm模型对训练语音音频数据进行强制对齐,得到对应的帧级别训练标注。

s4.利用训练音频数据和对应的帧级别训练标注,对基于随机深度的时延神经网络(tdnn-sd)模型进行监督训练,最终结合隐马尔科夫模型得到声学模型。

具体为:训练基于深度学习的dnn-hmm模型,利用训练语音音频数据和对应的帧级别训练标注,对声学模型进行监督训练,此处的深度神经网络模型(dnn)为基于随机深度时延神经网络模型。

随机深度的时延神经网络(tdnn-sd)模型如图1所示,通过以下步骤获得:

①.在原有的tdnn网络框架上,对于每一个tdnn层(这里的tdnn层指拼接了上下文帧的层),加入g个dnn层。

在每个tdnn层后加入更多的dnn层,以提高网络模型的学习能力。本实施例中,选取有4层tdnn层的tdnn模型为基础模型,其网络的拼接配置为{-1,0,1;-1,0,1;-2,2;-3,3}。对于每个tdnn层,加入2个dnn层。每个dnn层的维度与tdnn层一致,激活函数为relu,激活函数后面加入batchnormalization。

原有的tdnn模型由若干个tdnn层组成,每个tdnn层拼接前一个tdnn层在某些时刻的输出作为其输入。对于第k层,其输入的拼接帧配置为[-m,n],通过以下方程计算第k层在t时刻的输出激活向量

其中,表示前一个tdnn层在t-m时刻的输出激活向量,表示拼接第k-1个tdnn层在t-m和t+n时刻的输出激活向量,作为第k层的输入向量,wk表示第k层的权重矩阵,bk表示第k层的偏置向量,f表示第k层的激活函数。

②.对于每一个加入的dnn层,加入shortcut连接,构成残差结构;

加入残差结构可以加快网络内部的信息传递,缓解梯度消失的问题。本实施例中,shortcut连接采用恒等映射,不包含其它的操作。

③.在dnn残差结构内部,加入随机深度结构,得到tdnn-sd模型。

在残差结构中加入随机深度的dropout,得到tdnn-sd模型,提高网络的鲁棒性。具体为:对于每一个加入的dnn层,在其残差结构内部加入perminibatch的丢弃函数,且在触发丢弃时丢弃整个激活向量,此时的模型称随机深度时延神经网络(tdnn-sd)模型。

tdnn-sd模型由tdnn-sd块(又称tdnn-sd-block)组成,每个tdnn-sd-block包含一个tdnn层和g层dnn层,且在dnn层中引入随机深度,引入了随机深度的dnn层又称sd层;具体为:在tdnn模型的第k个tdnn层的基础上,加入g个dnn层,同时引入随机深度,形成第k个tdnn-sd块,增强了模型在每个上下文颗粒度时的建模能力。

本实施例中,对于第k个tdnn-sd块,其输入的拼接帧配置为[-m,n],且加入2个dnn层(设置g=2),通过以下方程计算第k个块在t时刻的输出激活向量

其中,表示前一个tdnn-sd块在t-m时刻的输出激活向量,表示拼接第k-1个tdnn-sd块在t-m和t+n时刻的输出激活向量,作为第k个tdnn-sd块的输入向量,w0k和b0k表示第k个块中tdnn层的权重矩阵和偏置向量,w1k、b1k、w2k和b2k分别表示第k个块中添加的两个dnn层的权重矩阵和偏置向量;φ表示随机深度的丢弃(dropout)函数。

不同于传统的dropout方法,随机深度丢弃以基本残差网络模型(resnets)作为基础模型,在所有残差块中加入随机深度丢弃函数。随机深度丢弃函数是以minibatch为单位,且在触发丢弃时直接将该残差块的整个输出向量设置为0向量。此外,与传统的丢弃函数不同,丢弃函数的概率随着训练进行不断变化,丢弃函数的配置为0@0、p@0.5和0@1,即将整个训练过程看成1,在训练开始时丢弃概率为0;训练到一半的时候,丢弃概率线性增长到p;到训练结束的时候,丢弃概率线性减少到0。本实施例中,丢弃概率p设置为0.3可以达到比较好的效果。

与普通的残差结构不同,加入随机深度后,在训练时随机断开一些残差映射支路,减少各个通路的依赖性,迫使神经网络每个通路都能够充分学习。

s5.利用对应的文本标注数据或者其他数据集的文本进行训练,得到训练好的语言模型。

s6.利用训练好的语言模型和声学模型,构建自动语音识别的解码器。

本实施例中,解码器采用加权有限状态转换器(wfst)实现。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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