1.本技术涉及语音识别技术领域,更具体的说,是涉及一种语音识别方法、装置、设备及存储介质。
背景技术:2.近年来,随着人工智能技术的飞速发展,越来越多的人工智能设备参与到普通大众的生活、工作中。而语音交互作为无接触、最自然的一种人机交互方式,广泛应用于各种人工智能设备中,搭建起人类与机器交流的桥梁。
3.目前,深度学习的语音识别技术已经日趋成熟,语音识别技术在很多场景下的识别率已经达到令人满意的效果,但是对于一些特定垂类下的语音识别,相较于通用的语音识别,通常会存在海量的稀疏实体词(简称稀疏词,又称专有名词),这些稀疏词在通用语音识别模型的训练过程中可能从未出现过,基于此模型无法识别这部分词汇,导致对于稀疏词的语音识别准确率很低。
技术实现要素:4.鉴于上述问题,提出了本技术以便提供一种语音识别方法、装置、设备及存储介质,以实现提升对稀疏词的语音识别准确率。具体方案如下:
5.在本技术的第一方面,提供了一种语音识别方法,包括:
6.获取待识别语音数据;
7.利用预训练的语音识别模型对所述待识别语音数据进行语音识别,得到识别结果;
8.其中,所述语音识别模型包括基于第一子词发音词典及第一分词结果训练的语言模型,所述第一分词结果包括:利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别,并对识别错误的稀疏词进行重新分词所得的分词结果,所述第一子词发音词典包括:识别错误的稀疏词重新分词后的分词结果与对应的音素序列。
9.其中可选的,基于第一子词发音词典及第一分词结果训练语言模型的过程,包括:
10.利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别;
11.对识别错误的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列;
12.利用重新分词后的分词结果及对应的音素序列,更新第一子词发音词典;
13.基于更新后的第一子词发音词典及对识别错误的稀疏词重新分词后的分词结果,对所述初始语言模型进行二次训练,得到训练后的语言模型。
14.其中可选的,所述对识别错误的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列,包括:
15.对识别错误的稀疏词,按照错误类型进行分类;
16.针对每一错误类型下的稀疏词,按照错误类型对应的分词方式进行重新分词,得
到重新分词后的分词结果及对应的音素序列。
17.其中可选的,所述错误类型包括替换错误;
18.针对替换错误类型下的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列的过程,包括:
19.计算稀疏词中发生替换错误的子词,与对应识别后子词的发音相似度;
20.若所述发音相似度超过设定相似度阈值,则将稀疏词中发生替换错误的子词与相邻子词进行合并,并将发生替换错误的子词与相邻子词的音素序列合并,得到稀疏词的重新分词结果及对应的音素序列。
21.其中可选的,若确定所述发音相似度不超过设定相似度阈值,该方法还包括:
22.将稀疏词作为重新分词后的一个整词,并将稀疏词的语音识别结果对应的发音音素序列作为整词的音素序列。
23.其中可选的,所述错误类型还包括删除错误和插入错误;
24.针对删除错误和插入错误类型下的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列的过程,包括:
25.判断稀疏词中发生删除错误或插入错误的子词,是否可以通过与相邻子词进行合并的方式,转换为替换错误类型;
26.若可以,则按照替换错误类型下稀疏词重新分词的处理方式进行处理;
27.若不可以,则将稀疏词作为重新分词后的一个整词,并将稀疏词的语音识别结果对应的发音音素序列作为整词的音素序列。
28.其中可选的,所述初始语言模型基于第二子词发音词典及第二分词结果训练得到,所述第二分词结果包括:基于所述第二子词发音词典包含的子词对稀疏词集中各稀疏词进行分词后的分词结果,所述第二子词发音词典包括多个子词及每一子词对应的音素序列,所述第二子词发音词典满足,在被用于对通用词进行分词时,分词后的各子词的音素序列能够组合恢复出通用词的音素序列的条件。
29.其中可选的,所述第二子词发音词典的确定过程,包括:
30.基于通用词的发音词典,获取通用词的音素序列;
31.迭代更新子词发音词典,直至基于更新后的子词发音词典对所述通用词进行切分后所得到的各子词的音素序列能够组合恢复出所述通用词的音素序列为止,由所述更新后的子词发音词典作为第二子词发音词典。
32.其中可选的,迭代更新子词发音词典得到第二子词发音词典的过程,包括:
33.初始化子词发音词典;
34.基于所述子词发音词典,对通用词集中的通用词进行切分,得到每一通用词切分后的各子词,及各子词分别对应的音素序列;
35.针对每一通用词,判断切分后的各子词分别对应的音素序列中,是否存在一种子词的音素序列的组合能够恢复出所述通用词的音素序列;
36.若不存在,则确认当前通用词的切分失败,统计所述通用词集中切分失败的通用词占所有通用词的比值;
37.若所述比值超过设定阈值,则更新所述子词发音词典,并基于更新后的子词发音词典,返回执行所述对通用词集中的通用词进行切分的过程,直至通用词集中切分失败的
通用词占所有通用词的比值不超过所述设定阈值为止,由最新一次更新后的子词发音词典作为第二子词发音词典。
38.其中可选的,在判断所述比值超过设定阈值时,更新所述子词发音词典的过程,包括:
39.对于切分失败的通用词,判断其切分后的各子词中是否存在不发音的子词;
40.若是,则将不发音的子词合并到相邻的子词上,并记录合并后子词与其音素序列的对应关系;
41.若否,在记录的对应关系中筛选出现频率达到设定频率条件的目标对应关系,并将所述目标对应关系添加到子词发音词典中。
42.其中可选的,所述记录合并后子词与其音素序列的对应关系,包括:
43.将合并后子词中除不发音的子词之外的其它子词的音素序列,作为所述合并后子词的音素序列,并记录合并后子词与音素序列的对应关系。
44.其中可选的,在判断通用词集中切分失败的通用词占所有通用词的比值不超过所述设定阈值时,该方法还包括:
45.对于最新一次更新后的子词发音词典中的各子词,统计各子词在所有切分成功的通用词中的共现频率;
46.将共现频率超过设定频率阈值的共现子词合并,得到合并子词;
47.基于所述最新一次更新后的子词发音词典中,共现子词的音素序列,确定合并子词对应的音素序列;
48.将所述合并子词及对应的音素序列添加到最新一次更新后的子词发音词典中,得到第二子词发音词典。
49.本技术的第二方面,提供了一种语音识别装置,包括:
50.语音数据获取单元,用于获取待识别语音数据;
51.模型识别单元,用于利用预训练的语音识别模型对所述待识别语音数据进行语音识别,得到识别结果;
52.其中,所述语音识别模型包括基于第一子词发音词典及第一分词结果训练的语言模型,所述第一分词结果包括:利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别,并对识别错误的稀疏词进行重新分词所得的分词结果,所述第一子词发音词典包括:识别错误的稀疏词重新分词后的分词结果与对应的音素序列。
53.本技术的第三方面,提供了一种语音识别设备,包括:存储器和处理器;
54.所述存储器,用于存储程序;
55.所述处理器,用于执行所述程序,实现如上所述的语音识别方法的各个步骤。
56.本技术的第四方面,提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的语音识别方法的各个步骤。
57.借由上述技术方案,本技术对待识别语音数据进行语音识别所使用的语音识别模型包含有语言模型,该语言模型是基于第一子词发音词典及第一分词结果所训练得到,该第一分词结果包括了利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别,并对识别错误的稀疏词进行重新分词所得的分词结果,该第一子词发音词典包括识别错误的稀疏词重新分词后的分词结果与对应的音素序列。由此可见,本技术通过对包含稀
疏词的语音进行识别并找出识别错误的稀疏词,该识别错误主要是由于按照现有子词发音词典对稀疏词进行分词时出现分词错误,分词后各子词的音素序列也出错,进而导致对稀疏词的识别错误,为此,本技术对识别错误的稀疏词进行了重新分词,并将重新分词后的分词结果及对应的音素序列添加到第一子词发音词典中,后续基于该第一子词发音词典及识别错误的稀疏词的重新分词结果,即可训练得到一个较好的语言模型,训练后的语言模型相比于初始语言模型能够对稀疏词进行正确分词及发音预测,进而利用包含该训练后的语言模型的语音识别模型,能够对包含稀疏词的待识别语音数据进行正确的语音识别,提升稀疏词的语音识别准确率。
附图说明
58.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
59.图1为本技术实施例提供的一种语音识别方法流程示意图;
60.图2为本技术实施例提供的一种语言模型训练过程示意图;
61.图3为本技术实施例提供的一种第二子词发音词典确定方法流程示意图;
62.图4为本技术实施例提供的一种子词发音词典的迭代更新过程示意图;
63.图5为本技术实施例公开的一种语音识别装置结构示意图;
64.图6为本技术实施例提供的语音识别设备的结构示意图。
具体实施方式
65.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
66.现有的语音识别技术一般都是针对通用场景进行优化,而面对一些特殊场景,例如音乐等垂类场景,识别效果一般要差于通用场景。这是因为,垂类场景下的语音内容通常具有一定的垂类特性,所涉及的实体词汇在通用场景下出现的概率较低,又称为稀疏词。模型训练所用的词典对此类稀疏词的覆盖度较差,且稀疏词一般存在发音预测不准的问题。
67.为了解决现有语音识别技术对包含稀疏词的语音识别准确率不高的问题,本技术对识别错误的稀疏词进行重新分词,并将重新分词后的分词结果及对应的音素序列添加到子词发音词典中,后续基于该子词发音词典及识别错误的稀疏词的重新分词结果,即可训练得到一个较好的语言模型,训练后的语言模型相比于初始语言模型能够对稀疏词进行正确分词及发音预测,进而利用包含该训练后的语言模型的语音识别模型,能够对包含稀疏词的待识别语音数据进行正确的语音识别,提升稀疏词的语音识别准确率。
68.本技术方案可以基于具备数据处理能力的终端实现,该终端可以是手机、电脑、服务器、云端等。
69.接下来,结合图1所述,本技术的语音识别方法可以包括如下步骤:
70.步骤s100、获取待识别语音数据。
71.具体地,待识别语音数据可以是语音识别场景下所需进行语音识别的数据。这里,语音识别场景可以是通用场景也可以是特定垂类场景。当待识别语音数据为特定垂类场景下的语音数据时,该待识别语音数据可能会包含垂类场景下的稀疏词。
72.步骤s110、利用优化的语音识别模型对所述待识别语音数据进行语音识别,得到识别结果。
73.具体地,本技术实施例中预先训练有优化的语音识别模型,该语音识别模型所包含的语言模型基于第一子词发音词典及第一分词结果训练得到。
74.其中,第一分词结果可以包括:利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别,并对识别错误的稀疏词进行重新分词所得的分词结果。
75.这里,初始语言模型可以是采用现有的语言模型或者是其它改进后的语言模型。包含稀疏词的语音可以是通过语音合成或录制的包含稀疏词的语音数据。通过利用包含初始语言模型的语音识别模型对包含稀疏词的语音进行识别,可以得到语音识别结果。语音识别结果中包含了对稀疏词的识别结果,若确定稀疏词的识别结果错误,说明初始语言模型按照现有子词发音词典对稀疏词进行分词时出现分词错误,分词后各子词的音素序列也出错,进而导致对稀疏词的识别错误。为此,本步骤中可以对识别错误的稀疏词进行重新分词,重新分词结果加入第一分词结果中。
76.进一步地,还可以将识别错误的稀疏词的重新分词结果及对应的音素序列添加到第一子词发音词典中,也即,第一子词发音词典可以包括:识别错误的稀疏词重新分词后的分词结果与对应的音素序列。
77.在此基础上,基于该第一子词发音词典及第一分词结果,即可训练得到一个较好的语言模型,训练后的语言模型相比于初始语言模型能够对稀疏词进行正确分词及发音预测,进而利用包含该训练后的语言模型的语音识别模型,能够对包含稀疏词的待识别语音数据进行正确的语音识别,提升稀疏词的语音识别准确率。
78.上述介绍了对待识别语音数据进行语音识别的语音识别模型包含有语言模型,该语言模型基于第一子词发音词典及第一分词结果训练得到。
79.在本技术的一些实施例中,对基于第一子词发音词典及第一分词结果训练得到语言模型的过程进行介绍,参见图2,图2示例了一种语言模型的训练过程示意图,如图2所示,训练过程可以包括如下步骤:
80.步骤s200、利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别。
81.步骤s210、对识别错误的稀疏词重新分词,得到重新分词后的分词结果及对应的音素序列。
82.具体地,语音识别模型对包含稀疏词的语音进行识别后,可能会出现稀疏词识别错误的情况,对于识别错误的稀疏词,可以重新分词得到分词结果及对应的音素序列。
83.对于识别错误的稀疏词重新分词的过程,可以参考如下方式实现:
84.s1、针对识别错误的稀疏词,按照预设的错误类型进行分类。
85.稀疏词的识别错误类型可以有多种,如替换错误、删除错误、插入错误等。其中,替换错误是指稀疏词的识别结果中,将稀疏词中的部分子词替换为其它子词。删除错误是指稀疏词的识别结果中,将稀疏词中的部分子词删除。插入错误是指稀疏词的识别结果中,插
入了除稀疏词外的其它子词。
86.以稀疏词为“hello”为例,若识别结果为“gello”,则可以确认出现了替换错误,具体地,将“h”替换为“g”。若识别结果为“hllo”,则可以确认出现了删除错误,具体地,将“e”删除了。若识别结果为“hexllo”,则可以确认出现了插入错误,具体地,插入了多余子词“x”。
87.s2、针对每一错误类型下的稀疏词,按照错误类型对应的分词方式进行重新分词,得到重新分词后的分词结果及对应的音素序列。
88.具体地,对于每一种错误类型,本技术可以预先配置对应的重新分词方式。进一步地,在上述步骤得到每一错误类型下的稀疏词后,按照稀疏词的错误类型所对应的重新分词方式,对稀疏词进行重新分词,得到稀疏词的重新分词结果及对应的音素序列。
89.其中,对于每一错误类型的稀疏词的重新分词方式,下文进行详细阐述。
90.步骤s220、利用重新分词后的分词结果及对应的音素序列,更新第一子词发音词典。
91.具体地,可以将稀疏词重新分词后的分词结果及对应的音素序列,添加到第一子词发音词典中。
92.步骤s230、基于更新后的第一子词发音词典及对识别错误的稀疏词重新分词后的分词结果,对所述初始语言模型进行二次训练,得到训练后的语言模型。
93.具体地,更新后的第一子词发音词典中包含了识别错误的稀疏词的重新分词结果及对应的音素序列,进而基于该第一子词发音词典及对识别错误的稀疏词重新分词后的分词结果,即可训练得到一个较好的语言模型,训练后的语言模型相比于初始语言模型能够对稀疏词进行正确分词及发音预测,进而利用包含该训练后的语言模型的语音识别模型,能够对包含稀疏词的待识别语音数据进行正确的语音识别,提升稀疏词的语音识别准确率。
94.在本技术的一些实施例中,分别介绍稀疏词发生替换错误、删除错误、插入错误时,对稀疏词重新分词的过程。
95.1、稀疏词发生替换错误:
96.针对替换错误类型下的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列的过程,可以包括:
97.s1、计算稀疏词中发生替换错误的子词,与对应识别后子词的发音相似度。
98.具体地,稀疏词中发生替换错误的子词,与对应识别后子词的发音相似度可以通过发音序列编辑距离来衡量。
99.s2、若所述发音相似度超过设定相似度阈值,则将稀疏词中发生替换错误的子词与相邻子词进行合并,并将发生替换错误的子词与相邻子词的音素序列合并,得到稀疏词的重新分词结果及对应的音素序列。
100.具体地,若稀疏词中发生替换错误的子词,与对应识别后子词的发音相似度超过设定相似度阈值,则可以认为发生替换错误的子词建模颗粒度过细,导致语言模型无法完整记录整个单词的信息。因此,针对这种情况,本技术可以将稀疏词中发生替换错误的子词与相邻子词进行合并,并将发生替换错误的子词与相邻子词的音素序列合并,得到稀疏词的重新分词结果及对应的音素序列。
101.可以理解的是,在将稀疏词中发生替换错误的子词与相邻子词进行合并时,若发生替换错误的子词为稀疏词的首个子词,则可以将其与后一个相邻子词进行合并。若发生替换错误的子词为稀疏词的最后一个子词,则可以将其与前一个相邻子词进行合并。若发生替换错误的子词为稀疏词的中间子词,则可以将其与前一相邻和/或后一个相邻子词进行合并。
102.通过将发生替换错误的子词与相邻子词进行合并,增大子词建模颗粒度,以使得语言模型能够完整记录整个单词的信息。
103.s3、若所述发音相似度不超过设定相似度阈值,将稀疏词作为重新分词后的一个整词,并将稀疏词的语音识别结果对应的发音音素序列作为整词的音素序列。
104.具体地,若稀疏词中发生替换错误的子词,与对应识别后子词的发音相似度不超过设定相似度阈值,则可以认为稀疏词的整词发音预测有误,因此可以将稀疏词作为一个整词,将稀疏词的语音识别结果对应的发音音素序列作为整词的音素序列。
105.示例如,对于大写字母“x”,发音预测工具对该整词“x”所预测的发音为/eks/,但是它经常在书名等实体里表示罗马字母“十”,因此对于“x”所在的语音,语音识别模型的识别结果可能就是/ten/的发音,这种发音相似度很低不超过设定相似度阈值的情况,本技术可以认为整词发音预测不全或不准,认为/ten/这个发音也是“x”的一个发音。因此,可以将“x”及其语音识别结果对应的发音音素序列/ten/加入到第一子词发音词典。
106.2、稀疏词发生删除错误和插入错误:
107.针对删除错误和插入错误类型下的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列的过程,可以包括:
108.s1、判断稀疏词中发生删除错误或插入错误的子词,是否可以通过与相邻子词进行合并的方式,转换为替换错误类型。
109.具体地,某些情况下子词的错误类型之间可以相互转换。以稀疏词为“hello”为例,若“he
‑
l
‑
lo”被识别为“he
‑
lo”,则可以认为发生了删除错误,即删除了子词
“‑
l”。通过将子词
“‑
l”与相邻子词
“‑
lo”合并,可以认为“he
‑
llo”被识别成“he
‑
lo”,也即认为可以转换为替换错误,即将
“‑
llo”替换成
“‑
lo”。
110.s2、若可以,则按照替换错误类型下稀疏词重新分词的处理方式进行处理。
111.具体地,替换错误类型下稀疏词重新分词的处理方式可以参照前文相关介绍,此处不再赘述。
112.s3、若不可以,则将稀疏词作为重新分词后的一个整词,并将稀疏词的语音识别结果对应的发音音素序列作为整词的音素序列。
113.具体地,若判断稀疏词中发生删除错误或插入错误的子词,不可以通过与相邻子词进行合并的方式转换为替换错误类型,则可以认为稀疏词整词发音预测有误,因此可以将稀疏词作为一个整词,将稀疏词的语音识别结果对应的发音音素序列作为整词的音素序列。
114.在上述实施例中介绍第一分词结果时,已经说明了其包括:利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别,并对识别错误的稀疏词进行重新分词所得的分词结果。
115.这里,初始语言模型可以是采用现有的语言模型或者是其它改进后的语言模型。
116.本技术的一些实施例中,介绍了一种改进后的语言模型。
117.本技术实施例中,可以根据通用词汇的发音词典,提取稳定的发音单元及其对应的可能发音,加入第二子词发音词典。
118.其中,稳定的发音单元表示,发音单元对应的发音有限并已知,且发音单元可以组合出设定数量的单词,发音单元的发音可以组合出单词的发音。其中,设定数量是一个预设的大数,其可以根据通用词汇的总数量来设定,如设定数量趋近于通用词汇总数量。
119.进一步,基于第二子词发音词典对稀疏词进行分词,利用分词结果及第二子词发音词典,训练得到改进后的初始语言模型。
120.基于上述介绍可知,初始语言模型可以是基于第二子词发音词典及第二分词结果训练得到,所述第二分词结果可以包括:基于所述第二子词发音词典包含的子词对稀疏词集中各稀疏词进行分词后的分词结果。
121.第二子词发音词典包括多个子词及每一子词对应的音素序列,第二子词发音词典满足,在被用于对通用词进行分词时,分词后的各子词的音素序列能够组合恢复出通用词的音素序列的条件。
122.本技术实施例中通过提取稳定的发音单元及其对应的发音音素序列,加入第二子词发音词典中,使得词典词汇量不超限的基础上,增加了第二子词发音词典的词汇量,进而使用该第二子词发音词典对稀疏词进行分词时的分词结果更加准确,基于稀疏词的准确的分词结果及第二子词发音词典,可以训练一个较优的初始语言模型。
123.在本技术的一些实施例中,对上述第二子词发音词典的确定过程进行详细说明。
124.参见图3,图3示例了一种第二子词发音词典的确定方法流程示意图,如图3所示,该方法可以包括:
125.步骤s300、基于通用词的发音词典,获取通用词的音素序列。
126.其中,通用词可以是通用场景下语音识别所用的训练词。本步骤中可以筛选高频通用词的发音词典,高频通用词可以是通用场景下语音识别所用的训练文本根据一定词频阈值筛选出的整词。
127.通用词的发音词典可以是使用发音预测工具对通用词进行整词发音预测所得的通用词
‑
音素序列对。发音预测工具可以是基于语言学知识或神经网络构建。
128.需要说明的是,发音预测工具只能够得到整词
‑
音素序列对,而无法获知整词中的每个子词对应的音素。
129.步骤s310、迭代更新子词发音词典,直至基于更新后的子词发音词典对所述通用词进行切分后所得到的各子词的音素序列能够组合恢复出所述通用词的音素序列为止,由所述更新后的子词发音词典作为第二子词发音词典。
130.具体地,本实施例中可以预先初始化一个子词发音词典,子词发音词典中包含有子词与对应的音素序列。通过迭代更新子词发音词典,每次更新后利用更新后的子词发音词典对通用词进行切分,判断切分后所得到的各子词的音素序列是否能够组合恢复出通用词的音素序列,若可以,则确认子词发音词典已经更新的比较优秀,可以由更新后的子词发音词典作为第二子词发音词典。
131.在本技术的一些实施例中,介绍了上述步骤s310,迭代更新子词发音词典的一种可选实现方式,如图4所示,子词发音词典的迭代更新过程可以包括如下步骤:
132.步骤s400、初始化子词发音词典。
133.其中,可以预先根据整词发音预测结果和语言学专家的经验,列出已知的子词的所有可能的发音音素序列,以英文识别为例,可以列出已知的每个字母对应的音素序列以及字母的组合所对应的音素序列,如字母a对应的音素序列可以包括/ei/、/aa/、/er/等。由列出的已知的子词的所有可能的发音音素序列组成初始化的子词发音词典。
134.步骤s410、基于子词发音词典,对通用词集中的通用词进行切分,得到每一通用词切分后的各子词,及各子词分别对应的音素序列。
135.具体地,在基于子词发音词典对通用词集中的通用词进行切分时,可以采用机械分词法进行分词,如前、后、双向最大匹配法等。除此之外,也可以采用morfessor(morfessor是一种基于形态学的分词器,使用的模型实质上是一个隐马尔可夫模型(hidden markov model,hmm),可观察序列是组成单词的字母序列,隐藏状态是单词的词素)、统计分词等算法。
136.步骤s420、统计所述通用词集中切分失败的通用词占所有通用词的比值。
137.具体地,针对每一通用词,判断切分后的各子词分别对应的音素序列中,是否存在一种子词的音素序列的组合能够恢复出所述通用词的音素序列,若不存在,则确认当前通用词的切分失败,并统计所述通用词集中切分失败的通用词占所有通用词的比值。若存在,则认为当前通用词的切分成功。
138.可以理解的是,若切分后的各子词分别对应的音素序列中,存在一种子词的音素序列的组合能够恢复出所述通用词的音素序列,则表明对通用词的切分是合理的,切分后的各子词属于稳定的发音单元。相反,若切分后的各子词分别对应的音素序列中,不存在一种子词的音素序列的组合能够恢复出所述通用词的音素序列,则可以认为对通用词的切分是不合理的。
139.步骤s430、判断所述比值是否超过设定阈值,若是,执行步骤s440,若否,执行步骤s450。
140.具体地,若切分失败的通用词占所有通用词总数的比值超过了设定阈值,表明大部分的通用词切分失败,也即当前的子词发音词典不够优秀,子词发音词典中子词元素覆盖度不够,需要进一步对子词发音词典进行更新,以增加子词发音词典的条目,因此执行下述步骤s440。相反,若切分失败的通用词占所有通用词总数的比值不超过设定阈值,则表明当前的子词发音词典已经足够优秀,可以将其作为第二子词发音词典,即执行下述步骤s450。
141.步骤s440、更新所述子词发音词典,并返回执行步骤s410。
142.具体地,基于更新后的子词发音词典,返回执行步骤s410,对通用词集中的通用词进行切分的过程,直至通用词集中切分失败的通用词占所有通用词的比值不超过所述设定阈值为止。
143.对于上述切分失败的通用词,一方面可能是由于通用词中的部分子词不发音导致的切分失败,另一方面可能是由于子词发音词典中的子词发音覆盖不全导致的切分失败。基于此,本实施例中提供了一种可选的子词发音词典的更新方式,具体可以包括:
144.s1、对于切分失败的通用词,判断其切分后的各子词中是否存在不发音的子词,若是,执行s2,若否,执行s3。
145.具体地,在判断切分后的各子词中是否存在不发音的子词时,可以按照设定规则进行判断,如进行发音序列的比对,来确定切分后的各子词中是否存在不发音的子词。
146.s2、将不发音的子词合并到相邻的子词上,并记录合并后子词与其音素序列的对应关系。
147.具体地,对于不发音的子词,其可以与前一相邻子词进行合并,或者是与后一相邻子词进行合并,并记录合并后子词与其音素序列的对应关系。其中,可以将与不发音子词进行合并的相邻子词的音素序列,作为合并后子词的音素序列,也即,将合并后子词中除不发音的子词之外的其它子词的音素序列,作为所述合并后子词的音素序列。
148.s3、在记录的对应关系中筛选出现频率达到设定频率条件的目标对应关系,并将所述目标对应关系添加到子词发音词典中。
149.具体地,对于记录的合并后子词与其音素序列的对应关系,若某一目标对应关系出现频率达到设定频率条件,如出现频率超过设定频率阈值,则可以认为该目标对应关系是可信的,因此可以将其添加到子词发音词典中,从而对子词发音词典进行更新。
150.步骤s450、由最新一次更新后的子词发音词典作为第二子词发音词典。
151.具体地,通过不断的对子词发音词典进行迭代更新,直至利用更新后的子词发音词典对通用词集中的通用词进行切分后,切分失败的通用词占所有通用词的比值不超过设定阈值为止,认为子词发音词典已经更新的比较优秀,此时可以将最新一次更新后的子词发音词典作为第二子词发音词典。
152.进一步可选的,对于上述步骤s450中最新一次更新后的子词发音词典,为了避免子词颗粒度过细导致语音识别效果较差的问题,可以进一步增加合并高频子词的过程,该合并高频子词的过程可以包括如下步骤:
153.s1、对于最新一次更新后的子词发音词典中的各子词,统计各子词在所有切分成功的通用词中的共现频率。
154.具体地,可以训练子词的n
‑
gram模型,基于n
‑
gram模型得到各子词在所有切分成功的通用词中的共现频率。
155.s2、将共现频率超过设定频率阈值的共现子词合并,得到合并子词。
156.s3、基于所述最新一次更新后的子词发音词典中,共现子词的音素序列,确定合并子词对应的音素序列。
157.s4、将所述合并子词及对应的音素序列添加到最新一次更新后的子词发音词典中,得到第二子词发音词典。
158.本实施例中通过合并高频子词,能够避免切分后的子词颗粒度过细导致的语音识别效果差的问题。
159.下面对本技术实施例提供的语音识别装置进行描述,下文描述的语音识别装置与上文描述的语音识别方法可相互对应参照。
160.参见图5,图5为本技术实施例公开的一种语音识别装置结构示意图。
161.如图5所示,该装置可以包括:
162.语音数据获取单元11,用于获取待识别语音数据;
163.模型识别单元12,用于利用预训练的语音识别模型对所述待识别语音数据进行语音识别,得到识别结果;
164.其中,所述语音识别模型包括基于第一子词发音词典及第一分词结果训练的语言模型,所述第一分词结果包括:利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别,并对识别错误的稀疏词进行重新分词所得的分词结果,所述第一子词发音词典包括:识别错误的稀疏词重新分词后的分词结果与对应的音素序列。
165.可选的,本技术的语音识别装置还可以包括:
166.语言模型训练单元,用于基于第一子词发音词典及第一分词结果训练语言模型,该训练过程可以包括:
167.利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别;
168.对识别错误的稀疏词重新分词,得到重新分词后的分词结果及对应的音素序列;
169.利用重新分词后的分词结果及对应的音素序列,更新第一子词发音词典;
170.基于更新后的第一子词发音词典及对识别错误的稀疏词重新分词后的分词结果,对所述初始语言模型进行二次训练,得到训练后的语言模型。
171.可选的,上述语言模型训练单元对识别错误的稀疏词重新分词,得到重新分词后的分词结果及对应的音素序列的过程,可以包括:
172.对识别错误的稀疏词,按照错误类型进行分类;
173.针对每一错误类型下的稀疏词,按照错误类型对应的分词方式进行重新分词,得到重新分词后的分词结果及对应的音素序列。
174.可选的,上述错误类型可以包括替换错误,则语言模型训练单元针对替换错误类型下的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列的过程,可以包括:
175.计算稀疏词中发生替换错误的子词,与对应识别后子词的发音相似度;
176.若所述发音相似度超过设定相似度阈值,则将稀疏词中发生替换错误的子词与相邻子词进行合并,并将发生替换错误的子词与相邻子词的音素序列合并,得到稀疏词的重新分词结果及对应的音素序列。
177.可选的,上述语言模型训练单元针对替换错误类型下的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列的过程,还可以包括:
178.若确定所述发音相似度不超过设定相似度阈值,则将稀疏词作为重新分词后的一个整词,并将稀疏词的语音识别结果对应的发音音素序列作为整词的音素序列。
179.可选的,上述错误类型还可以包括删除错误和插入错误,则语言模型训练单元针对删除错误和插入错误类型下的稀疏词进行重新分词,得到重新分词后的分词结果及对应的音素序列的过程,可以包括:
180.判断稀疏词中发生删除错误或插入错误的子词,是否可以通过与相邻子词进行合并的方式,转换为替换错误类型;
181.若可以,则按照替换错误类型下稀疏词重新分词的处理方式进行处理;
182.若不可以,则将稀疏词作为重新分词后的一个整词,并将稀疏词的语音识别结果对应的发音音素序列作为整词的音素序列。
183.可选的,上述初始语言模型可以基于第二子词发音词典及第二分词结果训练得到,所述第二分词结果可以包括:基于所述第二子词发音词典包含的子词对稀疏词集中各稀疏词进行分词后的分词结果,所述第二子词发音词典包括多个子词及每一子词对应的音
素序列,所述第二子词发音词典满足,在被用于对通用词进行分词时,分词后的各子词的音素序列能够组合恢复出通用词的音素序列的条件。
184.可选的,本技术的语音识别装置还可以包括:第二子词发音词典确定单元,其确定第二子词发音词典的过程,可以包括:
185.基于通用词的发音词典,获取通用词的音素序列;
186.迭代更新子词发音词典,直至基于更新后的子词发音词典对所述通用词进行切分后所得到的各子词的音素序列能够组合恢复出所述通用词的音素序列为止,由所述更新后的子词发音词典作为第二子词发音词典。
187.可选的,上述第二子词发音词典确定单元迭代更新子词发音词典得到第二子词发音词典的过程,可以包括:
188.初始化子词发音词典;
189.基于所述子词发音词典,对通用词集中的通用词进行切分,得到每一通用词切分后的各子词,及各子词分别对应的音素序列;
190.针对每一通用词,判断切分后的各子词分别对应的音素序列中,是否存在一种子词的音素序列的组合能够恢复出所述通用词的音素序列;
191.若不存在,则确认当前通用词的切分失败,统计所述通用词集中切分失败的通用词占所有通用词的比值;
192.若所述比值超过设定阈值,则更新所述子词发音词典,并基于更新后的子词发音词典,返回执行所述对通用词集中的通用词进行切分的过程,直至通用词集中切分失败的通用词占所有通用词的比值不超过所述设定阈值为止,由最新一次更新后的子词发音词典作为第二子词发音词典。
193.可选的,上述第二子词发音词典确定单元在判断所述比值超过设定阈值时,更新所述子词发音词典的过程,可以包括:
194.对于切分失败的通用词,判断其切分后的各子词中是否存在不发音的子词;
195.若是,则将不发音的子词合并到相邻的子词上,并记录合并后子词与其音素序列的对应关系;
196.若否,在记录的对应关系中筛选出现频率达到设定频率条件的目标对应关系,并将所述目标对应关系添加到子词发音词典中。
197.可选的,上述第二子词发音词典确定单元记录合并后子词与其音素序列的对应关系的过程,可以包括:
198.将合并后子词中除不发音的子词之外的其它子词的音素序列,作为所述合并后子词的音素序列,并记录合并后子词与音素序列的对应关系。
199.可选的,上述第二子词发音词典确定单元迭代更新子词发音词典得到第二子词发音词典的过程,还可以包括:
200.在判断通用词集中切分失败的通用词占所有通用词的比值不超过所述设定阈值时,对于最新一次更新后的子词发音词典中的各子词,统计各子词在所有切分成功的通用词中的共现频率;
201.将共现频率超过设定频率阈值的共现子词合并,得到合并子词;
202.基于所述最新一次更新后的子词发音词典中,共现子词的音素序列,确定合并子
词对应的音素序列;
203.将所述合并子词及对应的音素序列添加到最新一次更新后的子词发音词典中,得到第二子词发音词典。
204.本技术实施例提供的语音识别装置可应用于语音识别设备,如终端:手机、电脑等。可选的,图6示出了语音识别设备的硬件结构框图,参照图6,语音识别设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
205.在本技术实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
206.处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
207.存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non
‑
volatile memory)等,例如至少一个磁盘存储器;
208.其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
209.获取待识别语音数据;
210.利用预训练的语音识别模型对所述待识别语音数据进行语音识别,得到识别结果;
211.其中,所述语音识别模型包括基于第一子词发音词典及第一分词结果训练的语言模型,所述第一分词结果包括:利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别,并对识别错误的稀疏词进行重新分词所得的分词结果,所述第一子词发音词典包括:识别错误的稀疏词重新分词后的分词结果与对应的音素序列。
212.可选的,所述程序的细化功能和扩展功能可参照上文描述。
213.本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
214.获取待识别语音数据;
215.利用预训练的语音识别模型对所述待识别语音数据进行语音识别,得到识别结果;
216.其中,所述语音识别模型包括基于第一子词发音词典及第一分词结果训练的语言模型,所述第一分词结果包括:利用包含初始语言模型的语音识别模型,对包含稀疏词的语音进行识别,并对识别错误的稀疏词进行重新分词所得的分词结果,所述第一子词发音词典包括:识别错误的稀疏词重新分词后的分词结果与对应的音素序列。
217.可选的,所述程序的细化功能和扩展功能可参照上文描述。
218.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
219.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
220.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。