训练神经网络辅助模型的方法和装置及语音识别方法和装置与流程

文档序号:13889078阅读:199来源:国知局

本发明涉及语音识别,具体涉及训练神经网络辅助模型的方法、训练神经网络辅助模型的装置、语言识别方法以及语音识别装置。



背景技术:

语音识别系统一般包含声学模型(am)和语言模型(lm)两个部分。声学模型是统计语音特征对音素单元概率分布的模型,语言模型是统计词序列(词汇上下文)出现概率的模型,语音识别过程是根据两个模型的概率得分的加权和得到得分最高的结果。

近几年,神经网络语言模型(nnlm)作为一种新方法被引入语音识别系统,极大地提高了语音识别性能。

神经网络语言模型相比传统的语言模型提高了语音识别的精度,但是由于计算成本高,难以满足实际需求。主要原因在于神经网络语言模型需要保证所有输出的概率和为1,而这是通过归一化因子实现的。计算归一化因子步骤是先计算每个输出目标的值,然后做加和,因此输出目标的个数决定了计算量。对于神经网络语言模型来说,计算量是由词表大小决定的,而通常情况下词表大小可以达到几万甚至几十万,这将导致此技术无法应用于实时的语音识别系统中。

为了解决归一化因子的计算问题,以往有两种方法。

第一种方法是修改模型的训练目标。传统的训练目标是提高模型的分类准确度,新增加的目标是减少归一化因子的差异性,使得训练后模型的归一化因子近似于一个常数,训练中用参数来调节这两个目标的权重。实际使用中,归一化因子不再精确计算,而是用近似常数来代替。

第二种方法是修改模型的结构。传统的模型是在所有的词汇上做归一化,新的模型是将输出词表先进行分类,输出词的概率计算变为了输出词所属类的概率乘以输出词在类内的概率,而计算类内概率时,归一化因子只需累加类内所有词的输出值,而不是所有的词表,所以可以加快归一化因子的计算。



技术实现要素:

本发明者们发现,传统的神经网络语言模型中解决归一化因子问题的上述方法虽然减小了计算量,但是计算量的减小是以降低模型的分类准确性为代价的。另外,上述第一种方法中引入的训练目标权重需要靠经验来调节,增加了模型的复杂性。

为了在不降低分类准确性的同时降低神经网络语言模型的计算量,使得神经网络语言模型能够应用到实时的语音识别系统,本发明的实施方式提出了首先训练用于计算神经网络语言模型的归一化因子的神经网络辅助模型,在利用神经网络语言模型计算得分时,用神经网络辅助模型计算出近似的归一化因子来代替真实值。具体地,提供了以下技术方案。

[1]一种训练神经网络辅助模型的装置,上述神经网络辅助模型用于计算神经网络语言模型的归一化因子,上述装置包括:

计算单元,其利用上述神经网络语言模型和训练语料,计算至少一层隐藏层的向量和归一化因子;和

训练单元,其利用上述至少一层隐藏层的向量和归一化因子分别作为输入和输出,训练上述神经网络辅助模型。

上述方案[1]的训练神经网络辅助模型的装置,与传统的增加新的训练目标函数的装置相比,使用辅助模型拟合归一化因子,没有引入训练目标权重这个需要靠经验来调节的因子,从而使得整个训练更加简单易用,在降低了计算量的同时没有牺牲模型的分类准确性。

[2]上述方案[1]所述的训练神经网络辅助模型的装置,其中,

上述计算单元,

利用上述神经网络语言模型和上述训练语料,通过向前传播,计算至少一层隐藏层的向量。

[3]上述方案[1]或[2]所述的训练神经网络辅助模型的装置,其中,

上述至少一层隐藏层为最后一层隐藏层。

[4]上述方案[1]-[3]的任一方案所述的训练神经网络辅助模型的装置,

上述训练单元,

利用上述至少一层隐藏层的向量作为输入,并利用上述归一化因子的对数作为输出,训练上述神经网络辅助模型。

[5]上述方案[1]-[4]的任一方案所述的训练神经网络辅助模型的装置,

上述训练单元,

通过减小归一化因子的预测值和真实值之间的误差,训练上述神经网络辅助模型,上述真实值为上述计算得到的归一化因子。

[6]上述方案[5]所述的训练神经网络辅助模型的装置,其中,

