首页 > 乐器声学 专利正文
语音识别方法、装置、设备及存储介质与流程

时间:2022-02-17 阅读: 作者:专利查询

语音识别方法、装置、设备及存储介质与流程

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.图1为本技术实施例公开的语音识别方法的一种实现流程图;
41.图2为本技术实施例公开的利用当前时刻各个可能的解码结果的声学分数和各个领域的语言分数,获得当前时刻各个可能的解码结果在每一个领域的语言分数的权重的一种实现流程图;
42.图3为本技术实施例公开的获得待识别语音的当前时刻的各个可能的解码结果的声学分数,以及当前时刻各个可能的解码结果在多个领域中的每一个领域的语言分数的一种实现流程图;
43.图4为本技术实施例公开的至少利用帧编码结果和第一领域的语言模型得到的隐层特征,获得当前时刻各个可能的解码结果的声学分数的一种实现流程图;
44.图5为本技术实施例公开的语音识别模型的一种结构示意图;
45.图6为本技术实施例公开的具有单一语言模型的语音识别模型的一种结构示意图;
46.图7为本技术实施例公开的至少利用帧编码结果和第一领域的语言模型得到的隐层特征,获得当前时刻各个可能的解码结果的声学分数的另一种实现流程图;
47.图8为本技术实施例公开的当前时刻各个语音帧的初始关注度的一种示例图;
48.图9为本技术实施例公开的当前时刻各个语音帧的关注度的一种示例图;
49.图10为本技术实施例公开的语音识别模型的另一种结构示意图;
50.图11为本技术实施例公开的具有单一语言模型的语音识别模型的另一种结构示意图;
51.图12为本技术实施例公开的语音识别装置的一种结构示意图;
52.图13为本技术实施例公开的语音识别设备的硬件结构框图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.ed(encoder

decoder)语音识别模型作为一种端到端模型,将传统语音识别系统的发音词典、声学模型和语言模型融为一体,同时优化、避免了传统模型局部最优的问题,大幅提升了语音识别准确率。
55.但ed语音识别模型存在鲁棒性差的问题,比如,ed语音识别模型只在与训练集匹配的测试集上准确率较高,一旦测试集领域和训练集的领域不同,如训练集是通用数据,测试集是医疗领域的数据,则ed语音识别模型在测试集上的准确率会大幅降低。
56.目前提升ed语音识别模型在领域数据集上准确率的方法是将领域数据与通用数据混合,利用混合后的数据集重新训练模型。然而,将领域数据与通用数据混合重训模型虽然可以提升领域数据的识别率,但会降低通用数据的识别准确率,而且,领域数据和通用数据的比例需要精调,如果不同领域的训练数据的数据量不同,会导致数据较少的领域的语音识别效果仍然较差。还有一种提升ed语音识别模型在领域数据集上准确率的方法,就是单独使用领域数据集训练语言模型,基于这个语言模型虽然可以在领域数据集上取得较高的识别准确率,但通用识别率却很低。而良好的语音识别模型需要在通用数据和领域数据上都具有较高的识别率。
57.总之,一个真正通用的语音识别模型需要在各种领域上都取得较高的识别率,单纯混合所有领域数据训练语音识别模型会导致数据稀疏的领域的识别准确率较低;为每个领域训练单独的语言模型虽然可以在所有领域均取得较高识别率,但这要求在识别前知道待识别语音属于哪个领域,而这是不现实的。因此,有必要提供一种领域自适应的方法,让语音识别模型自己选择合适的领域语言模型。基于此,提出本技术。
58.如图1所示,为本技术实施例提供的语音识别方法的一种实现流程图,可以包括:
59.步骤s101:获得待识别语音的当前时刻的各个可能的解码结果的声学分数,以及当前时刻各个可能的解码结果在多个领域中的每一个领域的语言分数。
60.与现有技术中仅获得当前时刻各个可能的解码结果在一个领域的语言分数不同,本技术中,获得当前时刻各个可能的解码结果在多个领域中的每一领域的语言分数,即在上述多个领域中的每一个领域,均获得该领域中当前时刻的各个可能的解码结果的语言分数。
61.当前时刻各个可能的解码结果的声学分数可以用一个向量(为便于区分,记为score
am
)表示,该向量score
am
的长度为词表的大小,向量score
am
中的每一个元素对应词表中的一个词,元素的取值表征该元素对应的词的声学分数。也就是说,当前时刻各个可能的解码结果就是词表中的各个词。
62.其中,词表中的词是语音识别模型的建模单元,建模单元的数量就是词表大小(即词表中词的数量),比如,语音识别模型的建模单元数量可以在一万五左右,可以包括六千多个汉字和若干英文单词。
63.当前时刻各个可能的解码结果在第i个领域的语言分数也可以用一个向量(为便于区分,记为score
lm_i
)表示,该向量score
lm_i
的长度也为上述词表的大小,向量score
lm_i
中的每一个元素对应词表中的一个词,元素的取值表征该元素对应的词在第i个领域的语言分数。i=1,2,3,
……
,m,其中,m为上述多个领域的数量。
64.步骤s102:利用当前时刻各个可能的解码结果的声学分数和各个领域的语言分数,获得当前时刻各个可能的解码结果在每一个领域的语言分数的权重;其中,与各个可能的解码结果的声学分数越接近,各个可能的解码结果的语言分数的权重越大。
65.第i个领域的语言分数的权重可以是指第i个领域的语言分数的向量表示score
lm_i
的权重。也就是说,当前时刻各个可能的解码结果在同一领域的语言分数的权重相同。因而,第i个领域的语言分数的权重实质是第i个领域的权重。
66.本技术中,各个可能的解码结果在每一个领域的语言分数的权重,是以各个可能的解码结果的声学分数为基准的,即第i个领域的各个可能的解码结果的语言分数与各个可能的解码结果的声学分数越接近,第i个领域的各个可能的解码结果的语言分数的权重越大。
67.步骤s103:根据当前时刻各个可能的解码结果在多个领域的语言分数的加权求和结果,以及当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果。
68.可选的,可以将当前时刻各个可能的解码结果在多个领域中的语言分数的加权求和结果,与当前时刻各个可能的解码结果的声学分数相加,得到当前时刻各个可能的解码结果的综合分数。
69.利用当前时刻各个可能的解码结果的综合分数进行解码,得到当前时刻的解码结果。
70.与现有技术中根据当前时刻各个可能的解码结果在单一领域(通用领域,或者,专业领域)的语言分数,以及当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果不同,本技术实施例提供的语音识别方法,获得当前时刻各个可能的解码结果在多个领域中的每一个领域的语言分数,以当前时刻各个可能的解码结果的声学分数为基准,确
定各个领域的语言分数的权重,然后根据当前时刻各个可能的解码结果在每一领域的语言分数的加权求和结果,以及当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果。由于在解码过程中考虑了当前时刻各个可能的解码结果在每一个领域的语言分数,且对不同领域的语言分数赋予了不同的权重,实现了领域语言模型的自适应选择,从而提高语音识别方法的领域适应性。
71.在一可选的实施例中,上述利用当前时刻各个可能的解码结果的声学分数和各个领域的语言分数,获得当前时刻各个可能的解码结果在每一个领域的语言分数的权重的一种实现流程图如图2所示,可以包括:
72.步骤s201:对应每一个领域,将当前时刻各个可能的解码结果的声学分数和同一可能的解码结果在该领域的语言分数求和,得到当前时刻各个可能的解码结果对应的分数和值。
73.步骤s202:根据预置的各个可能的解码结果的权值,将当前时刻各个可能的解码结果对应的分数和值加权求和,得到该领域的语言分数的权重。
74.当前时刻各个可能的解码结果在第i个领域的语言分数的权重用公式可以表示为:
75.score
domain_i
=v1(score
am
+score
lm_i
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
76.其中,score
domain_i
表示当前时刻各个可能的解码结果在第i个领域的语言分数的权重。v、score
am
、score
lm_i
均是长度为n的向量,n为前述词表的大小;v中的元素表示预置的各个可能的解码结果的权值,score
am
中的元素表示当前时刻各个可能的解码结果的声学分数,score
lm_i
中的元素表示当前时刻各个可能的解码结果在第i个领域的语言分数。
77.各个可能的解码结果的权重可以是预先通过机器学习学习到的,具体学习过程可以参看后续实施例,这里不再详述。
78.在一可选的实施例中,上述获得待识别语音的当前时刻的各个可能的解码结果的声学分数,以及当前时刻各个可能的解码结果在多个领域中的每一个领域的语言分数的一种实现流程图如图3所示,可以包括:
79.步骤s301:获得对待识别语音的各个语音帧进行编码得到的帧编码结果,以及多个领域的语言模型分别对前一时刻的解码结果进行处理得到的隐层特征。
80.对于待识别语音的各个语音帧,可以提取语音帧的声学特征,比如,fbank特征,mfcc特征等,对各个语音帧的声学特征进行编码处理,得到各个语音帧的编码结果,记为帧编码的结果。可以利用编码器对各个语音帧的声学特征进行编码处理,得到各个语音帧的编码结果。
81.每个领域的语言模型是通过该领域的文本训练数据训练得到的。具体训练方式可以采用现有的语音识别技术中较为成熟的方法,这里不再赘述。
82.步骤s302:至少利用帧编码结果和第一领域的语言模型得到的隐层特征,获得当前时刻各个可能的解码结果的声学分数;其中,用于对待识别语音的各个语音帧进行编码得到的帧编码结果的编码器与第一领域的语言模型通过第一领域的语音训练数据联合训练得到。
83.本技术实施例中,声学分数可以利用帧编码结果和第一领域的语言模型得到的隐层特征得到,也可以利用帧编码结果和第一领域的语言模型得到的隐层特征及历史对齐信
息得到。
84.编码器和各个领域的语言模型都是语音识别模型的组成部分。
85.步骤s302:对每一个领域的语言模型得到的隐层特征分别进行处理,得到当前时刻各个可能的解码结果在每一个领域的语言分数。语言模型对隐层特征进行处理得到语言分数的具体实现方式可以采用已有的成熟方案,这里不再详述。
86.需要说明的是,本技术不对步骤s302和步骤s303的执行顺序做限定,可以先执行步骤s302,再执行步骤s303,或者,先执行步骤s303,在执行步骤s302,或者,步骤s302和步骤s303同时执行。
87.在一可选的实施例中,上述至少利用帧编码结果和第一领域的语言模型得到的隐层特征,获得当前时刻各个可能的解码结果的声学分数的一种实现流程图如图4所示,可以包括:
88.步骤s401:对帧编码结果和第一领域的语言模型得到的隐层特征进行基于注意力机制的处理,获得当前时刻各个语音帧的关注度。
89.该步骤s401可以通过语音识别模型中的第一注意力模块来对帧编码结果和第一领域的语言模型得到的隐层特征进行基于注意力机制的处理,获得当前时刻各个语音帧的关注度。第一注意力模块、编码器和第一领域的语言模型通过第一领域的语音训练数据联合训练得到
90.步骤s402:根据当前时刻各个语音帧的关注度获得当前时刻各个可能的解码结果的声学分数。
91.基于图4相关实施例,本技术实施例提供的语音识别方法可以通过图5所示的语音识别模型实现,如图5所述,语音识别模型可以包括:编码器和解码器;其中,解码器可以包括m个领域的语言模型,各个领域的语言模型对应的语言打分模块,解码器还包括领域注意力模块,第一注意力模块,声学打分模块和解码模块;其中,
92.编码器用于对待识别语音的各个语音帧进行编码,得到各个语音帧编码结果。
93.第i个语言模型用于对前一个时刻(即t

1时刻)的解码结果y
t
‑1进行处理,得到第i个领域对应的隐层特征。
94.第一注意力模块用于对帧编码结果和第1领域的隐层特征1进行基于注意力机制的处理,得到当前时刻(即t时刻)各个语音帧的关注度;
95.声学打分模块用于根据当前时刻各个语音帧的关注度获得当前时刻各个可能的解码结果的声学分数。
96.第i个语言打分模块i用于根据第i个语言模型输出的隐层特征i获得当前时刻各个可能的解码结果在第i个领域的语言分数。
97.领域注意力模块用于利用当前时刻各个可能的解码结果的声学分数和各个领域的语言分数,获得当前时刻各个可能的解码结果在每一个领域的语言分数的权重,并获得当前时刻各个可能的解码结果在多个领域的语言分数的加权求和结果。
98.解码模块用于根据当前时刻各个可能的解码结果在多个领域的语言分数的加权求和结果,以及当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果y
t

99.图5所示的语音识别模型可以通过如下方式训练得到:
100.通过第1领域的语音训练数据训练如图6所示的具有单一语言模型的语音识别模
型,得到编码器、语言模型1、第一注意力模块、语言打分模块、声学打分模块和解码模块的参数。第1领域的语音训练数据可以是通用语音数据,也可以是某个专业领域的语音数据。第1领域的语音训练数据优选为通用语音数据。
101.然后利用第j领域的文本训练数据训练第j个领域的语言模型和第j个领域的语言打分模块j,j=2,3,
……
,m;第j个领域的语言模型的训练采用现有的语音识别技术中较为成熟的方法,此处不再赘述。
102.将第2至第m个领域的训练好的语言模型加入图6所示的语言识别模型,并构建如图5所示的语音识别模型,利用混合领域的语音训练数据对图5所示的语音模型进行训练,在训练过程中,保持编码器、第i个语言模型、第i个打分模块、第一注意力模块、声学打分模块和解码模块的参数不变,仅更新(即学习)领域注意力模块的参数即可。
103.另外,本技术的发明人研究发现,与其它的语音识别方法存在重复出字和漏字现象类似,本技术的上述的语音识别方法也会存在重复出字、漏字等异常现象,其主要原因在于在寻找下一个解码结果(字)的位置时未考虑历史解码所关注的信息。以前述图6所示语音模型为例,现有技术中在计算各个语音帧的关注度时,通过如下公式计算:
104.alpha=v2*tanh(s*w
q1
+enc*w
k1
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
105.其中,alpha为一个向量,该向量中的元素表示当前时刻各个语音帧的关注度;v2为一个向量,w
q1
和w
k1
均为线性变换矩阵,v2,w
q1
和w
k1
均通过机器学习得到;s是语言模型的输出,enc为帧编码结果。
106.基于此,本技术提供另一种获得当前时刻所述各个可能的解码结果的声学分数。本技术实施例提供的至少利用帧编码结果和第一领域的语言模型得到的隐层特征,获得当前时刻各个可能的解码结果的声学分数的另一种实现流程图如图7所示,可以包括:
107.步骤s701:利用帧编码结果、第一领域的语言模型得到的隐层特征,以及前一时刻的各个语音帧的关注度,获得当前时刻之前的已关注信息。
108.当前时刻之前的已关注信息可以是指当前时刻之前解码所对齐的语音帧中的已关注信息。
109.可选的,可以通过如下方式获得当前时刻之前的已关注信息:
110.对帧编码结果、第一领域的语言模型得到的隐层特征、以及前一时刻的各个语音帧的关注度进行基于注意力机制的处理,确定当前时刻各个语音帧的初始关注度;当前时刻各个语音帧的初始关注度用于确定当前时刻之前已关注的语音帧;
111.可以通过语音识别模型中的第二注意力模块对帧编码结果、第一领域的语言模型得到的隐层特征、以及前一时刻的各个语音帧的关注度进行基于注意力机制的处理,确定当前时刻各个语音帧的初始关注度。
112.可以将第k个语音帧的初始关注度与阈值比较,如果第k个语音帧的初始关注度度小于阈值,确定第k个语音帧为当前时刻之前已关注的语音帧。第k个语音帧为待识别语音的各个语音帧中的任意一语音帧。
113.对当前时刻之前已关注的语音帧的编码结果加权求和,得到当前时刻之前的已关注信息;其中,已关注的语音帧的编码结果的权重为已关注的语音帧在当前时刻的初始关注度。
114.可选的,在对帧编码结果、第一领域的语言模型得到的隐层特征、以及前一时刻的
各个语音帧的关注度进行基于注意力机制的处理,确定当前时刻各个语音帧的初始关注度时,具体可以为:
115.对前一时刻的各个语音帧的关注度进行一维卷积变换,得到卷积变换结果。可以使用一层卷积层对前一时刻的各个语音帧的关注度进行一维卷积变换。作为示例,卷积层中的卷积核大小为21,通道数为8,卷积核大小为21狮子左右视野均为10,40ms帧率下代表左右视野400ms,这样操作的结果是每帧可以知道其左右400ms在解码之前的结果时有没有被关注过,因为语音是单调的,如果之前关注过,后续不足要再关注。
116.对帧编码结果、第一领域的语言模型得到的隐层特征、以及卷积变换结果进行基于注意力机制的处理,确定当前时刻各个语音帧的初始关注度。
117.步骤s702:对帧编码结果、第一领域的语言模型得到的隐层特征、前一时刻的各个语音帧的关注度和当前时刻之前的已关注信息进行基于注意力机制的处理,获得当前时刻各个语音帧的关注度。
118.步骤s703:根据当前时刻各个语音帧的关注度获得当前时刻各个可能的解码结果的声学分数。
119.可选的,可以通过如下公式计算得到当前时刻各个语音帧的初始关注度:
120.alpha=v3*tanh(s*w
q2
+enc*w
k2
+f*w
f1
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
121.其中,alpha为一个向量,该向量中的元素表示当前时刻各个语音帧的初始关注度;v3为一个向量,w
q2
、w
k2
和w
f1
均为线性变换矩阵,v2、w
q2
、w
k2
和w
f1
均通过机器学习得到;s是语言模型的输出,enc为帧编码结果,f是上述卷积变换结果。
122.公式(3)的主要思想是每帧的关注度主要由帧编码结果决定,而且,之前已经关注过语音帧现在无需关注,所以在计算当前时刻各个语音帧的关注度时加入历史对齐信息f,可以屏蔽已关注语音帧。s的加入用于根据协同发音调整当前帧关注度。协同发音指的是一个音受前后相邻音的影响而发生变化,从发声机理上看就是人的发声器官在一个音转向另一个音时其特性只能渐变,从而使得后一个音的频谱与其他条件下的频谱产生差异,因此,在寻找当前字(当前的解码结果)对应的帧时,需要考虑上一个字,上一个字不同,当前字对应的帧也不同。
123.如图8所示,为本技术实施例提供的当前时刻各个语音帧的初始关注度的示例图。该图中,横轴表示语音帧的序号,纵轴表示解码结果的序号(图中的小数是绘图工具问题,不代表解码结果的序号有小数),图中每个解码结果序号对应的灰度条表征该解码结果对各个语音帧的关注度,其中,灰度值越小,表征解码结果对灰度值对应的语音帧的关注度越大,而且,在解某个字时,不会关注其前面已解码的字对应的帧,但会关注其后面未解码字对应的帧。
124.可选的,可以通过如下公式计算得到当前时刻之前的已关注信息:
125.memory=cumsum(alpha*enc,dim=t,exclusive=true)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
126.其中,memory为当前时刻之前的已关注信息,其实质是从解码得到的第一个解码结果开始到现在已关注信息的累加;cumsum和dim=t表示在时间(这里指代待识别语音的时间,或者指语音帧的序号)维度累加,exclusive=true表示累加的值不包含当前时刻关注语音帧及其之后的语音帧的编码结果。
127.可以通过如下公式计算得到当前时刻各个语音帧的关注度:
128.beta=v4*tanh(s*w
q3
+enc*w
k3
+f*w
f2
+memory*w
m
)
ꢀꢀꢀꢀꢀꢀꢀ
(5)
129.其中,为一个向量,该向量中的每个元素对应一个语音帧,每个元素的值表示当前时刻元素对应的语音帧的关注度;v4为一个向量,w
q2
、w
k2
、w
f1
和w
m
均为线性变换矩阵,v4、w
q2
、w
k2
、w
f1
和w
m
均通过机器学习得到;s是语言模型的输出,enc为帧编码结果,f是上述卷积变换结果,memory为当前时刻之前的已关注信息。
130.公式(5)的主要思想是,由于计算每帧关注度时考虑了到当前为止已关注的信息,如果已关注的信息为空或已关注的信息与当前帧属于同一个字,则可以继续关注当前帧,而如果已关注的信息和当前帧不符,则不关注当前帧。如图9所示,为本技术实施例提供的当前时刻各个语音帧的关注度的示例图。该图中,横轴表示语音帧的序号,纵轴表示解码结果的序号(图中的小数是绘图工具问题,不代表解码结果的序号有小数),图中每个解码结果序号对应的灰度条表征该解码结果对各个语音帧的关注度,其中,灰度值越小,表征解码结果对灰度值对应的语音帧的关注度越大,而且,在解某个字时,不会关注其前面已解码的字对应的语音帧,也不会关注其后面的字对应的语音帧,证明了memory的有效性,语音帧的关注度在时间维度上单调向前,保证了语音识别的鲁棒性。
131.基于图7相关实施例,本技术实施例提供的语音识别方法可以通过图10所示的语音识别模型实现,如图10所示,本技术实施例提供的语音识别模型可以包括:编码器和解码器;其中,解码器可以包括m个领域的语言模型,各个领域的语言模型对应的语言打分模块,解码器还包括领域注意力模块,第二注意力模块,第三注意力模块,memory模块,声学打分模块和解码模块;其中,
132.编码器用于对待识别语音的各个语音帧进行编码,得到各个语音帧编码结果。
133.第i个语言模型用于对前一个时刻(即t

1时刻)的解码结果y
t
‑1进行处理,得到第i个领域对应的隐层特征。
134.第二注意力模块用于对帧编码结果、第一领域的语言模型得到的隐层特征、以及前一时刻的各个语音帧的关注度beta
t
‑1进行基于注意力机制的处理,确定当前时刻各个语音帧的初始关注度。
135.memory模块用于对当前时刻之前已关注的语音帧的编码结果加权求和,得到当前时刻之前的已关注信息;其中,已关注的语音帧的编码结果的权重为已关注的语音帧在当前时刻的初始关注度。
136.第三注意力模块用于对帧编码结果、第一领域的语言模型得到的隐层特征、前一时刻的各个语音帧的关注度和当前时刻之前的已关注信息进行基于注意力机制的处理,获得当前时刻各个语音帧的关注度。
137.声学打分模块用于根据当前时刻各个语音帧的关注度获得当前时刻各个可能的解码结果的声学分数。
138.第i个语言打分模块i用于根据第i个语言模型输出的隐层特征i获得当前时刻各个可能的解码结果在第i个领域的语言分数。
139.领域注意力模块用于利用当前时刻各个可能的解码结果的声学分数和各个领域的语言分数,获得当前时刻各个可能的解码结果在每一个领域的语言分数的权重,并获得当前时刻各个可能的解码结果在多个领域的语言分数的加权求和结果。
140.解码模块用于根据当前时刻各个可能的解码结果在多个领域的语言分数的加权
求和结果,以及当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果y
t

141.图10所示的语音识别模型可以通过如下方式训练得到:
142.通过第1领域的语音训练数据训练如图11所示的具有单一语言模型的语音识别模型,得到编码器、语言模型1、第二注意力模块、第三注意力模块、语言打分模块1、memory模块、声学打分模块和解码模块的参数。第1领域的语音训练数据可以是通用语音数据,也可以是某个专业领域的语音数据。第1领域的语音训练数据优选为通用语音数据。
143.然后利用第j领域的文本训练数据训练第j个领域的语言模型和第j个领域的语言打分模块j,j=2,3,
……
,m;第j个领域的语言模型的训练采用现有的语音识别技术中较为成熟的方法,此处不再赘述。
144.将第2至第m个领域的训练好的语言模型加入图11所示的语言识别模型,并构建如图10所示的语音识别模型,利用混合领域的语音训练数据对图10所示的语音模型进行训练,在训练过程中,保持编码器、语言模型1、第二注意力模块、第三注意力模块、语言打分模块1、memory模块、声学打分模块和解码模块的参数不变,仅更新(即学习)领域注意力模块的参数即可。
145.与方法实施例相对应,本技术实施例还提供一种语音识别装置,本技术实施例提供的语音识别装置的一种结构示意图如图12所示,可以包括:
146.分数获得模块1201,权重获得模块1202和确定模块1203;其中,
147.分数获得模块1201用于获得待识别语音的当前时刻的各个可能的解码结果的声学分数,以及当前时刻所述各个可能的解码结果在多个领域中的每一个领域的语言分数;
148.权重获得模块1202用于利用当前时刻所述各个可能的解码结果的声学分数和各个领域的语言分数,获得当前时刻所述各个可能的解码结果在每一个领域的语言分数的权重;其中,与所述各个可能的解码结果的声学分数越接近,所述各个可能的解码结果的语言分数的权重越大;
149.确定模块1203用于根据当前时刻所述各个可能的解码结果在所述多个领域的语言分数的加权求和结果,以及所述当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果。
150.本技术实施例提供的语音识别装置,获得当前时刻各个可能的解码结果在多个领域中的每一个领域的语言分数,以当前时刻各个可能的解码结果的声学分数为基准,确定各个领域的语言分数的权重,然后根据当前时刻各个可能的解码结果在每一领域的语言分数的加权求和结果,以及当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果。由于在解码过程中考虑了当前时刻各个可能的解码结果在每一个领域的语言分数,且对不同领域的语言分数赋予了不同的权重,实现了领域语言模型的自适应选择,从而提高语音识别方法的领域适应性。
151.在一可选的实施例中,所述权重获得模块1202包括:
152.分数求和模块,用于对应每一个领域,将当前时刻所述各个可能的解码结果的声学分数和同一可能的解码结果在该领域的语言分数求和,得到当前时刻所述各个可能的解码结果对应的分数和值;
153.权重计算模块,用于根据预置的所述各个可能的解码结果的权值,将所述当前时刻各个可能的解码结果对应的分数和值加权求和,得到该领域的语言分数的权重。
154.在一可选的实施例中,分数获得模块1201可以包括:
155.编码模块,用于获得对所述待识别语音的各个语音帧进行编码得到的帧编码结果,以及多个领域的语言模型分别对前一时刻的解码结果进行处理得到的隐层特征;
156.声学分数获取模块,用于至少利用所述帧编码结果和第一领域的语言模型得到的隐层特征,获得当前时刻所述各个可能的解码结果的声学分数;其中,用于对待识别语音的各个语音帧进行编码得到的所述帧编码结果的编码器与所述第一领域的语言模型通过所述第一领域的语音训练数据联合训练得到;
157.语言分数获取模块,用于对每一个领域的语言模型得到的隐层特征分别进行处理,得到当前时刻所述各个可能的解码结果在每一个领域的语言分数。
158.在一可选的实施例中,所述声学分数获取模块可以包括:
159.第一注意力处理模块,用于对所述帧编码结果和所述第一领域的语言模型得到的隐层特征进行基于注意力机制的处理,获得当前时刻各个语音帧的关注度;
160.第一声学分数获得模块,用于根据所述当前时刻各个语音帧的关注度获得当前时刻所述各个可能的解码结果的声学分数。
161.在一可选的实施例中,所述声学分数获取模块可以包括:
162.已关注信息获得模块,用于利用所述帧编码结果、所述第一领域的语言模型得到的隐层特征、前一时刻的各个语音帧的关注度,获得当前时刻之前的已关注信息;
163.第三注意力处理模块,用于对所述帧编码结果、所述第一领域的语言模型得到的隐层特征、所述前一时刻的各个语音帧的关注度和所述已关注信息进行基于注意力机制的处理,获得当前时刻各个语音帧的关注度;
164.第二声学分数获得模块,用于根据当前时刻所述各个语音帧的关注度获得当前时刻所述各个可能的解码结果的声学分数。
165.在一可选的实施例中,所述已关注信息获得模块可以包括:
166.第二注意力处理模块,用于对所述帧编码结果、所述第一领域的语言模型得到的隐层特征、以及前一时刻的各个语音帧的关注度进行基于注意力机制的处理,确定当前时刻各个语音帧的初始关注度;所述当前时刻各个语音帧的初始关注度用于确定当前时刻之前已关注的语音帧;
167.加权处理模块,用于对所述当前时刻之前已关注的语音帧的编码结果加权求和,得到所述当前时刻之前的已关注信息;其中,所述已关注的语音帧的编码结果的权重为所述已关注的语音帧在当前时刻的初始关注度。
168.在一可选的实施例中,所述第二注意力处理模块可以包括:
169.卷积变换模块,用于对所述前一时刻的各个语音帧的关注度进行一维卷积变换,得到卷积变换结果;
170.初始关注度确定模块,用于对所述帧编码结果、所述第一领域的语言模型得到的隐层特征、以及所述卷积变换结果进行基于注意力机制的处理,确定当前时刻各个语音帧的初始关注度。
171.本技术实施例提供的语音识别装置可应用于语音识别设备,如pc终端、云平台、服务器及服务器集群等。可选的,图13示出了语音识别设备的硬件结构框图,参照图13,语音识别设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3
和至少一个通信总线4;
172.在本技术实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
173.处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
174.存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non

volatile memory)等,例如至少一个磁盘存储器;
175.其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
176.获得待识别语音的当前时刻的各个可能的解码结果的声学分数,以及当前时刻所述各个可能的解码结果在多个领域中的每一个领域的语言分数;
177.利用当前时刻所述各个可能的解码结果的声学分数和各个领域的语言分数,获得当前时刻所述各个可能的解码结果在每一个领域的语言分数的权重;其中,与所述各个可能的解码结果的声学分数越接近,所述各个可能的解码结果的语言分数的权重越大;
178.根据当前时刻所述各个可能的解码结果在所述多个领域的语言分数的加权求和结果,以及所述当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果。
179.可选的,所述程序的细化功能和扩展功能可参照上文描述。
180.本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
181.获得待识别语音的当前时刻的各个可能的解码结果的声学分数,以及当前时刻所述各个可能的解码结果在多个领域中的每一个领域的语言分数;
182.利用当前时刻所述各个可能的解码结果的声学分数和各个领域的语言分数,获得当前时刻所述各个可能的解码结果在每一个领域的语言分数的权重;其中,与所述各个可能的解码结果的声学分数越接近,所述各个可能的解码结果的语言分数的权重越大;
183.根据当前时刻所述各个可能的解码结果在所述多个领域的语言分数的加权求和结果,以及所述当前时刻各个可能的解码结果的声学分数,确定当前时刻的解码结果。
184.可选的,所述程序的细化功能和扩展功能可参照上文描述。
185.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
186.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
187.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
188.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
189.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
190.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
191.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
192.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。