重打分语言模型的打分方法及语音识别方法转让专利

申请号 : CN202011578010.5

文献号 : CN112735380B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 俞凯戴凌锋刘奇

申请人 : 思必驰科技股份有限公司

摘要 :

本发明公开一种重打分语言模型的打分方法,包括:预先训练基于类的语言模型作为重打分语言模型;确定待打分OOV词的分类;根据预设分类词表和词频信息确定待打分OOV词的参数信息;将参数信息输入至所述重打分语言模型;根据所述参数信息和所述重打分语言模型的输出确定所述待打分OOV词的概率。本发明预先训练得到了重打分语言模型,通过根据预设分类词表和词频信息确定待打分OOV词的参数信息并输入至训练好的重打分语言模型的方式确定待打分OOV词的概率,在无需利用特殊的UNK标记取代OOV词的情况下实现了重打分,彻底解决了词表不匹配的问题,能够提升语音识别的准确率。

权利要求 :

1.一种重打分语言模型的打分方法,包括:预先训练基于类的语言模型作为重打分语言模型;

确定待打分OOV词的分类;

根据预设分类词表和词频信息确定待打分OOV词的参数信息;

将参数信息输入至所述重打分语言模型;

根据所述参数信息和所述重打分语言模型的输出确定所述待打分OOV词的概率,其中,所述根据预设分类词表和词频信息确定待打分OOV词的参数信息包括:找到预设分类词表中所述待打分OOV词的对应的词分类;

根据属于所述词分类的其它词的参数确定所述待打分OOV词的参数信息。

2.根据权利要求1所述的方法,其特征在于,所述预先训练基于类的语言模型作为重打分语言模型包括:

从训练语料集中提取词表;

对所述词表进行分类处理得到分类词表;

基于所述训练语料集和所述分类词表训练重打分语言模型。

3.根据权利要求2所述的方法,其特征在于,所述对所述词表进行分类处理得到分类词表包括:

使用同义词知识库对所述词表中的词进行分类得到分类词表。

4.根据权利要求2或3所述的方法,其特征在于,所述对所述词表进行分类处理得到分类词表包括:

基于所述训练语料集采用word2vec训练语料训练词向量;

根据训练得到的词向量对所述词表中的词进行分类得到分类词表。

5.根据权利要求4所述的方法,其特征在于,根据训练得到的词向量对所述词表中的词进行分类得到分类词表包括:采用k‑means聚类算法根据训练得到的词向量对所述词表中的词进行分类得到分类词表。

6.一种语音识别方法,应用于语音识别系统,其特征在于,所述语音识别系统包括声学模型、第一路语言模型和第二路语言模型,所述第二路语言模型为权利要求1‑5中任一项中所述的重打分语言模型,所述方法包括:将采集的声学特征输入至所述声学模型得到相应的音素特征信息;

根据预设词典查询对应于所述音素特征信息的文本信息;

将所述文本信息输入至所述第一路语言模型得到多个候选语句;

基于所述第二路语言模型采用权利要求1‑5中任一项所述的方法对所述多个候选语句进行重打分。

7.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑6中任意一项所述方法的步骤。

8.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1‑6中任意一项所述方法的步骤。

说明书 :

重打分语言模型的打分方法及语音识别方法

技术领域

[0001] 本发明涉及语音识别技术领域,尤其涉及一种重打分语言模型的打分方法及语音识别方法。

背景技术