上述训练单元,

使用梯度下降法更新上述神经网络辅助模型的参数来减小上述误差。

[7]上述方案[5]或[6]所述的训练神经网络辅助模型的装置,其中,

上述误差为均方根误差。

[8]一种语音识别装置,包括:

输入单元,其输入待识别的语音;

识别单元,其利用声学模型将上述待识别的语音识别为词序列;

第1计算单元,其利用神经网络语言模型和上述词序列,计算至少一层隐藏层的向量;

第2计算单元,其将上述至少一层的隐藏层的向量作为由上述[1]-[7]的任一方案所述的装置训练得到的神经网络辅助模型的输入,计算归一化因子;和

第3计算单元,利用上述归一化因子和上述神经网络语言模型计算上述词序列的得分。

上述方案[8]的语音识别装置,利用事先训练好的神经网络辅助模型来计算神经网络语言模型的归一化因子,能够显著提高神经网络语言模型的计算速度,从而使该语音识别装置能够应用到实时的语音识别中。

[9]一种训练神经网络辅助模型的方法,上述神经网络辅助模型用于计算神经网络语言模型的归一化因子,上述方法包括:

利用上述神经网络语言模型和训练语料,计算至少一层隐藏层的向量和归一化因子;和

利用上述至少一层隐藏层的向量和归一化因子分别作为输入和输出,训练上述神经网络辅助模型。

上述方案[9]的训练神经网络辅助模型的方法,与传统的增加新的训练目标函数的方法相比,使用辅助模型拟合归一化因子,没有引入训练目标权重这个需要靠经验来调节的因子,从而使得整个训练更加简单易用,在降低了计算量的同时没有牺牲模型的分类准确性。

[10]上述方案[9]所述的训练神经网络辅助模型的方法,其中,

上述计算至少一层隐藏层的向量和归一化因子的步骤包括:

利用上述神经网络语言模型和上述训练语料,通过向前传播,计算至少一层隐藏层的向量。

[11]上述方案[9]或[10]所述的训练神经网络辅助模型的方法,其中,

上述至少一层隐藏层为最后一层隐藏层。

[12]上述方案[9]-[11]的任一方案的训练神经网络辅助模型的方法,

上述训练上述神经网络辅助模型的步骤包括:

利用上述至少一层隐藏层的向量作为输入,并利用上述归一化因子的对数作为输出,训练上述神经网络辅助模型。

[13]上述方案[9]-[12]的任一方案所述的训练神经网络辅助模型的方法,

上述训练上述神经网络辅助模型的步骤包括:

通过减小归一化因子的预测值和真实值之间的误差,训练上述神经网络辅助模型,上述真实值为上述计算得到的归一化因子。

[14]上述方案[13]所述的训练神经网络辅助模型的方法,其中,

上述训练上述神经网络辅助模型的步骤包括:

使用梯度下降法更新上述神经网络辅助模型的参数来减小上述误差。

[15]上述方案[13]或[14]所述的训练神经网络辅助模型的方法,其中,

上述误差为均方根误差。

[16]一种语音识别方法,包括:

输入待识别的语音;

利用声学模型将上述待识别的语音识别为词序列;

利用神经网络语言模型和上述词序列,计算至少一层隐藏层的向量;

将上述至少一层的隐藏层的向量作为由上述方案[9]-[15]的任一方案所述的方法训练得到的神经网络辅助模型的输入,计算归一化因子;和

利用上述归一化因子和上述神经网络语言模型计算上述词序列的得分。

上述方案[16]的语音识别方法,利用事先训练好的神经网络辅助模型来计算神经网络语言模型的归一化因子,能够显著提高神经网络语言模型的计算速度,从而使该语音识别方法能够应用到实时的语音识别中。

附图说明

通过以下结合附图对本发明具体实施方式的说明,能够更好地了解本发明上述的特点、优点和目的。

图1是根据本发明的一个实施方式的训练神经网络辅助模型的方法的流程图。

图2是根据本发明的一个实施方式的训练神经网络辅助模型的过程的一个实例的示意图。

图3是根据本发明的另一个实施方式的语音识别方法的流程图。

图4是根据本发明的另一个实施方式的语音识别方法的一个实例的流程图。

图5是根据本发明的另一实施方式的训练神经网络辅助模型的装置的框图。

