本发明涉及语音识别,具体涉及训练神经网络语言模型的方法、训练神经网络语言模型的装置、语音识别方法以及语音识别装置。
背景技术:
语音识别系统一般包含声学模型(am)和语言模型(lm)两个部分。声学模型是统计语音特征对音素单元概率分布的模型,语言模型是统计词序列(词汇上下文)出现概率的模型,语音识别过程是根据两个模型的概率得分的加权和得到得分最高的结果。
近几年,神经网络语言模型(nnlm)作为一种新方法被引入语音识别系统,极大地提高了语音识别性能。
神经网络语言模型的训练非常费时。为了得到好的模型,需要使用大量训练语料来训练,训练的时间比较长。
为了加快神经网络语言模型的训练速度,以往主要是靠硬件技术来加速或者通过分布式训练来解决。
通过硬件加速的方法,例如,使用更适合于做矩阵运算的显卡来代替cpu(中央处理单元)做运算,可以大大加速训练过程。
分布式训练则是将训练过程中可以并行处理化的任务分给多个cpu或gpu(图形处理器)来完成。神经网络语言模型的训练一般是用批量训练样本计算出参数的误差和。分布式训练则可以把批量训练样本分配给多个cpu或gpu。
技术实现要素:
本发明者们发现,传统的神经网络语言模型的训练中,训练速度的提升依赖于硬件技术,且分布式训练过程涉及到训练样本的频繁拷贝和模型参数的更新,训练速度的提升依赖于网络的带宽和并行计算的节点个数。另外,传统的神经网络语言模型的训练中,在输入已经给定的情况下,每次输出都是一个确定的词,而实际上,即使输入的词已经确定,输出也可以是多个词,因此训练的目标与真实分布并不一致。
为了提升神经网络语言模型的训练速度,提高语音识别的精度,本发明的实施方式提出了基于训练语料计算n元条目(n-gramentries)的概率,并基于n元条目的概率来训练神经网络语言模型的方法和装置,并进一步提供了语音识别方法和语音识别装置。具体地,提供了以下技术方案。
[1]一种训练神经网络语言模型的方法,包括:
基于训练语料,计算n元条目的概率;和
基于上述n元条目及其概率,训练上述神经网络语言模型。
上述方案[1]的训练神经网络语言模型的方法,将原始训练语料处理成为概率分布,基于概率分布进行训练,加快了模型的训练速度,训练变得更加高效。
另外,上述方案[1]的训练神经网络语言模型的方法,提升了模型的性能,训练目标是全局最优化而不是局部最优化,因此模型的训练目标更加合理,分类的准确度也更高。
另外,上述方案[1]的训练神经网络语言模型的方法,实现简单,模型的训练改动很少,只是修正了训练的输入和输出数据,最终的模型输出没有变化,因此可以和现有的技术例如分布式训练兼容。
[2]上述方案[1]所述的训练神经网络语言模型的方法,其中,
在上述基于训练语料计算n元条目的概率的步骤之前,还包括:
基于训练语料,对n元条目在上述训练语料中出现的次数进行计数,
上述基于训练语料计算n元条目的概率的步骤包括:
基于n元条目的出现次数,计算n元条目的概率。
[3]上述方案[2]所述的训练神经网络语言模型的方法,
在对n元条目在上述训练语料中出现的次数进行计数的步骤之后,还包括:
将出现次数低于预定阈值的n元条目过滤。
上述方案[3]的训练神经网络语言模型的方法,通过将出现次数低的n元条目过滤,实现了对原始训练语料的压缩,同时去除了训练语料的噪声,能够进一步提升模型的训练速度。
[4]上述方案[2]或[3]所述的训练神经网络语言模型的方法,其中,
上述计算n元条目的概率的步骤包括:
按照n元条目的输入对n元条目进行分组;和
按每一组,对输出词的出现次数进行归一化而得到n元条目的概率。
[5]上述方案[2]-[4]的任一方案所述的训练神经网络语言模型的方法,其中,
在计算n元条目的概率的步骤之后还包括:
基于熵的准则对n元条目进行过滤。
上述方案[5]的训练神经网络语言模型的方法,通过基于熵的准则对n元条目进行过滤,能够进一步提升模型的训练速度。
[6]上述方案[1]-[5]的任一方案所述的训练神经网络语言模型的方法,其中,
上述训练神经网络语言模型的步骤包括:
基于最小交叉熵准则训练神经网络语言模型。
[7]一种语音识别方法,包括:
输入待识别的语音;
利用声学模型和由上述方案[1]-[6]的任一方案所述的方法训练得到的神经网络语言模型将上述语音识别为文本句。
上述方案[7]的语音识别方法,通过使用由上述方法训练得到的神经网络语言模型进行识别,能够提高语音识别的精度。
[8]一种训练神经网络语言模型的装置,包括:
计算单元,其基于训练语料,计算n元条目的概率;和
训练单元,其基于上述n元条目及其概率,训练上述神经网络语言模型。
上述方案[8]的训练神经网络语言模型的装置,将原始训练语料处理成为概率分布,基于概率分布进行训练,加快了模型的训练速度,训练变得更加高效。
另外,上述方案[8]的训练神经网络语言模型的装置,提升了模型的性能,训练目标是全局最优化而不是局部最优化,因此模型的训练目标更加合理,分类的准确度也更高。
另外,上述方案[8]的训练神经网络语言模型的装置,实现简单,模型的训练改动很少,只是修正了训练的输入和输出数据,最终的模型输出没有变化,因此可以和现有的技术例如分布式训练兼容。
[9]上述方案[8]所述的训练神经网络语言模型的装置,还包括:
计数单元,其基于训练语料,对n元条目在上述训练语料中出现的次数进行计数,
上述计算单元,基于n元条目的出现次数,计算n元条目的概率。
[10]上述方案[9]所述的训练神经网络语言模型的装置,还包括:
第1过滤单元,其将出现次数低于预定阈值的n元条目过滤。
上述方案[10]的训练神经网络语言模型的装置,通过将出现次数低的n元条目过滤,实现了对原始训练语料的压缩,同时去除了训练语料的噪声,能够进一步提升模型的训练速度。
[11]上述方案[9]或[10]所述的训练神经网络语言模型的装置,其中,
上述计算单元包括:
分组单元,其按照n元条目的输入对n元条目进行分组;和
归一化单元,其按每一组,对输出词的出现次数进行归一化而得到n元条目的概率。
[12]上述方案[9]-[11]的任一方案所述的训练神经网络语言模型的装置,还包括:
第2过滤单元,其基于熵的准则对n元条目进行过滤。
上述方案[12]的训练神经网络语言模型的装置,通过基于熵的准则对n元条目进行过滤,能够进一步提升模型的训练速度。
[13]上述方案[8]-[12]的任一方案所述的训练神经网络语言模型的装置,其中,
上述训练单元:
基于最小交叉熵准则训练神经网络语言模型。
[14]一种语音识别装置,包括:
语音输入单元,其输入待识别的语音;
语音识别单元,其利用声学模型和由上述方案[8]至[13]的任一方案所述的装置训练得到的神经网络语言模型将上述语音识别为文本句。
上述方案[14]的语音识别装置,通过使用由上述装置训练得到的神经网络语言模型进行识别,能够提高语音识别的精度。
附图说明
通过以下结合附图对本发明具体实施方式的说明,能够更好地了解本发明上述的特点、优点和目的。
图1是根据本发明的一个实施方式的训练神经网络语言模型的方法的流程图。
图2是根据本发明的一个实施方式的训练神经网络语言模型的方法的一个实例的流程图。
图3是根据本发明的一个实施方式的训练神经网络语言模型的过程的示意图。
图4是根据本发明的另一个实施方式的语音识别方法的流程图。
图5是根据本发明的另一实施方式的训练神经网络语言模型的装置的框图。
图6是根据本发明的另一实施方式的训练神经网络语言模型的装置的一个实例的框图。
图7是根据本发明的另一实施方式的语音识别装置的框图。
具体实施方式
下面就结合附图对本发明的各个优选实施例进行详细的说明。
<训练神经网络语言模型的方法>
图1是根据本发明的一个实施方式的训练神经网络语言模型的方法的流程图。
本实施方式的训练神经网络语言模型的方法,包括:基于训练语料,计算n元条目的概率;和基于上述n元条目及其概率,训练上述神经网络语言模型。
如图1所示,首先,在步骤s105中,基于训练语料10,计算n元条目的概率。
在本实施方式中,训练语料10是进行了分词的语料。n元条目(n-gramentry)是指n元词序列(n-gramwordsequence),例如当n为4时,n元条目为“w1w2w3w4”。n元条目的概率是指在前n-1个词的词序列已知的情况下,出现第n个词的概率。例如,当n为4时,4元条目“w1w2w3w4”的概率是指在词序列“w1w2w3”已知的情况下,下一个词是w4的概率,通常表示为p(w4|w1w2w3)。
基于训练语料10计算n元条目的概率的方法可以是本领域的技术人员公知的任何方法,本实施方式对此没有任何限制。
下面结合图2详细说明计算n元条目的概率的一个实例。图2是根据本发明的一个实施方式的训练神经网络语言模型的方法的一个实例的流程图。
如图2所示,首先,在步骤s201,基于训练语料10,对n元条目在训练语料10中出现的次数进行计数,即统计n元条目在训练语料10中出现的次数,得到词频文件20。在词频文件20中,如下记录了n元条目及其出现的次数。
abcd3
abce5
abcf2
...
接着,在步骤s205,基于n元条目的出现次数,计算n元条目的概率,得到概率分布文件30。在概率分布文件30中,如下记录了n元条目及其概率。
p(d|abc)=0.3
p(e|abc)=0.5
p(f|abc)=0.2
...
在步骤s205中,基于词频文件20计算n元条目的概率的方法,即将词频文件20转换为概率分布文件30的方法如下。
首先,按照n元条目的输入对n元条目进行分组。n元条目中前n-1个词的词序列是神经网络语言模型的输入,上述例子中为“abc”。
接着,按每一组,对输出词的次数进行归一化而得到n元条目的概率。上述例子中,输入为“abc”的组中有3个n元条目,其输出词为“d”、“e”和“f”的次数分别为3、5和2,总次数为10词,进行归一化即可得到这3个n元条目的概率分别为0.3、0.5和0.2。对每个组进行归一化后即可以得到上述概率分布文件30。
接着,如图1和图2所示,在步骤s110或步骤s210,基于上述n元条目及其概率,即基于概率分布文件30,训练神经网络语言模型。
下面参照图3详细说明基于概率分布文件30训练神经网络语言模型的过程。图3是根据本发明的一个实施方式的训练神经网络语言模型的过程的示意图。
如图3所示,将n元条目的前n-1个词的词序列输入神经网络语言模型300的输入层301,将输出词“d”、“e”和“f”及其概率0.3、0.5和0.2输入神经网络语言模型300的输出层303,作为训练目标,对神经网络语言模型300的参数进行调整来进行训练。如图3所示,神经网络语言模型300还具有隐藏层302。
本实施方式中,优选,基于最小交叉熵准则训练神经网络语言模型300,即使用最小交叉熵准则逐步缩小实际输出和训练目标之间的差距,直到模型收敛。
本实施方式的训练神经网络语言模型的方法,将原始训练语料10处理成为概率分布文件30,基于概率分布进行训练,加快了模型的训练速度,训练变得更加高效。
另外,本实施方式的训练神经网络语言模型的方法,提升了模型的性能,训练目标是全局最优化而不是局部最优化,因此模型的训练目标更加合理,分类的准确度也更高。
另外,本实施方式的训练神经网络语言模型的方法,实现简单,模型的训练改动很少,只是修正了训练的输入和输出数据,最终的模型输出没有变化,因此可以和现有的技术例如分布式训练兼容。
进而,优选,在步骤s201对n元条目在训练语料10中出现的次数进行计数的步骤之后,还包括:将出现次数低于预定阈值的n元条目过滤。
该优选方案的训练神经网络语言模型的方法,通过将出现次数低的n元条目过滤,实现了对原始训练语料的压缩,同时去除了训练语料的噪声,能够进一步提升模型的训练速度。
进而,优选,在步骤s205计算n元条目的概率的步骤之后还包括:基于熵的准则对n元条目进行过滤。
该优选方案的训练神经网络语言模型的方法,通过基于熵的准则对n元条目进行过滤,能够进一步提升模型的训练速度。
<语音识别方法>
图4是在同一发明构思下的本发明的另一个实施方式的语音识别方法的流程图。下面就结合该图,对本实施方式进行描述。对于那些与前面实施例相同的部分,适当省略其说明。
本实施方式的语音识别方法包括:输入待识别的语音;利用声学模型和由上述实施方式的方法训练得到的神经网络语言模型将上述语音识别为文本句。
如图4所示,在步骤s401,输入待识别的语音。待识别的语音可以是任何语音,本发明对此没有任何限制。
接着,在步骤s405,利用声学模型和由上述训练神经网络语言模型的方法训练得到的神经网络语言模型将上述语音识别为文本句。
对语音进行识别的过程中,需要使用声学模型和语言模型。在本实施方式中,语言模型是使用上述训练神经网络语言模型的方法训练得到的神经网络语言模型,声学模型可以是本领域知晓的任何声学模型,可以是神经网络声学模型,也可以是其他类型的声学模型。
在本实施方式中,利用声学模型和神经网络语言模型对待识别的语音进行识别的方法,是本领域知晓的任何方法,在此不再赘述。
通过上述语音识别方法,通过使用由上述方法训练得到的神经网络语言模型进行识别,能够提高语音识别的精度。
<训练神经网络语言模型的装置>
图5是在同一发明构思下的根据本发明的另一个实施方式的训练神经网络语言模型的装置的框图。下面就结合该图,对本实施方式进行描述。对于那些与前面实施方式相同的部分,适当省略其说明。
如图5所示,本实施方式的训练神经网络语言模型的装置500包括:计算单元501,其基于训练语料10,计算n元条目的概率,得到概率分布文件30;和训练单元505,其基于上述n元条目及其概率,训练上述神经网络语言模型。
在本实施方式中,训练语料10是进行了分词的语料。n元条目(n-gramentry)是指n元词序列(n-gramwordsequence),例如当n为4时,n元条目为“w1w2w3w4”。n元条目的概率是指在前n-1个词的词序列已知的情况下,出现第n个词的概率。例如,当n为4时,4元条目“w1w2w3w4”的概率是指在词序列“w1w2w3”已知的情况下,下一个词是w4的概率,通常表示为p(w4|w1w2w3)。
计算单元501基于训练语料10计算n元条目的概率的方法可以是本领域的技术人员公知的任何方法,本实施方式对此没有任何限制。
下面结合图6详细说明计算n元条目的概率的一个实例。图6是根据本发明的另一实施方式的训练神经网络语言模型的装置的一个实例的框图。
如图6所示,神经网络语言模型的装置600具有计数单元601,其基于训练语料10,对n元条目在训练语料10中出现的次数进行计数,即统计n元条目在训练语料10中出现的次数,得到词频文件20。在词频文件20中,如下记录了n元条目及其出现的次数。
abcd3
abce5
abcf2
...
计算单元605基于n元条目的出现次数,计算n元条目的概率,得到概率分布文件30。在概率分布文件30中,如下记录了n元条目及其概率。
p(d|abc)=0.3
p(e|abc)=0.5
p(f|abc)=0.2
...
计算单元605基于词频文件20计算n元条目的概率,即将词频文件20转换为概率分布文件30。计算单元605包括分组单元和归一化单元。
分组单元按照n元条目的输入对n元条目进行分组。n元条目中前n-1个词的词序列是神经网络语言模型的输入,上述例子中为“abc”。
归一化单元按每一组,对输出词的次数进行归一化而得到n元条目的概率。上述例子中,输入为“abc”的组中有3个n元条目,其输出词为“d”、“e”和“f”的次数分别为3、5和2,总次数为10词,进行归一化即可得到这3个n元条目的概率分别为0.3、0.5和0.2。对每个组进行归一化后即可以得到上述概率分布文件30。
如图5和6所示,训练单元505或训练单元610,基于上述n元条目及其概率,即基于概率分布文件30,训练神经网络语言模型。
下面参照图3详细说明基于概率分布文件30训练神经网络语言模型的过程。图3是根据本发明的一个实施方式的训练神经网络语言模型的过程的示意图。
如图3所示,将n元条目的前n-1个词的词序列输入神经网络语言模型300的输入层301,将输出词“d”、“e”和“f”及其概率0.3、0.5和0.2输入神经网络语言模型300的输出层303,作为训练目标,对神经网络语言模型300的参数进行调整来进行训练。如图3所示,神经网络语言模型300还具有隐藏层302。
本实施方式中,优选,基于最小交叉熵准则训练神经网络语言模型300,即使用最小交叉熵准则逐步缩小实际输出和训练目标之间的差距,直到模型收敛。
本实施方式的训练神经网络语言模型的装置,将原始训练语料10处理成为概率分布文件30,基于概率分布进行训练,加快了模型的训练速度,训练变得更加高效。
另外,本实施方式的训练神经网络语言模型的装置,提升了模型的性能,训练目标是全局最优化而不是局部最优化,因此模型的训练目标更加合理,分类的准确度也更高。
另外,本实施方式的训练神经网络语言模型的装置,实现简单,模型的训练改动很少,只是修正了训练的输入和输出数据,最终的模型输出没有变化,因此可以和现有的技术例如分布式训练兼容。
进而,优选,本实施方式的训练神经网络语言模型的装置还包括第1过滤单元,其在计数单元对n元条目在训练语料10中出现的次数进行计数之后,将出现次数低于预定阈值的n元条目过滤。
该优选方案的训练神经网络语言模型的装置,通过将出现次数低的n元条目过滤,实现了对原始训练语料的压缩,同时去除了训练语料的噪声,能够进一步提升模型的训练速度。
进而,优选,本实施方式的训练神经网络语言模型的装置还包括第2过滤单元,其在计算单元计算n元条目的概率之后,基于熵的准则对n元条目进行过滤。
该优选方案的训练神经网络语言模型的装置,通过基于熵的准则对n元条目进行过滤,能够进一步提升模型的训练速度。
<语音识别装置>
图7是在同一发明构思下的根据本发明的另一个实施方式的语音识别装置的框图。下面就结合该图,对本实施方式进行描述。对于那些与前面实施方式相同的部分,适当省略其说明。
如图7所示,本实施方式的语音识别装置700包括:语音输入单元701,其输入待识别的语音60;语音识别单元705,其利用声学模型和由上述训练神经网络语言模型的装置训练得到的神经网络语言模型将上述语音识别为文本句
在本实施方式中,语音输入单元701,输入待识别的语音。待识别的语音可以使任何语音,本发明对此没有任何限制。
语音识别单元705,利用声学模型和神经网络语言模型将上述语音识别为文本句。
对语音进行识别的过程中,需要使用声学模型和语言模型。在本实施方式中,语言模型是使用上述训练神经网络语言模型的方法训练得到的神经网络语言模型,声学模型可以是本领域知晓的任何声学模型,可以是神经网络声学模型,也可以是其他类型的声学模型。
在本实施方式中,利用声学模型和神经网络语言模型对待识别的语音进行识别的方法,是本领域知晓的任何方法,在此不再赘述。
本实施方式的语音识别装置700,通过使用由上述训练神经网络语言模型的装置训练得到的神经网络语言模型进行识别,能够提高语音识别的精度。
以上虽然通过一些示例性的实施方式详细地描述了本发明的训练神经网络语言模型的方法、训练神经网络语言模型的装置、语音识别方法以及语音识别装置,但是以上这些实施方式并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施方式,本发明的范围仅由所附权利要求为准。