[0002] 自动语音识别技术(Automatic Speech Recognition,ASR)是一种将人的语音转换为文本的技术。主流的ASR系统一般包含第一路语言模型和第二路语言模型,其中第一路
语言模型通常来说是基于N‑gram的统计语言模型,而第二路语言模型通常采用神经网络语
言模型。
[0003] 识别的过程一般是:第一路语言模型首先解码出最佳的N个句子,然后把这些句子交给第二路语言模型进行重打分。因为第二路路语言模型会修正第一路语言模型的打分,
使总体的打分更加准确,以此提升ASR系统的识别准确性。
[0004] 一般来说,第二路语言模型的训练语料和第一路语言模型不同,这就导致两者的词表存在差异,也就是词表不匹配问题。词表的不匹配会使得第一路语言模型的输出中包
含了第二路语言模型词表之外的词(out‑of‑vocabulary,OOV词)。但是为包含OOV词的句子
打分一直是各种语言模型的短板。一般来说,训练语言模型时会用一个特殊的UNK标记取代
所有的OOV词,但是这种方法并不能真正解决词表不匹配的问题。所以这种词表不匹配问题
会损害第二路语言模型的性能,也就会损害ASR系统的识别准确性。极端情况下,第二路语
言模型的打分效果甚至不如只用第一路语言模型。
[0005] 有一些方法会将识别过程中第二路语言模型可能遇到的OOV词加入词表,但是这种添加需要额外的语料,并且添加方式需要重新训练语言模型,比较繁琐。

发明内容

[0006] 本发明实施例提供一种重打分语言模型的打分方法及语音识别方法,用于至少解决上述技术问题之一。
[0007] 第一方面,本发明实施例提供一种重打分语言模型的打分方法,包括:
[0008] 预先训练基于类的语言模型作为重打分语言模型;
[0009] 确定待打分OOV词的分类;
[0010] 根据预设分类词表和词频信息确定待打分OOV词的参数信息;
[0011] 将参数信息输入至所述重打分语言模型;
[0012] 根据所述参数信息和所述重打分语言模型的输出确定所述待打分OOV词的概率。
[0013] 第二方面,本发明实施例提供一种语音识别方法,应用于语音识别系统,其特征在于,所述语音识别系统包括声学模型、第一路语言模型和第二路语言模型,所述第二路语言
模型为本发明任一实施例中所述的重打分语言模型,所述方法包括:
[0014] 将采集的声学特征输入至所述声学模型得到相应的音素特征信息;
[0015] 根据预设词典查询对应于所述音素特征信息的文本信息;
[0016] 将所述文本信息输入至所述第一路语言模型得到多个候选语句;
[0017] 基于所述第二路语言模型采用本发明任一实施例中所述的重打分语言模型的打分方法对所述多个候选语句进行重打分。
[0018] 第三方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者
网络设备等)读取并执行,以用于执行本发明上述任一项重打分语言模型的打分方法。
[0019] 第四方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所
述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项
重打分语言模型的打分方法。
[0020] 第五方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算
机执行时,使所述计算机执行上述任一项重打分语言模型的打分方法。
[0021] 本发明实施例的有益效果在于:预先训练得到了重打分语言模型,通过根据预设分类词表和词频信息确定待打分OOV词的参数信息并输入至训练好的重打分语言模型的方
式确定待打分OOV词的概率,在无需利用特殊的UNK标记取代OOV词的情况下实现了重打分,
彻底解决了词表不匹配的问题,能够提升语音识别的准确率。

附图说明

[0022] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域
普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023] 图1为本发明的重打分语言模型的打分方法的一实施例的流程图;
[0024] 图2为本发明的重打分语言模型的打分方法的另一实施例的流程图;
[0025] 图3为本发明中训练重打分语言模型的一实施例的流程图;
[0026] 图4为本发明中训练重打分语言模型的另一实施例的流程图;
[0027] 图5为本发明的重打分语言模型的打分方法的一实施例的流程图;
[0028] 图6为本发明的重打分语言模型的打分方法的一实施例的流程图;
[0029] 图7为本发明的语音识别方法的一实施例的流程图;
[0030] 图8为第语言模型和第语言模型的词汇表之间存在三种可能的关系的示意图;
[0031] 图9为具有“Linear‑Softmax”的子网络的结构图;
[0032] 图10为查找OOV单词类别的过程的示意图;
[0033] 图11为本发明的电子设备的一实施例的结构示意图。

具体实施方式