图6是根据本发明的另一实施方式的语音识别装置的框图。

图7是根据本发明的另一实施方式的语音识别装置的一个实例的框图。

具体实施方式

下面就结合附图对本发明的各个优选实施例进行详细的说明。

<训练神经网络辅助模型的方法>

图1是根据本发明的一个实施方式的训练神经网络辅助模型的方法的流程图。本实施方式的神经网络辅助模型用于计算神经网络语言模型的归一化因子,本实施方式的训练神经网络辅助模型的方法包括:利用上述神经网络语言模型和训练语料,计算至少一层隐藏层的向量和归一化因子;和利用上述至少一层隐藏层的向量和归一化因子分别作为输入和输出,训练上述神经网络辅助模型。

如图1所示,首先,在步骤s101,利用事先训练好的神经网络语言模型20和训练语料10,计算至少一层隐藏层的向量和归一化因子。

神经网络语言模型20包括输入层201,隐藏层2021,…,202n,和输出层203。

在本实施方式中,至少一层隐藏层优选是最后一层隐藏层202n,也可以是多层,例如包括最后一层隐藏层202n和倒数第二层隐藏层202n-1,本实施方式对此没有任何限制。可以理解,增加层数,将提高归一化因子的准确度,同时会增大计算量。

在本实施方式中,优选利用神经网络语言模型20和训练语料10,通过向前传播,计算至少一层隐藏层的向量。

接着,在步骤s105,利用在步骤s101中计算出的至少一层隐藏层的向量和归一化因子分别作为神经网络辅助模型的输入和输出,训练神经网络辅助模型。实际上,神经网络辅助模型可以认为是一个用来拟合至少一层隐藏层的向量和归一化因子的函数,函数拟合模型有很多种,任何一种都可以作为辅助模型计算归一化因子。辅助模型的参数越多,代表归一化因子计算的越准确,同时计算量也就越大,实际使用中可以根据需求来选择不同大小的模型来平衡模型的准确率和计算速度。

在本实施方式中,优选,利用至少一层隐藏层的向量作为输入,并利用归一化因子的对数作为输出,训练神经网络辅助模型。在本实施方式中,在训练数据中的归一化因子差异较大的情况下,利用归一化因子的对数作为输出。

在本实施方式中,优选,通过减小归一化因子的预测值和真实值之间的误差,训练神经网络辅助模型,上述真实值为上述计算得到的归一化因子。另外,优选,使用梯度下降法更新上述神经网络辅助模型的参数来减小上述误差。另外,优选,上述误差为均方根误差。

下面结合图2说明一个具体实例。图2是根据本发明的一个实施方式的训练神经网络辅助模型的过程的一个实例的示意图。

如图2所示,神经网络语言模型20利用训练语料10计算归一化因子z,并通过向前传播计算最后一层隐藏层202n的向量h,得到训练数据30。

然后,将最后一层隐藏层202n的向量h作为神经网络辅助模型40的输入,将归一化因子z作为神经网络辅助模型40的输出,训练神经网络辅助模型40,训练的目标是减少预测值和真实值即归一化因子z的均方根误差,使用梯度下降法更新模型的参数来降低误差值,直到模型收敛为止。

本实施方式的训练神经网络辅助模型的方法,与传统的增加新的训练目标函数的方法相比,使用辅助模型拟合归一化因子,没有引入训练目标权重这个需要靠经验来调节的因子,从而使得整个训练更加简单易用,在降低了计算量的同时没有牺牲模型的分类准确性。

<语音识别方法>

图3是在同一发明构思下的本发明的另一个实施方式的语音识别方法的流程图。下面就结合该图,对本实施方式进行描述。对于那些与前面实施例相同的部分,适当省略其说明。

本实施方式的语音识别方法,包括:输入待识别的语音;利用声学模型将上述待识别的语音识别为词序列;利用神经网络语言模型和上述词序列,计算至少一层隐藏层的向量;将上述至少一层的隐藏层的向量作为由上述实施方式的方法训练得到的神经网络辅助模型的输入,计算归一化因子;和利用上述归一化因子和上述神经网络语言模型计算上述词序列的得分。

如图3所示,在步骤s301,输入待识别的语音60。待识别的语音可以是任何语音,本发明对此没有任何限制。

接着,在步骤s305,利用声学模型70将待识别的语音60识别为词序列。