[0034] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0036] 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元
件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由
通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以
位于包括存储设备在内的本地和远程计算机存储介质中。
[0037] 在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理
器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上
的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程
中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各
种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与
本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互
的数据的信号通过本地和/或远程过程来进行通信。
[0038] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而
且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有
的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要
素的过程、方法、物品或者设备中还存在另外的相同要素。
[0039] 如图1所示,本发明的实施例提供一种重打分语言模型的打分方法,包括:
[0040] S10、预先训练基于类的语言模型作为重打分语言模型;
[0041] S20、确定待打分OOV词的分类;
[0042] S30、根据预设分类词表和词频信息确定待打分OOV词的参数信息;
[0043] S40、将参数信息输入至所述重打分语言模型;
[0044] S50、根据所述参数信息和所述重打分语言模型的输出确定所述待打分OOV词的概率。
[0045] 本发明实施例中,预先训练得到了重打分语言模型,通过根据预设分类词表和词频信息确定待打分OOV词的参数信息并输入至训练好的重打分语言模型的方式确定待打分
OOV词的概率,在无需利用特殊的UNK标记取代OOV词的情况下实现了重打分,彻底解决了词
表不匹配的问题,能够提升语音识别的准确率。
[0046] 如图2所示为本发明的重打分语言模型的打分方法的另一实施例的流程图。在该实施例中,预先训练基于类的语言模型作为重打分语言模型包括:
[0047] S11、从训练语料集中提取词表;
[0048] S12、对所述词表进行分类处理得到分类词表;
[0049] S13、基于所述训练语料集和所述分类词表训练重打分语言模型。
[0050] 在一些实施例中,对所述词表进行分类处理得到分类词表包括:使用同义词知识库对所述词表中的词进行分类得到分类词表。
[0051] 在一些实施例中,对所述词表进行分类处理得到分类词表包括:基于所述第一训练语料集采用word2vec训练语料训练词向量;根据训练得到的词向量对所述词表中的词进
行分类得到分类词表。示例性地,采用k‑means聚类算法根据训练得到的词向量对所述词表
中的词进行分类得到分类词表。
[0052] 在一些实施例中,根据预设分类词表和词频信息确定待打分OOV词的参数信息包括:找到预设分类词表中所述待打分OOV词的对应的词分类;根据属于所述词分类的其它词
的参数确定所述待打分OOV词的参数信息。
[0053] 在一些实施例中,根据属于所述词分类的其它词的参数确定所述待打分OOV词的参数信息包括:获取属于所述词分类的其它词的词频和参数;利用属于所述词分类的其它
词的参数按照相应词的词频倒数加权平均确定所述待打分OOV词的参数信息。
[0054] 本发明的方法会分别通过知识驱动和数据驱动的方法,给OOV词分配合适的参数并估计OOV词的概率。
[0055] 如图3所示,为本发明中训练重打分语言模型的一实施例的流程图,该实施例为知识驱动的训练方法的流程图,包括以下步骤:
[0056] ①、从训练语料中提取词表;
[0057] ②、使用同义词知识库(同义词词林)对词表中的词进行知识驱动的分类;
[0058] ③、获得分类后的词表,该分类的结果作为“基于类的语言模型”的类别;
[0059] ④、训练基于类的语言模型;
[0060] ⑤、获得训练后的语言模型。
[0061] 如图4所示,为本发明中训练重打分语言模型的另一实施例的流程图,该实施例为数据驱动的训练方法的流程图,包括以下步骤:
[0062] ①、从训练语料中提取词表;
[0063] ②、利用训练语料,对词表进行数据驱动的分类;具体来说,首先利用word2vec训练语料训练词向量,然后使用k‑means聚类算法获得分类;
[0064] ③、获得分类后的词表,该分类的结果作为“基于类的语言模型”的类别;
[0065] ④、训练基于类的语言模型;
[0066] ⑤、获得训练后的语言模型。
[0067] 在进行语言模型重打分时,遇到的OOV词也会使用知识驱动和数据驱动两种方法进行处理。
[0068] 如图5所示,为本发明的重打分语言模型的打分方法的一实施例的流程图,该实施例为知识驱动的训练方法的流程图,包括以下步骤:
[0069] ①、使用知识驱动的分类方法对OOV词进行分类;
[0070] ②、获得OOV词的分类结果;
[0071] ③、找到分类词表中对应的类,利用类中其他词的参数按照词频倒数加权平均,估算OOV词的参数;
[0072] ④、获得OOV词的参数;
[0073] ⑤、将参数添加到基于类的语言模型中;该步骤可忽略;
[0074] ⑥、利用基于类的语言模型和OOV词的参数估计其概率;
[0075] ⑦、获得OOV词的概率。
[0076] 如图6所示,为本发明的重打分语言模型的打分方法的一实施例的流程图,该实施例为数据驱动的训练方法的流程图,包括以下步骤:
[0077] ①、由于基于类的语言模型可以根据历史词信息推测当前词可能属于的类,因此假定当前OOV词的类别就是语言模型认为概率最大的类;
[0078] ②、获得OOV词的分类结果;
[0079] ③、找到分类词表中对应的类,利用类中其他词的参数按照词频倒数加权平均,估算OOV词的参数;
[0080] ④、获得OOV词的参数;
[0081] ⑤、将参数添加到基于类的语言模型中;该步骤可忽略;
[0082] ⑥、利用基于类的语言模型和OOV词的参数估计其概率;
[0083] ⑦、获得OOV词的概率。
[0084] 本发明实施例中,把OOV词(在ASR词表中,却不在重打分NNLM词表中的词)分配给训练后的NNLM中的类,并用该类的概率作为OOV词的概率。实验结果表明,基于类的重打分
语言模型能显著降低因词表不匹配问题导致的性能损失。
[0085] 如图7所示为本发明的语音识别方法的一实施例的流程图,该方法应用于语音识别系统,该语音识别系统包括声学模型、第一路语言模型和第二路语言模型,第二路语言模
型为本发明前述任一实施例中所述的重打分语言模型,该方法包括:
[0086] S71、将采集的声学特征输入至所述声学模型得到相应的音素特征信息;
[0087] S72、根据预设词典查询对应于所述音素特征信息的文本信息;
[0088] S73、将所述文本信息输入至所述第一路语言模型得到多个候选语句;
[0089] S74、基于所述第二路语言模型采用本发明任一实施例中所述的重打分语言模型的打分方法对所述多个候选语句进行重打分。
[0090] 本发明实施例中,预先训练得到了重打分语言模型,通过根据预设分类词表和词频信息确定待打分OOV词的参数信息并输入至训练好的重打分语言模型的方式确定待打分
OOV词的概率,在无需利用特殊的UNK标记取代OOV词的情况下实现了重打分,彻底解决了词
表不匹配的问题,提升语音识别的准确率。
[0091] 为更加清楚的介绍本发明的技术方案,也为更直接地证明本发明的可实时性以及相对于现有技术的有益性,以下将对本发明的技术背景、技术方案以及所进行的实验等进
行更为详细的介绍。
[0092] 1、介绍
[0093] 用于计算给定句子概率的语言模型已在许多领域广泛使用,包括机器翻译,视频字幕和语音识别。n‑gram语言模型已在传统的HMM混合ASR系统中使用了数十年。但是,n‑
gram语言模型只能从有限长度的单词历史中检索信息,这不适用于大词汇量连续语音识
别。随着递归神经网络特别是长短期记忆(LSTM)的发展,与n‑gram语言模型相比,NNLM取得
了更好的结果。由于解码器在ASR系统中的局限性,NNLM很难直接用作ASR解码中的第一遍
模型,但可以用作提高ASR系统性能的第二遍记录模型。目前,由于其良好的效果,记录已成
为ASR系统不可或缺的阶段。
[0094] 但是,评分NNLM的应用尚缺乏研究。许多研究致力于在可比的ASR框架下使语言模型更准确,但是很少有研究集中在词汇失配问题上。通常,NNLM是与语料库中的ASR系统分
开训练的,从而导致NNLM和ASR系统的词汇表之间不匹配。
[0095] 如图8所示为第语言模型和第语言模型的词汇表之间存在三种可能的关系的示意图。图8说明了ASR系统的词汇表和评分的NNLM之间的三种可能关系,第一和第二种关系将
导致上述现象。通常,第二种关系是最常见的。在下面的描述中,我们在ASR系统中将该词称
为OOV词,但未包含在相应的NNLM中。由于两个语料(或词汇)的域不匹配,因此ASR系统将识
别出包含OOV单词的n个最佳句子,从而使NNLM对这些句子进行不准确的评分。OOV单词的不
同组合会严重干扰重新评分语言模型的判断,从而导致性能下降。在极端情况下,评分结果
可能会比基本预测差。
[0096] 在本文中,我们提出了一种新颖的方法来解决NNLM评分中的OOV单词问题。如果可以找到OOV单词的同义词,则可以使用这些同义词的参数来近似OOV单词的参数。首先,我们
采用知识驱动和数据驱动的方法对核查NNLM的词汇进行分类;其次,训练具有基于类的
softmax输出层的NNLM。第三,为每个词汇单词(相应的NNLM的ASR系统输出中的未知单词,
简称OOV单词)分配一个适当的类别。最后,我们将在相应类中使用单词的参数来预测OOV单
词的参数,并使用新计算出的参数对句子评分。实验表明,我们的方法可以大大减少NNLM记
录过程中词汇不匹配问题的性能下降。
[0097] 2、基于类的NNLM
[0098] 语言模型通过将W分解为一系列条件概率乘积对句子的概率进行建模。其中,W=w1,w2,…,wm;。
[0099]
[0100] 具有基于类的softmax(简称为基于类的NNLM)的NNLM使用以下形式对条件概率进行建模:
[0101]
[0102] 其中,wi表示句子中的第i个词,W1:i‑1表示wi的历史信息:w1,w2,…,wi‑1,Cwi是wi的类。
[0103] 因此,我们需要计算两个条件概率:当前类别Cwi的概率和给定当前类别Cwi并具有历史信息的当前单词wi的概率。由于NNLM隐藏层输出h包含历史信息,因此公式2中的两个
概率可以分别由h和两个子网表示。每个子网均具有“Linear‑Softmax”结构。如图9所示为
具有“Linear‑Softmax”的子网络的结构图。
[0104] 在相关现有技术中,具有相似频率的单词将被映射到同一类中。但是,从理论上讲,如果同一类别中的单词具有相似的属性,则该模型可以获得更好的性能。因此,我们同
时使用知识驱动和数据驱动方法来确定NNLM的类别。
[0105] 3、分类方法
[0106] 3.1、知识驱动的分类方法
[0107] 使用额外的语义知识可以提高许多任务的性能,包括单词分类。幸运的是,一些数据库使用语义知识来组织单词。我们可以借助这些数据库对单词进行分类。
[0108] 最受欢迎的中文知识数据库之一称为“同义词词林”(现在开始称为词林),它是最大深度为5(假设根节点深度为0)的n元树。词林的每个非叶子节点都代表一个类,其中包含
相似的单词,而子节点对父节点进行了更详细的划分。即,随着深度的增加,节点内单词的
相似度变得更强。由于词林已经对常用词进行了合理分类,因此我们可以在词林的帮助下
组织词汇。
[0109] 因为词林中的单词是固定的,所以我们利用单词的形态特征对不在词林中出现的单词进行分类。自然地,大约有3,000个主要字符,但是有成千上万个常用单词。换句话说,
大多数单词由多个字符组成。因此,我们可以将一个单词分解为一个子单词集,该子集可用
于查找该单词的可组装类。在判断新单词的类别时,我们可以利用词林的结构特征。由于同
一类别中的单词相似,因此我们可以将词林节点的相似度用作词林中单词的相似度。首先,
我们使用信息内容(IC)来描述节点u中包含的信息量:
[0110]
[0111] 其中,hypo(u)表示节点u下方的下位节点的数量,hypo(root)+1等于词林中所有节点的数量。我们可以看到,节点越深,IC的价值就越大。特别是,当u是叶节点时,IC(u)等
于1,当u是根节点时,IC(u)等于0。从另一个角度看,IC反映了该节点的特异性。
[0112] 考虑词林中的两个节点u和v,它们到根节点的路径必须在某个节点a处相交。我们将此交点称为u和v的最后一个共同祖先(LCA),表示为LCA(u,v)。由于词林的性质,相交节
点包含两个节点的信息,因此IC(a)可以视为它们之间的公共性。因此,我们通过以下公式
计算两个节点之间的距离:
[0113] dis(u,v)=IC(u)+IC(v)‑2IC(LCA(u,v))  (4)
[0114] “距离”的相反概念是“相似性”。如果我们定义节点之间的相似度从0到1,我们可以将距离标准化,然后得到相似度公式:
[0115]
[0116] 其中,D是词林中节点的最大距离,这意味着两个节点的唯一祖先是根节点。由于IC的最大值为1,因此D为2。
[0117] 通过以上定义,我们可以对NNLM的词汇进行分类。首先,我们指定词林d的适当深度。深度为d的每个词林节点代表一个类。应当注意,d的值越大,末级的数量越多。然后根据
单词是否出现在词林中,将模型的词汇分为两类。对于词林中出现的单词,我们可以直接确
定其类别。对于未在词林中出现的单词,我们可以将其分解为子单词集并估计其类别。例
如,在词林中不出现的单词w具有子单词集S。我们可以使用公式6查找在语义上最接近S的
子节点。在公式6中,w′是w的子单词。而节点(w′)表示包含w′的词林节点。
[0118]
[0119] 假设初始节点是根节点。通过应用上述公式d次,我们可以获得最终节点vd,这意味着单词w将属于与vd对应的类。图10简要描述了该过程。
[0120] 如图10所示,为查找OOV单词类别的过程的示意图。在此示例中,搜索深度为3。其中,实线框节点对应于搜索路径。斜线填充框节点是参与比较的其他节点。虚线框中的节点
表示计算中不涉及的节点。
[0121] 3.2、数据驱动的分类方法
[0122] 基于知识的分类的优点是它只需要一个知识数据库和少量的计算就可以找到一个类。同时,该方法仅针对未包含在词林中的单词的词素特征,因此该方法不受上下文的影
响。但是,此方法需要一个额外的知识数据库,该数据库可能不适用于所有文本语料库。
[0123] 与知识驱动分类方法不同,数据驱动分类方法从大量文本中学习单词的语义表示。一种常见的方法是将语义信息嵌入到低维密集空间中,以便每个单词都有一个低维向
量来表示其语义。向量之间的距离可以反映单词之间的语义相似性。在这里,我们选择
word2vec作为提取语义的算法。
[0124] 在获得单词嵌入向量之后,可以根据这些单词嵌入向量对单词进行分类。我们首先确定类的数量,然后使用k均值聚类算法对向量进行聚类。由于word2vec已将相似的语义
词嵌入到相邻空间中,因此k‑means算法可以将这些相似的词分配给同一类。
[0125] 4、OOV单词分类和参数估计
[0126] 本部分将介绍使用基于类的NNLM来估计OOV单词参数并在记录阶段计算合理的概率。我们的策略包含三个重要步骤:
[0127] 1、在基于类的NNLM中估计OOV单词wOOV的类CwOOV;
[0128] 2、使用CwOOV中单词的参数估计wOOV的参数;
[0129] 3、使用新的估计参数计算wOOV的概率。
[0130] 4.1、OOV单词分类方法
[0131] 在第3节中,我们介绍了两种对单词进行分类的方法。知识驱动的分类方法讨论了如何处理OOV单词。该方法仅着眼于OOV词的形态特征,可在评分阶段轻松地用于对OOV词进
行分类。
[0132] 但是,数据驱动的分类方法需要附加语料库来确定单词信息。考虑到n个最佳句子包含许多错误,因此很难使用这些不确定的句子来确定OOV单词的类别。因此,我们决定使
用经过训练的基于班级的NNLM来选择OOV单词的班级。请注意,公式2中的P(Cwi|W1;i‑1)的计
算与当前单词无关。此外,训练有素的NNLM可以预测wi所属的类别。因此,我们可以选择最
有信心的类别作为wi的类别。那是:
[0133]
[0134] 4.2、OOV字参数估计
[0135] 在基于类的NNLM中,每个单词的参数包括嵌入层的参数和线性层的参数,后者与它所属的类别有关。假设与OOV单词wOOV对应的类为c,并且此类中有k个单词,我们可以对这
k个单词的参数进行加权,以获得wOOV的参数。LetWi表示单词wi的参数,然后:
[0136]
[0137] 其中,λi是wi的权重。
[0138] 如果c中每个单词的λ等于1,则估计参数是所有单词参数的算术平均值。尽管如此,OOV词的频率较低,我们应该调整权重,以使模型预测的OOV词的参数与当前类别中的低
频词相似。我们使用单词频率的倒数加一(防止被0错误除以)作为权重。设count(w)为单词
w在训练语料库中出现的次数,我们将权重定义为:
[0139]
[0140] 当训练过程结束时,所有参数都已固定,每个单词的频率也恒定,因此也确定了通过加权估计获得的参数。从高效计算的角度来看,我们可以预先计算每个类别的OOV单词参
数,避免在评分阶段重复估算,并提高评分速度。
[0141] 使用OOV参数WOOV,我们使用两种方法在计分过程中计算分数。第一个称为预测。当出现OOV词时,WOOV会临时添加到NNLM参数中,并计算当前OOV词的概率。然后将删除WOOV。该
预测方法可以使NNLM保持不变。第二个称为扩展。它将使用所有OOV词扩展NNLM的词汇表,
并使用估计的OOV词参数来填充嵌入层和最终线性层的参数。扩展方法可以扩展NNLM的词
汇,而无需重新训练。
[0142] 另一个更直接的方法是,对应类cwOOV中的某些单词w可以代替wOOV,即用w代替n个最佳句子中的wOOV。这种方法可以避免模型的修改,并且可以即时进行替换。我们选择与w频
率较低的同一类别的单词。此方法称为替换。
[0143] 5、实验
[0144] 实验中使用的ASR系统在AIShell数据集上进行训练,该数据集包含来自11个字段的178个小时的音频数据。基于评分类的NNLM在从CLMAD中选择的另一个数据集上进行训
练。我们从CLMAD的训练集中选择2127942个句子,这些句子不包含AIShell以外的单词,以
构成我们的训练集ST。ST包含41215个不同的单词。我们还选择8,000行来创建验证集SV。
[0145] 实验涉及四个词汇,其大小分别为20k,30k,40k和44k。通过从高到低对单词频率进行排序,然后选择频率最高的单词来获得前三个词汇。最后一个词汇称为oracle词汇,它
基于大小为40k的词汇,并添加了出现在AIShell中的其他单词。同时,我们还生成了另一个
训练数据SO,其中包含ST和AIShell中的所有句子。由于使用最后一个词汇在SO上训练的语
言模型不会出现词汇不匹配的问题,因此我们将此模型称为oracle NNLM,并认为该语言模
型的结果是我们实验的上限。表1显示了不同词汇表下的数据和OOV率的详细信息。
[0146] 表1.不同数据集的OOV率
[0147]
[0148] 所有的NNLM都有一个单层LSTM,其中单词向量维和隐藏层维为128。基于知识的分类方法将词林深度指定为2,对应于96个类。数据驱动分类方法中使用的word2vec算法是连
续词袋模型。word2vec的向量维数为128,窗口大小为5。同时,为防止因类数变化而产生不
可比的结果,k均值算法中的聚类也为96。
[0149] 我们首先让ASR系统输出50个最佳句子,然后使用基于类的NNLM重新评分,最后选择最佳句子作为整体输出结果。值得一提的是,未经记录的一遍解码结果的CER达到
12.27%。Oracle NNLM的性能明显更好,其CER为10.57%。由于很少有作品专注于在侦听阶
段解决OOV单词,因此我们使用最常见的方式,即使用UNK令牌作为基准的正常NNLM。基线
NNLM具有相同的配置,只是用标准的softmax输出层替换了基于类的softmax输出层。
[0150] 表2.CER(%)结果。以“知识”开头的行使用基于知识的方法显示结果。“数据”开头的行显示了使用基于数据的方法的结果。未经记录的1遍解码的CER为12.27%。
[0151]
[0152] 表2说明了使用知识驱动和数据驱动的OOV估算方法的CER结果。我们可以看到,使用小的词汇量会遇到严重的词汇失配问题,这将导致CER比首遍解码结果差。此外,未经任
何优化,基于类的NNLM的性能与普通NNLM相当。
[0153] 然而,得益于本文提出的方法,基于类的NNLM的评分结果得到了很大的改善。对于知识驱动的方法,替换方法可提供最佳结果。30k和40k词汇表的结果甚至接近oracle模型
结果。相对于基线,“词林预测”和“词林延伸”方法的改进尚不明显。我们分析说,某些类别
包含许多高频词,导致加权参数接近高频词。
[0154] 对于数据驱动方法,替换方法效果不佳,因为与知识驱动方法相比,OOV单词分类的准确性较低。但是,预测和扩展方法比知识驱动的方法提供更好的结果,尤其是对于小词
汇实验而言。因此,当缺乏可靠的知识库时,数据驱动方法仍然是正确的选择。
[0155] 6、结论与未来工作
[0156] 本文介绍了一个框架来很好地解决词汇不匹配OOV问题。我们首先使用知识驱动方法和数据驱动方法将词汇表分为几类。然后使用分类词汇训练基于类的NNLM。在记录阶
段,我们为每个OOV词分配一个适当的类别,并通过使用相应类别中的词来估计其参数,这
可以使OOV词具有更合理的概率。实验表明,即使NNLM词汇表与ASR系统词汇表之间的差距
很大,我们的方法也可以显着降低CER。未来的工作包括如何将知识与数据驱动方法相结合
以获得更好的结果。此外,我们在实验过程中发现了一种现象。ASR系统的词汇大部分是通
过分词工具获得的,词汇中可能包含不合理的词,这将导致奇怪的预测。同样,n个最佳句子
可能具有一些不错的替代结果,这些结果与基本事实并不相同,但在语法上是正确的。如何
处理这个问题是一个有趣的方向。
[0157] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为
依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知
悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明
所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部
分,可以参见其他实施例的相关描述。
[0158] 在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但
不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项重打
分语言模型的打分方法。
[0159] 在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指
令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项重打分语言模型的打
分方法。
[0160] 在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一
个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能
够执行重打分语言模型的打分方法。
[0161] 在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现重打分语言模型的打分方法。
[0162] 图11是本申请另一实施例提供的执行重打分语言模型的打分方法的电子设备的硬件结构示意图,如图11所示,该设备包括:
[0163] 一个或多个处理器1110以及存储器1120,图11中以一个处理器1110为例。
[0164] 执行重打分语言模型的打分方法的设备还可以包括:输入装置1130和输出装置1140。
[0165] 处理器1110、存储器1120、输入装置1130和输出装置1140可以通过总线或者其他方式连接,图11中以通过总线连接为例。
[0166] 存储器1120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的重打分语言模型的打分方
法对应的程序指令/模块。处理器1110通过运行存储在存储器1120中的非易失性软件程序、
指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例重
打分语言模型的打分方法。
[0167] 存储器1120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据重打分语言模型的打分装置
的使用所创建的数据等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易
失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一
些实施例中,存储器1120可选包括相对于处理器1110远程设置的存储器,这些远程存储器
可以通过网络连接至重打分语言模型的打分装置。上述网络的实例包括但不限于互联网、
企业内部网、局域网、移动通信网及其组合。
[0168] 输入装置1130可接收输入的数字或字符信息,以及产生与重打分语言模型的打分装置的用户设置以及功能控制有关的信号。输出装置1140可包括显示屏等显示设备。
[0169] 所述一个或者多个模块存储在所述存储器1120中,当被所述一个或者多个处理器1110执行时,执行上述任意方法实施例中的重打分语言模型的打分方法。
[0170] 上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
[0171] 本申请实施例的电子设备以多种形式存在,包括但不限于:
[0172] (1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低
端手机等。
[0173] (2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
[0174] (3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0175] (4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能
力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
[0176] (5)其他具有数据交互功能的电子装置。
[0177] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单
元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其
中的部分或者全部模块来实现本实施例方案的目的。
[0178] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术
方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机
软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以
使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者
实施例的某些部分所述的方法。
[0179] 最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和
范围。