在本实施方式中,声学模型70可以本领域知晓的任何声学模型,可以是神经网络声学模型,也可以是其他类型的声学模型。

在本实施方式中,利用声学模型70将对待识别的语音60识别为词序列的方法,是本领域知晓的任何方法,在此不再赘述。

接着,在步骤s310,利用事先训练好的神经网络语言模型20和步骤s305识别出的词序列,计算至少一层隐藏层的向量。

在本实施方式中,计算哪一层或哪几层隐藏层的向量需要根据由上述实施方式的方法训练得到的神经网络辅助模型40的输入决定。优选,在训练神经网络辅助模型时,将最后一层隐藏层的向量作为输入,在步骤s310中,也计算最后一层隐藏层的向量。

接着,在步骤s315,将步骤s310计算得到的至少一层的隐藏层的向量作为神经网络辅助模型40的输入,计算归一化因子。

最后,在步骤s320,利用步骤s315计算得到的归一化因子和神经网络语言模型20计算上述词序列的得分。

下面结合图4说明一个具体实例。图4是根据本发明的一个实施方式的语音识别方法的一个实例的流程图。

如图4所示,在步骤s305,利用声学模型70将待识别的语音60识别为词序列50。

然后,将词序列60输入神经网络语言模型20,通过向前传播计算最后一层隐藏层202n的向量h。

然后,将最后一层隐藏层202n的向量h输入神经网络辅助模型40,计算得到归一化因子z。

然后,将归一化因子z输入神经网络语言模型20,并基于神经网络语言模型20的输出o(w|h),按下面的公式计算得到该词序列50的得分。

p(w|h)=o(w|h)/z

本实施方式的语音识别方法,利用事先训练好的神经网络辅助模型来计算神经网络语言模型的归一化因子,能够显著提高神经网络语言模型的计算速度,从而使该语音识别方法能够应用到实时的语音识别中。

<训练神经网络辅助模型的装置>

图5是在同一发明构思下的根据本发明的另一个实施方式的训练神经网络辅助模型的装置的框图。下面就结合该图,对本实施方式进行描述。对于那些与前面实施方式相同的部分,适当省略其说明。

本实施方式的神经网络辅助模型用于计算神经网络语言模型的归一化因子,如图5所示,本实施方式的训练神经网络辅助模型的装置500包括:计算单元501,其利用神经网络语言模型20和训练语料10,计算至少一层隐藏层的向量和归一化因子;和训练单元505,其利用上述至少一层隐藏层的向量和归一化因子分别作为输入和输出,训练上述神经网络辅助模型。

在本实施方式中,神经网络语言模型20包括输入层201,隐藏层2021,…,202n,和输出层203。

在本实施方式中,至少一层隐藏层优选是最后一层隐藏层202n,也可以是多层,例如包括最后一层隐藏层202n和倒数第二层隐藏层202n-1,本实施方式对此没有任何限制。可以理解,增加层数,将提高归一化因子的准确度,同时会增大计算量。

在本实施方式中,优选利用神经网络语言模型20和训练语料10,通过向前传播,计算至少一层隐藏层的向量。

在本实施方式中,训练单元505,利用在计算单元501计算出的至少一层隐藏层的向量和归一化因子分别作为神经网络辅助模型的输入和输出,训练神经网络辅助模型。实际上,神经网络辅助模型可以认为是一个用来拟合至少一层隐藏层的向量和归一化因子的函数,函数拟合模型有很多种,任何一种都可以作为辅助模型计算归一化因子。辅助模型的参数越多,代表归一化因子计算的越准确,同时计算量也就越大,实际使用中可以根据需求来选择不同大小的模型来平衡模型的准确率和计算速度。

在本实施方式中,优选,利用至少一层隐藏层的向量作为输入,并利用归一化因子的对数作为输出,训练神经网络辅助模型。在本实施方式中,在训练数据中的归一化因子差异较大的情况下,利用归一化因子的对数作为输出。

在本实施方式中,优选,通过减小归一化因子的预测值和真实值之间的误差,训练神经网络辅助模型,上述真实值为上述计算得到的归一化因子。另外,优选,使用梯度下降法更新上述神经网络辅助模型的参数来减小上述误差。另外,优选,上述误差为均方根误差。

下面结合图2说明一个具体实例。图2是根据本发明的一个实施方式的训练神经网络辅助模型的过程的一个实例的示意图。

如图2所示,神经网络语言模型20利用训练语料10计算归一化因子z,并通过向前传播计算最后一层隐藏层202n的向量h,得到训练数据30。

然后,将最后一层隐藏层202n的向量h作为神经网络辅助模型40的输入,将归一化因子z作为神经网络辅助模型40的输出,训练神经网络辅助模型40,训练的目标是减少预测值和真实值即归一化因子z的均方根误差,使用梯度下降法更新模型的参数来降低误差值,直到模型收敛为止。

本实施方式的训练神经网络辅助模型的装置500,与传统的增加新的训练目标函数的装置相比,使用辅助模型拟合归一化因子,没有引入训练目标权重这个需要靠经验来调节的因子,从而使得整个训练更加简单易用,在降低了计算量的同时没有牺牲模型的分类准确性。

<语音识别装置>

图6是在同一发明构思下的根据本发明的另一个实施方式的语音识别装置的框图。下面就结合该图,对本实施方式进行描述。对于那些与前面实施方式相同的部分,适当省略其说明。

如图6所示,本实施方式的语音识别装置600包括:输入单元601,其输入待识别的语音;识别单元605,其利用声学模型将上述待识别的语音识别为词序列;第1计算单元610,其利用神经网络语言模型和上述词序列,计算至少一层隐藏层的向量;第2计算单元615,其将上述至少一层的隐藏层的向量作为由上述实施方式的装置训练得到的神经网络辅助模型的输入,计算归一化因子;和第3计算单元620,利用上述归一化因子和上述神经网络语言模型计算上述词序列的得分。

在本实施方式中,输入单元601输入待识别的语音60。待识别的语音可以是任何语音,本发明对此没有任何限制。

在本实施方式中,识别单元605利用声学模型70将待识别的语音60识别为词序列。

在本实施方式中,声学模型70可以本领域知晓的任何声学模型,可以是神经网络声学模型,也可以是其他类型的声学模型。

在本实施方式中,利用声学模型70将对待识别的语音60识别为词序列的方法,是本领域知晓的任何方法,在此不再赘述。

第1计算单元610,利用事先训练好的神经网络语言模型20和由识别单元605识别出的词序列,计算至少一层隐藏层的向量。

在本实施方式中,计算哪一层或哪几层隐藏层的向量需要根据由上述实施方式的方法训练得到的神经网络辅助模型40的输入决定。优选,在训练神经网络辅助模型时,将最后一层隐藏层的向量作为输入,第1计算单元610也计算最后一层隐藏层的向量。

第2计算单元615,将第1计算单元610计算得到的至少一层的隐藏层的向量作为神经网络辅助模型40的输入,计算归一化因子。

第3计算单元620,利用第2计算单元615计算得到的归一化因子和神经网络语言模型20计算上述词序列的得分。

下面结合图7说明一个具体实例。图7是根据本发明的一个实施方式的语音识别装置的一个实例的框图。

如图7所示,识别单元605利用声学模型70将待识别的语音60识别词序列50。

然后,将词序列60输入神经网络语言模型20,第1计算单元610通过向前传播计算最后一层隐藏层202n的向量h。

然后,将最后一层隐藏层202n的向量h输入神经网络辅助模型40,第2计算单元615计算得到归一化因子z。

然后,将归一化因子z输入神经网络语言模型20,并基于神经网络语言模型20的输出o(w|h),第3计算单元620按下面的公式计算得到该词序列50的得分。

p(w|h)=o(w|h)/z

在本实施方式中,利用神经网络语言模型20计算至少一层隐藏层的向量的第1计算单元610和利用神经网络语言模型20计算词序列的得分的第3计算单元620为两个计算单元,但是应该理解,这两个计算单元可以利用一个计算单元实现。

本实施方式的语音识别装置600,利用事先训练好的神经网络辅助模型来计算神经网络语言模型的归一化因子,能够显著提高神经网络语言模型的计算速度,从而使该语音识别方法能够应用到实时的语音识别中。

以上虽然通过一些示例性的实施方式详细地描述了本发明的训练神经网络辅助模型的方法、训练神经网络辅助模型的装置、语言识别方法以及语音识别装置,但是以上这些实施方式并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施方式,本发明的范围仅由所附权利要求为准。

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