1.本技术涉及音频处理技术领域,特别是涉及一种语音识别方法及相关装置、电子设备、存储介质。
背景技术:2.语音被认为是人与人最自然的交流方式之一,在诸多交互场景中,因其具有较低门槛的学习成本,因此被作为人机交互的未来趋势。
3.然而,不同交互场景中,语音识别的实时性要求通常也不一样。例如,在字幕等实时上屏类场景中,语音识别实时性要求往往较高,即语音识别要求较低的时延,或者,在录音转写场景中,语音识别实时性要求不高,即语音识别可以接受相对高一些的时延。目前通常采用不同模型来适配不同时延要求,为此需要针对不同时延要求独立设计不同模型,并单独进行模型训练,复杂度和成本激增。有鉴于此,如何降低不同时延要求下语音识别的复杂度和成本成为亟待解决的问题。
技术实现要素:4.本技术主要解决的技术问题是提供一种语音识别方法及相关装置、电子设备、存储介质,能够降低不同时延要求下语音识别的复杂度和成本。
5.为了解决上述技术问题,本技术第一方面提供了一种语音识别方法,包括:获取若干音频帧的语义特征表示;利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本;其中,语音识别模型采用注意力机制,且注意力机制的掩膜是基于语音识别要求的时延而生成的。
6.为了解决上述技术问题,本技术第二方面提供了一种语音识别装置,包括:语义特征获取模块和识别文本获取模块,语义特征获取模块,用于获取若干音频帧的语义特征表示;识别文本获取模块,用于利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本;其中,语音识别模型采用注意力机制,且注意力机制的掩膜是基于语音识别要求的时延而生成的。
7.为了解决上述技术问题,本技术第三方面提供了一种电子设备,包括相互耦接的存储器和处理器,存储器中存储有程序指令,处理器用于执行程序指令以实现上述第一方面中的语音识别方法。
8.为了解决上述技术问题,本技术第四方面提供了一种计算机可读存储介质,存储有能够被处理器运行的程序指令,程序指令用于实现上述第一方面中的语音识别方法。
9.上述方案,获取若干音频帧的语义特征表示,并利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本,且语音识别模型采用注意力机制,注意力机制的掩膜是基于语音识别要求的时延而生成的,由于注意力机制的掩膜能够在语音识别过程中,约束每一音频帧所参考的位于其后的音频帧数量,而掩膜又是基于语音识别要求的时延而生成的,故在语音识别过程中,掩膜约束每一音频帧所参考的位于
其后的音频帧数量与时延相对应,从而针对不同时延场景仅需基于时延生成语音识别模型对应的掩膜即可,即单个模型配合不同时延对应的掩膜即可适配不同时延场景,进而能够降低不同时延要求下语音识别的复杂度和成本。
附图说明
10.图1是本技术语音识别方法一实施例的流程示意图;
11.图2是本技术语音识别方法一实施例的过程示意图;
12.图3是注意力机制一实施例的示意图;
13.图4是生成子掩膜一实施例的流程示意图;
14.图5训练语音识别模型一实施例的流程示意图;
15.图6是本技术语音识别装置一实施例的框架示意图;
16.图7是本技术电子设备一实施例的框架示意图;
17.图8是本技术计算机可读存储介质一实施例的框架示意图。
具体实施方式
18.下面结合说明书附图,对本技术实施例的方案进行详细说明。
19.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
20.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
21.请参阅图1,图1是本技术语音识别方法一实施例的流程示意图。
22.具体而言,可以包括如下步骤:
23.步骤s11:获取若干音频帧的语义特征表示。
24.在一个实施场景中,若干音频帧是从流式语音(即音频流)中提取得到的。例如,流式语音可以是直播间语音(如,电视直播、网络直播等),或者,流式语音也可以是会议语音(如,企业会议、交流论坛、商务谈判等),在此不做限定。
25.在一个具体的实施场景中,可以获取流式语音,具体可以通过手机、个人电脑、音箱等硬件设备的麦克风采集得到流式语音。在此基础上,可以对流式语音进行分帧处理,得到若干音频帧,再依次提取每帧音频帧的语义特征表示。需要说明的是,随着语音信号持续输入,音频帧也逐渐累积。例如,从0时刻开始采集流式语音,在第1秒时刻,可以采集到1秒的流式语音,基于此可以分帧得到n帧音频帧,在此过程中持续采集流式语音,并在第2秒时刻,又可以采集到1秒的流式语音,基于此又可以分帧得到n帧音频帧,以此类推,在此不再一一举例。
26.在一个具体的实施场景中,在前述分帧处理之后,为了补偿高频分量损失,可以进行预加重处理。信号在传输过程中受损很大,为了在接收终端能得到比较好的信号波形,就需要对受损的信号进行补偿,预加重技术的思想就是在传输线的始端增强信号的高频成分,以补偿高频分量在传输过程中的过大衰减。预加重处理的具体实现过程,可以参阅预加
重处理的技术细节,在此不再赘述。
27.在一个具体的实施场景中,为了适应不同场景下的时延要求,可以累积一定帧数的若干音频帧之后,再对这些音频帧进行识别。需要说明的是,若干音频帧的第一帧数与时延正相关。例如,根据具体的时延要求,可以累积800毫秒、1秒等音频帧之后,再对累积的音频帧进行识别。上述方式,通过将若干音频帧的第一帧数设置为与时延正相关,能够有利于确保后续识别无需再补充无效帧,从而有利于确保后续识别过程中模型能够无损地向前推理。
28.在一个实施场景中,对于每次识别所累积的若干音频帧,可以先提取各个音频帧的声学特征表示,在此基础上,再对每一音频帧,融合音频帧及其之前预设数值帧音频帧的声学特征表示,得到音频帧的语义特征表示。上述方式,通过提取各个音频帧的声学特征表示,并对于每一音频帧,融合音频帧及其之前预设数值帧音频帧的声学特征表示,得到音频帧的语义特征表示,由于在语义提取阶段,对于每一音频帧而言,均包含有其自身及其之前音频帧的声学特征表示,故一方面参考其他音频帧的声学特征表示,能够有利于提高语义特征表示的准确性,另一方面仅参考之前音频帧的声学特征表示,而不参考之后音频帧,也能够确保语义提取过程无时延,从而能够有利于提高语音识别时延的精确性。
29.在一个具体的实施场景中,语义提取表示是利用语义提取网络提取得到的,语义提取网络可以包括但不限于:因果卷积网络、循环神经网络、深度神经网络等等,在此不做限定。
30.在一个具体的实施场景中,语义提取网络采用卷积核进行语义特征提取,且预设数值与卷积核的尺寸正相关。也就是说,卷积核越大,预设数值越大,卷积核越小,预设数值越小。例如,对于3*3的卷积核而言,预设数值可以为2,或者,对于5*5的卷积核而言,预设数值可以为4,其他情况可以以此类推,在此不再一一举例。
31.在一个实施场景中,对于若干音频帧中的第一帧而言,在其之前没有其他音频帧,故可以补入预设数值帧补充帧,并融合该音频帧以及预设数值帧补充帧的声学特征表示,得到该音频帧的语义特征表示。此外,补充帧的声学特征表示可以采用0向量,在此不做限定。
32.在一个实施场景中,具体可以提取音频帧的mfcc(mel frequency cepstrum coefficient,梅尔频率倒谱系数)、plp(perceptual linear predictive,感知线性预测)、fbank等特征,作为声学特征表示。
33.在一个实施场景中,请结合参阅图2,图2是本技术语音识别方法一实施例的过程示意图。如图2所示,流式语音包含一段“今天天气真好”的语音数据,经分帧处理可以得到多帧音频帧,与此同时提取各帧音频帧的声学特征表示,以及对于每一帧音频帧,利用语义提取网络融合该帧音频帧及其之前预设数值帧音频帧的声学特征表示,得到该帧音频帧的语义特征表示,并基于语音识别要求的时延,累积与时延正相关的第一帧数的音频帧。例如,可以在第i次识别过程中,可以累积到“今天”对应的音频帧,在第i+1次识别过程中,可以累积到“天气”对应的音频帧,在第i+2次识别过程中,可以累积到“真好”对应的音频帧,其他情况可以以此类推,在此不再以举例。
34.步骤s12:利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本。
35.本公开实施例中,语音识别模型采用注意力机制,且注意力机制的掩膜(mask)是基于语音识别要求的时延而生成的,具体生成过程可以参阅下述相关描述,在此暂不赘述。具体地,注意力机制可以是单头注意力机制,也可以是多头注意力机制,在此不做限定。关于单头注意力机制、多头注意力机制的区别可以参阅注意力机制的相关技术细节,在此不再赘述。
36.在一个实施场景中,语音识别模型可以包括一层注意力网络层,且注意力网络层的掩膜(mask)是基于语音识别要求的时延而生成的。需要说明的是,该注意力网络层所采用的注意力机制可以是单头注意力机制,也可以是多头注意力机制,在此不做限定。此外,生成掩膜(mask)的具体过程,可以参阅下述相关描述,在此暂不赘述。
37.在一个实施场景中,语音识别模型可以包括多层注意力网络层,每层注意力网络层均对应设有子掩膜,掩膜包含各个注意力网络层的子掩膜,每层注意力网络层的子掩膜是基于对应注意力网络层的子时延而生成的,且各个注意力网络层的子时延相加得到一个和值,该和值与语音识别所要求的时延之间满足预设大小关系。需要说明的是,如前所述,该注意力网络层所采用的注意力机制可以是单头注意力机制,也可以是多头注意力机制,在此不做限定。此外,在语音识别模型包括多层注意力网络层的情况下,其子掩膜的生成原理与语音识别模型包括一层注意力网络层的情况下,其掩膜(mask)的生成原理相同,其差别主要在于子掩膜依据子时延生成,而掩膜依据时延生成,具体生成过程可以参阅下述相关描述,在此暂不赘述。上述方式,语音识别模型包括多层注意力网络层,每层注意力网络层均对应设有子掩膜,掩膜包含各个注意力网络层的子掩膜,每层注意力网络层的子掩膜是基于对应注意力网络层的子时延而生成的,且各个注意力网络层的子时延相加得到一个和值,该和值与时延满足预设大小关系,由于设置多层注意力网络层有利于挖掘深层语义信息,提升语音识别准确性,而通过约束子时延的和值与时延满足预设大小关系,能够有利于使得语音识别模型的整体时延与语音识别所要求的时延相当,故能够在确保满足时延要求的基础上,尽可能地提高语音识别的准确性。
38.在一个具体的实施场景中,语音识别模型具体可以包括音素识别网络和文本解码网络,音素识别网络包括上述注意力网络层,即如前所述,语音识别模型可以包括单层注意力网络层,此时音素识别网络可以包括单层注意力网络层,或者,如前所述,语音识别模型可以包括多层注意力网络层,此时音素识别网络可以包括多层注意力网络层,在此不做限定。具体地,音素识别网络可以用于对若干音频帧的语义特征表示进行音素识别,得到若干音频帧的音素分类信息,文本解码网络用于对音素分类信息进行文本解码,得到若干音频帧对应的识别文本。需要说明的是,文本解码网络可以参阅wfst(weighted finite state transducers,有限加权状态转换机)等,在此不再赘述。上述方式,语音识别模型包括音素识别网络和文本解码网络,音素识别网络包括多层注意力网络层,音素识别网络用于对若干音频帧的语义特征表示进行音素识别,得到若干音频帧的音素分类信息,文本解码网络用于对音素分类信息进行文本解码,得到若干音频帧对应的识别文本,故能够通过音素识别网络、文本解码网络等一系列处理,得到对应的识别文本,有利于提升语音识别效率。
39.在一个具体的实施场景中,语音识别模型可以包括音素识别网络、文本解码网络和语义提取网络,音素识别网络和文本解码网络可以参阅前述相关描述,在此不再赘述。此外,语义提取网络用于提取各个音频帧的语义特征表示,具体可以参阅前述相关描述,在此
不再赘述。
40.在一个具体的实施场景中,请结合参阅图3,图3是注意力机制一实施例的示意图。如图3所示,q、k、v分别表示查询向量序列、键向量序列以及值向量序列,分别可以表示为:
41.q=w
q
xk=w
k
xv=w
v
x
……
(1)
42.上述公式(1)中,w
q
w
k
w
v
均表示注意力机制的网络参数,具体可以在训练过程中进行优化调整。此外,x表示输入序列,即一次识别过程中若干音频帧的语义特征表示。以输入序列的长度是n为例,查询向量序列q和键向量序列k的转置进行矩阵相乘之后,可以得到n*n的第一矩阵,并除以规整系数进行规整,得到n*n的第二矩阵。具体地,规整系数可以设置为序列长度的平方根。为了便于描述,序列长度可以记为d
k
,则规整系数可以表示为第二矩阵中第i行第j列的元素表示若干音频帧中第j个音频帧对于第i个音频帧的重要度。请继续结合参阅图3,掩膜可以表示为一个n*n的矩阵,即掩膜的行数和列数等于若干语音帧的第一帧数n。掩膜中阴影填充位置处表示矩阵元素值不为0,而掩膜中无阴影填充位置处表示矩阵元素值等于0,或者趋近于0,如图3所示,掩膜在主对角线附近处的矩阵元素值不为0,而远离主对角线的矩阵元素值等于0或趋近于0,故通过将掩膜与第二矩阵相乘,可以屏蔽第二矩阵远离主对角线的矩阵元素。以n=6、下式(2)中第二矩阵p以及下式(3)中掩膜m为例,如前所述,第二矩阵p中第1行第2列元素表6帧音频帧中第2帧音频帧对第1帧音频帧的重要度,其他元素可以以此类推,在此不再赘述。此外,如前所述,掩膜m中主对角线附近矩阵元素值为1,远离主对角线的矩阵元素值为0,两者相乘之后,可以得到下式(4)所示的第三矩阵r。如下式(4)所示,通过掩膜相乘可以屏蔽第二矩阵远离主对角线的矩阵元素。例如,第三矩阵r中第1行仅剩余第1行第1列元素和第1行第2列元素,即对于第1帧音频帧而言,在语音识别过程中仅参考其本身及其后一帧音频帧,而第三矩阵r中第2行仅剩余第2行第1列元素、第2行第2列元素和第2行第3列元素,即对于第2帧音频帧而言,在语音识别过程中仅参考其本身及其之前一帧音频帧和之后一帧音频帧,第3帧之后各帧音频帧可以以此类推,在此不再一一举例。由此可见,在语音识别过程中,对于各帧语音帧而言,除其本身之外需要参考未来一帧音频帧,故时延为两帧音频帧对应的持续时长。
[0043][0044]
[0045][0046]
在一个具体的实施场景中,如前所述,可以通过设置掩膜来控制语音识别过程中需要参考未来音频帧的数量,以此来实现自定义时延。故此,在已知当前应用场景下语音识别所要求的时延的情况下,即可设置与该时延对应的掩膜,且时延越大,需要参考未来语音帧的数量越多,掩膜中位于主对角线附近矩阵元素值不为0的矩阵元素也越多。
[0047]
在一个具体的实施场景中,在语音识别模型包括多层注意力网络层的情况下,多层注意力网络层分别对应的子时延的和值可以与语音识别所要求的时延相等,以此能够使得语音识别模型的整体时延与语音识别所要求的时延相当。此外,在已知每层注意力网络层对应的子时延的情况下,即可设置与该子时延对应的子掩膜,且子时延越大,需要参考未来语音帧的数量越多,子掩膜中位于主对角线附近矩阵元素值不为0的矩阵元素也越多。
[0048]
在一个实施场景中,以语音识别模型所采用掩膜对应的时延t以及流式语音“今天天气真好”为例,在第i次识别过程中,可以将“今天”对应的音频帧的语义特征表示输入音素识别网络,得到对应的音素分类信息“jin tian”,并将音素分类信息输入文本解码网络,在时延t之后可以得到对应的识别文本“今天”,在第i+1次识别过程中,可以将“天气”对应的音频帧的语义特征表示输入音素识别网络,得到对应的音素分类信息“tian qi”,并将音素分类信息输入文本解码网络,在时延t之后得到对应的识别文本“天气”,在第i+2次识别过程中,可以将“真好”对应的音频帧的语义特征表示输入音素识别网络,得到对应的音素分类信息“zhen hao”,并将音素分类信息输入文本解码网络,在时延t之后得到对应的识别文本“真好”,其他情况可以以此类推,在此不再一一举例。需要说明的是,上述在时延t之后得到对应的识别文本,表示自将语义特征表示输入音素识别网络起算至得到识别文本总计时延为t。
[0049]
上述方案,获取若干音频帧的语义特征表示,并利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本,且语音识别模型采用注意力机制,注意力机制的掩膜是基于语音识别要求的时延而生成的,由于注意力机制的掩膜能够在语音识别过程中,约束每一音频帧所参考的位于其后的音频帧数量,而掩膜又是基于语音识别要求的时延而生成的,故在语音识别过程中,掩膜约束每一音频帧所参考的位于其后的音频帧数量与时延相对应,从而针对不同时延场景仅需基于时延生成语音识别模型对应的掩膜即可,即单个模型配合不同时延对应的掩膜即可适配不同时延场景,进而能够降低不同时延要求下语音识别的复杂度和成本。
[0050]
请参阅图4,图4是生成子掩膜一实施例的流程示意图。具体而言,可以包括如下步骤:
[0051]
步骤s41:基于若干音频帧的第一帧数,生成初始矩阵。
[0052]
具体地,初始矩阵的行数和列数可以与第一帧数相同,即在第一帧数为n的情况下,初始矩阵可以设置为一个n*n的矩阵。此外,初始矩阵中各个元素的元素值可以初始化
为任意数值(如,0、1、2等),或者,也可以初始化为空(即null),在此不做限定。
[0053]
步骤s42:基于注意力网络层对应的子时延,确定掩膜参数。
[0054]
本公开实施例中,掩膜参数包括第一掩膜值和第二掩膜值。需要说明的是,第一掩膜值表示相邻音频帧分别所参考的音频帧之间的相对偏移,第二掩膜值表示参考未来音频帧的数量。为了便于描述,可以将第一掩膜值记为c,第二掩膜值记为r。
[0055]
在一个实施场景中,请结合参阅图3,如图3所示,对于各个音频帧而言,为满足时延要求,可以参考c帧并向右参考r帧(即未来音频帧)。此外,为了进一步提高语音识别的准确性,还可以向左参考l帧(即历史音频帧),由于未来音频帧在后,故参考未来音频帧直接影响时延,而历史音频帧在前,故参考历史音频帧不会影响时延。在此基础上,掩膜参数还可以进一步包括第三掩膜值,第三掩膜值表示参考历史音频帧的数量。为了便于描述,可以将第三掩膜值记为l。此外,第三掩膜值可以设置为等于第二掩膜值,在此不做限定。
[0056]
在一个实施场景中,如前述公开实施例所述,语音识别模型可以包括多层注意力网络层,故对于每一音频帧而言,在第l层注意力网络层处理之前,在第l
‑
1层注意力网络层实际已经参考了c帧音频帧以及r帧未来语音帧,故在第l层注意力网络层处理时,会导致视野累加。其他层注意力网络层可以以此类推,即实际会存在视野逐层累加以及维度缩放带来的多倍视野跨度,最终将总视野乘以音频帧的持续时长,即可以得到语音识别模型整体的时延。
[0057]
在一个具体的实施场景中,在缩放p倍的情况下,一帧音频帧的视野等于p帧音频帧的视野,故在总视野下乘以缩放系数p即可。
[0058]
在一个具体的实施场景中,对于多层注意力网络层中每一层而言,音频帧总计参考c+r帧音频帧,考虑视野累积,从第二层开始,每层注意力网络实际视野为ceil(r/c)*c,其中,ceil表示上取整。故此,对于n层注意力网络层而言,总视野可以表示为(n
‑
1)
×
ceil(r/c)
×
c+c+r。
[0059]
在一个具体的实施场景中,在缩放p倍的情况下,对于n层注意力网络层而言,总视野可以表示为((n
‑
1)
×
ceil(r/c)
×
c+c+r)
×
p。
[0060]
在一个具体的实施场景中,如上述缩放p倍的情况下,n层注意力网络层的总视野计算公式,在第一掩膜值c为2且第二掩膜值r为1的情况下,总视野为60帧,若音频帧的持续时长为50ms,则语音识别模型整体的时延为3000ms;或者,在第一掩膜值为1且第二掩膜值为31的情况下,总视野为872帧,若音频帧的持续时长为50ms,则语音识别模型整体的时延为43600ms。其他情况可以以此类推,在此不再一一举例。
[0061]
在一个具体的实施场景中,如前所述,可以将总视野乘以音频帧的持续时长得到时延,故在已知语音识别所要求的时延t的情况下,可以根据注意力网络层的总层数n、缩放系数p、时延t以及音频帧的持续时长t联立关于未知数c和r的方程,并求解方程得到第一掩膜值c和第二掩膜值r。在此基础上,可以将每一层注意力网络层对应的子掩膜的掩膜参数均设置为上述求得的第一掩膜值c和第二掩膜值r。例如,在缩放系数p为4,注意力网络层的总层数n为7,时延t为3000ms,持续时长t为50ms的情况下,可以上述总视野的计算方式联立方程:6
×
ceil(r/c)
×
c+c+r=15,即(6
×
ceil(r/c)+1)
×
c+r=15,从而求得第一掩膜值c为2,第二掩膜值r为1,或者,第一掩膜值c为1,第二掩膜值r为2。
[0062]
在一个具体的实施场景中,上述总视野的计算公式均默认每一层注意力网络层对
应的子掩膜的掩膜参数均相同,更为一般性地,各层注意力网络层对应的子掩膜的掩膜参数不尽相同,在此情况下,可以根据子时延和音频帧的持续时长求得第一掩膜值和第二掩膜值。例如,可以将第一层注意力网络层对应的第一掩膜值记为c1,并将第二掩膜值记为r1,以此类推。在此基础上,第一层注意力网络层的视野可以表示为c1+r1,第二层注意力网络层的视野可以表示为(ceil(r1/c1)+1)
×
c2+r2,以此类推直至第n层注意力网络层。基于此,对于第i层注意力网络层而言,在已知子时延t
i
的情况下,可以根据缩放系数p、子时延t
i
以及音频帧的持续时长t联立关于未知数c
i
和r
i
的方程,并求解方程得到第i层注意力网络层对应的子掩膜的掩膜参数c
i
和r
i
。
[0063]
步骤s43:对于初始矩阵的第i行,基于第i
‑
1行中第一元素组的元素位置和掩膜参数,定位第i行中第一元素组和第一元素组之后的第二元素组。
[0064]
本公开实施例中,第i行中第一元素组滞后第i
‑
1行中第一元素组的列数为第一掩膜值,且第一元素组所含第一元素的第一总数为第一掩膜值,第二元素组所含第二元素的第二总数为第二掩膜值。此外,如前所述,掩膜参数还可以进一步包括第三掩膜值,第三掩膜值表示参考历史音频帧的数量,在此情况下,还可以进一步定位第一元素值组之前的第三元素组,且第三元素组所含的第三元素的第三总数为第三掩膜值。
[0065]
在一个实施场景中,第一元素可以设置为第一常数值,第二元素可以设置为第二常数值,而不包含于第一元素组、第二元素组中任一者的元素可以设置为第三常数值,且第一常数值和第二常数值均大于第三常数值。例如,可以将第一常数值和第二常数值均设置为1,第三常数值设置为0,在此不做限定。上述方式,第一元素为第一常数值,第二元素为第二常数值,不包含于第一元素组、第二元素组中任一者的元素为第三常数值,且第一常数值和第二常数值均大于第三常数值,能够在语音识别过程中,使各帧音频帧更加关注其本身及其附近音频帧,并抑制与其他音频帧的信息交互。
[0066]
在一个实施场景中,如前所述,掩膜参数还可以进一步包括第三掩膜值,在此情况下,第三元素也可以设置为第二常数值,或者设置为第四常数值,且第四常数值也大于第三常数值。
[0067]
在一个实施场景中,以第一帧数是6为例,且第一掩膜值c为1,第二掩膜值r为1,第三掩膜值l为1,则对于初始矩阵的第1行而言,可以将第1个元素作为第一元素组,并将位于其后的第2个元素作为第二元素组,并将第一元素和第二元素设置为1,其他元素设置为0;对于初始矩阵的第2行而言,可以相对第1行中第一元素组滞后1列定位第一元素组,即可以将第2个元素作为第一元素组,并将位于其后的第3个元素作为第二元素组,位于其前的第1个元素作为第三元素组,并将第一元素、第二元素和第三元素设置为1,其他元素设置为0。对于第3行、第4行等可以以此类推,最终可以获取到如公式所示的子掩膜。其他情况可以以此类推,在此不再一一举例。
[0068]
需要说明的是,在语音识别模型仅包含一层注意力网络层的情况下,其掩膜的生成过程,可以参考前述描述,如可以基于若干音频帧的第一帧数,生成初始矩阵,并基于语音识别模型整体的时延,确定掩膜参数,且掩膜参数包括第一掩膜值和第二掩膜值,在此基础上,对于初始矩阵的第i行,可以基于第i
‑
1行中第一元素组的元素位置和掩膜参数,定位第i行中第一元素组和第一元素值之后的第二元素值,且第i行中第一元素组滞后第i
‑
1行中第一元素组的列数为第一掩膜值,第一元素组所含第一元素的第一总数为第一掩膜值,
第二元素组所含第二元素的第二总数为第二掩膜值,具体过程可以参阅前述相关描述,在此不再赘述。
[0069]
上述方案,基于若干音频帧的第一帧数,生成初始矩阵,并基于注意力网络对应的子时延,确定掩模参数,且掩模参数包括第一掩膜值和第二掩膜值,对于初始矩阵的第i行,基于第i
‑
1行中第一元素组的元素位置和掩膜参数,定位第i行中第一元素组和第一元素组之后的第二元素组,且第i行中第一元素组滞后第i
‑
1行中第一元素组的列数为第一掩膜值,且第一元素组所含第一元素的第一总数为第一掩膜值,第二元素组所含第二元素的第二总数为第二掩膜值,故对于各个音频帧而言,通过生成的子掩膜能够在语音识别过程中关注其本身以及未来语音帧,以实现识别时延。
[0070]
请参阅图5,图5是训练语音识别模型一实施例的流程示意图。本公开实施例中,语音识别模型是经若干轮训练得到的,且在每轮训练过程中,注意力机制的掩膜均是基于当前轮训练所要求的样本时延而生成的,样本时延是随机设置的,从而提升语音识别模型对于不同时延的泛化能力,以提升语音识别模型在不同时延下的识别效果。具体可以包括如下步骤:
[0071]
步骤s51:获取若干样本音频帧的样本语义特征表示,并获取若干样本音频帧对应的样本实际文本。
[0072]
在一个实施场景中,可以将样本语音进行分帧得到样本音频帧、并提取样本音频帧的样本声学特征表示,以及对于每一样本音频帧,融合样本音频帧之前预设数值帧样本音频帧的样本声学特征表示,得到样本音频帧的样本语义特征表示。具体可以参阅前述公开实施例中关于语义特征表示的提取过程,在此不再赘述。
[0073]
在一个具体的实施场景中,如前述公开实施例所述,每次语音识别可以累积一定帧数的样本音频帧进行识别,且这些样本音频帧的第一帧数与样本时延正相关。具体可以参阅前述公开实施例中关于第一帧数的相关描述,在此不再赘述。
[0074]
在一个具体的实施场景中,样本语义特征表示可以是利用语义提取网络提取得到的,且语义提取网络采用卷积核进行语义特征提取,预设数值与卷积核的尺寸正相关。具体可以参阅前述公开实施例中关于语义特征表示的提取过程,在此不再赘述。
[0075]
在一个具体的实施中,为了覆盖尽可能多的应用场景,可以从尽可能地多的场景中采集得到样本语音。例如,可以从手机语音对话、车载、家居等众多场景采集得到样本语音,在此不做限定。进一步地,为了提高语音识别模型的准确性,还可以对样本语音进行降噪处理。
[0076]
在一个实施场景中,上述样本语音可以标注有其对应的实际文本,在此基础上,可以基于实际文本获取若干样本音频帧对应的样本实际文本。例如,样本语音“今天天气真好”,经上述处理可以分为三组样本音频帧,且每组样本音频帧包含第一帧数的样本音频帧,与“今天”对应的一组样本音频帧,其对应于样本实际文本“今天”,与“天气”对应的一组样本音频帧,其对应于样本实际文本“天气”,与“真好”对应的一组样本音频帧,其对应于样本实际文本“真好”。其他情况可以以此类推,在此不再一一举例。
[0077]
在一个实施场景中,如前述公开实施例所述,语音识别模型可以包括音素识别网络和文本解码网络,在此基础上,可以进一步获取若干样本音频帧对应的样本实际音素。具体地,可以将若干样本音频帧以及对应的样本实际文本输入预先训练的声学模型(如,
fast
‑
speech等),得到若干样本音频帧对应的样本实际音素。声学模型的训练方式,可以参阅声学模型的技术细节,在此不再赘述。
[0078]
步骤s52:利用语音识别模型对若干样本音频帧的样本语义特征表示进行识别,得到若干样本音频帧的对应的样本识别文本。
[0079]
本公开实施例中,如前所述,语音识别模型采用注意力机制,且注意力机制的掩膜均是基于当前轮训练所要求的样本时延而生成的,样本时延是随机设置的。
[0080]
在一个实施场景中,如前所述,语音识别模型包括多层注意力网络层,则各层注意力网络层对应的子时延可以是随机设置的,在此基础上,可以根据随机设置的子时延生成注意力网络层的子掩膜。掩膜的生成过程,可以参阅前述公开实施例,在此不再赘述。
[0081]
在一个实施场景中,如前述公开实施例所述,语音识别模型包括音素识别网络和文本解码网络,音素识别网络包括多层注意力网络层,在此基础上,可以利用音素识别网络对若干样本音频帧的样本语义特征表示进行音素识别,得到若干样本音频帧的样本预测音素,并利用文本解码网络对样本预测音素进行文本解码,得到若干样本音频帧对应的样本识别文本。具体过程可以参阅前述公开实施例中相关描述,在此不再赘述。
[0082]
步骤s53:基于样本实际文本与样本识别文本之间的差异,调整语音识别模型的网络参数。
[0083]
在一个实施场景中,可以基于交叉熵等损失函数处理样本实际文本与样本识别文本,得到第一损失值,并基于第一损失值,采用诸如梯度下降等优化方式调整语音识别模型的网络参数。
[0084]
在一个实施场景中,如前所述,语音识别模型包括音素识别网络和文本解码网络,在此情况下,可以基于样本实际文本与样本识别文本之间的差异,以及样本实际音素与样本预测音素之间的差异,调整语音识别模型的网络参数。具体地,可以基于交叉熵等损失函数处理样本实际文本与样本识别文本,得到第一损失值,并基于交叉熵等损失函数处理样本实际音素与样本预测音素,得到第二损失值,在此基础上,再基于第一损失值和第二损失值,采用诸如梯度下降等优化方式调整语音识别模型的网络参数。
[0085]
上述方案,语音识别模型的训练阶段与语音识别模型的测试阶段均通过设置注意力机制的掩膜来实现识别时延,即测试阶段与训练阶段相匹配,故能够有利于尽可能地降低由于测试与训练不匹配而导致的识别效果损失,有利于提升语音识别的准确性。
[0086]
请参阅图6,图6是本技术语音识别装置60一实施例的框架示意图。语音识别装置60包括:语义特征获取模块61和识别文本获取模块62,语义特征获取模块61,用于获取若干音频帧的语义特征表示;识别文本获取模块62,用于利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本;其中,语音识别模型采用注意力机制,且注意力机制的掩膜是基于语音识别要求的时延而生成的。
[0087]
上述方案,获取若干音频帧的语义特征表示,并利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本,且语音识别模型采用注意力机制,注意力机制的掩膜是基于语音识别要求的时延而生成的,由于注意力机制的掩膜能够在语音识别过程中,约束每一音频帧所参考的位于其后的音频帧数量,而掩膜又是基于语音识别要求的时延而生成的,故在语音识别过程中,掩膜约束每一音频帧所参考的位于其后的音频帧数量与时延相对应,从而针对不同时延场景仅需基于时延生成语音识别模型
对应的掩膜即可,即单个模型配合不同时延对应的掩膜即可适配不同时延场景,进而能够降低不同时延要求下语音识别的复杂度和成本。
[0088]
在一些公开实施例中,语音识别模型包括多层注意力网络层,每层注意力网络层均对应设有子掩膜,掩膜包含各个注意力网络层的子掩膜,每层注意力网络层的子掩膜是基于对应注意力网络层的子时延而生成的,且各个注意力网络层的子时延相加得到一个和值,该和值与时延满足预设大小关系。
[0089]
因此,语音识别模型包括多层注意力网络层,每层注意力网络层均对应设有子掩膜,掩膜包含各个注意力网络层的子掩膜,每层注意力网络层的子掩膜是基于对应注意力网络层的子时延而生成的,且各个注意力网络层的子时延相加得到一个和值,该和值与时延满足预设大小关系,由于设置多层注意力网络层有利于挖掘深层语义信息,提升语音识别准确性,而通过约束子时延的和值与时延满足预设大小关系,能够有利于使得语音识别模型的整体时延与语音识别所要求的时延相当,故能够在确保满足时延要求的基础上,尽可能地提高语音识别的准确性。
[0090]
在一些公开实施例中,预设大小关系包括:和值等于时延。
[0091]
因此,多层注意力网络层分别对应的子时延的和值可以与语音识别所要求的时延相等,以此能够使得语音识别模型的整体时延与语音识别所要求的时延相当。
[0092]
在一些公开实施例中,语音识别装置60包括矩阵初始模块,用于基于若干音频帧的第一帧数,生成初始矩阵;语音识别装置60包括参数求解模块,用于基于注意力网络层对应的子时延,确定掩膜参数;其中,掩膜参数包括第一掩膜值和第二掩膜值;语音识别装置60包括元素定位模块,用于对于初始矩阵的第i行,基于第i
‑
1行中第一元素组的元素位置和掩膜参数,定位第i行中第一元素组和第一元素组之后的第二元素组;其中,第i行中第一元素组滞后第i
‑
1行中第一元素组的列数为第一掩膜值,且第一元素组所含第一元素的第一总数为第一掩膜值,第二元素组所含第二元素的第二总数为第二掩膜值。
[0093]
因此,基于若干音频帧的第一帧数,生成初始矩阵,并基于注意力网络对应的子时延,确定掩模参数,且掩模参数包括第一掩膜值和第二掩膜值,对于初始矩阵的第i行,基于第i
‑
1行中第一元素组的元素位置和掩膜参数,定位第i行中第一元素组和第一元素组之后的第二元素组,且第i行中第一元素组滞后第i
‑
1行中第一元素组的列数为第一掩膜值,且第一元素组所含第一元素的第一总数为第一掩膜值,第二元素组所含第二元素的第二总数为第二掩膜值,故对于各个音频帧而言,通过生成的子掩膜能够在语音识别过程中关注其本身以及未来语音帧,以实现识别时延。
[0094]
在一些公开实施例中,第一元素为第一常数值,第二元素为第二常数值,不包含于第一元素组、第二元素组中任一者的元素为第三常数值,且第一常数值和第二常数值均大于第三常数值。
[0095]
因此,第一元素为第一常数值,第二元素为第二常数值,不包含于第一元素组、第二元素组中任一者的元素为第三常数值,且第一常数值和第二常数值均大于第三常数值,能够在语音识别过程中,使各帧音频帧更加关注其本身及其附近音频帧,并抑制与其他音频帧的信息交互。
[0096]
在一些公开实施例中,第一掩膜值和第二掩膜值是基于子时延和音频帧的持续时长确定的。
[0097]
因此,对于各层注意力网络层而言,通过注意力网络层对应的子时延和音频帧的持续时长来确定第一掩膜值和第二掩膜值,能够有利于提高各层注意力网络层识别时延的准确性。
[0098]
在一些公开实施例中,初始矩阵的行数和列数等于第一帧数。
[0099]
因此,将初始矩阵的行数和列数设置为等于第一帧数,能够使得注意力网络层在掩膜相乘过程中,精确定位各帧音频帧所参考或屏蔽的音频帧。
[0100]
在一些公开实施例中,语音识别模型包括音素识别网络和文本解码网络,音素识别网络包括多层注意力网络层;其中,音素识别网络用于对若干音频帧的语义特征表示进行音素识别,得到若干音频帧的音素分类信息,文本解码网络用于对音素分类信息进行文本解码,得到若干音频帧对应的识别文本。
[0101]
因此,语音识别模型包括音素识别网络和文本解码网络,音素识别网络包括多层注意力网络层,音素识别网络用于对若干音频帧的语义特征表示进行音素识别,得到若干音频帧的音素分类信息,文本解码网络用于对音素分类信息进行文本解码,得到若干音频帧对应的识别文本,故能够通过音素识别网络、文本解码网络等一系列处理,得到对应的识别文本,有利于提升语音识别效率。
[0102]
在一些公开实施例中,语义特征获取模块包括特征提取子模块,用于提取各个音频帧的声学特征表示;语义特征获取模块包括特征融合子模块,用于对于每一音频帧,融合音频帧及其之前预设数值帧音频帧的声学特征表示,得到音频帧的语义特征表示。
[0103]
因此,通过提取各个音频帧的声学特征表示,并对于每一音频帧,融合音频帧及其之前预设数值帧音频帧的声学特征表示,得到音频帧的语义特征表示,由于在语义提取阶段,对于每一音频帧而言,均包含有其自身及其之前音频帧的声学特征表示,故一方面参考其他音频帧的声学特征表示,能够有利于提高语义特征表示的准确性,另一方面仅参考之前音频帧的声学特征表示,而不参考之后音频帧,也能够确保语义提取过程无时延,从而能够有利于提高语音识别时延的精确性。
[0104]
在一些公开实施例中,语音识别模型是经若干轮训练得到的,且在每轮训练过程中,注意力机制的掩膜均是基于当前轮训练所要求的样本时延而生成的,样本时延是随机设置的。
[0105]
因此,由于样本时延是随机设置的,故能够提升语音识别模型对于不同时延的泛化能力,以提升语音识别模型在不同时延下的识别效果,此外,语音识别模型的训练阶段与语音识别模型的测试阶段均通过设置注意力机制的掩膜来实现识别时延,即测试阶段与训练阶段相匹配,故能够有利于尽可能地降低由于测试与训练不匹配而导致的识别效果损失,有利于提升语音识别的准确性。
[0106]
请参阅图7,图7是本技术电子设备70一实施例的框架示意图。电子设备70包括相互耦接的存储器71和处理器72,存储器71中存储有程序指令,处理器72用于执行程序指令以实现上述任一语音识别方法实施例中的步骤。具体地,电子设备70可以包括但不限于:台式计算机、笔记本电脑、服务器、手机、平板电脑等等,在此不做限定。
[0107]
具体而言,处理器72用于控制其自身以及存储器71以实现上述任一语音识别方法实施例中的步骤。处理器72还可以称为cpu(central processing unit,中央处理单元)。处理器72可能是一种集成电路芯片,具有信号的处理能力。处理器72还可以是通用处理器、数
字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field
‑
programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器72可以由集成电路芯片共同实现。
[0108]
上述方案,获取若干音频帧的语义特征表示,并利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本,且语音识别模型采用注意力机制,注意力机制的掩膜是基于语音识别要求的时延而生成的,由于注意力机制的掩膜能够在语音识别过程中,约束每一音频帧所参考的位于其后的音频帧数量,而掩膜又是基于语音识别要求的时延而生成的,故在语音识别过程中,掩膜约束每一音频帧所参考的位于其后的音频帧数量与时延相对应,从而针对不同时延场景仅需基于时延生成语音识别模型对应的掩膜即可,即单个模型配合不同时延对应的掩膜即可适配不同时延场景,进而能够降低不同时延要求下语音识别的复杂度和成本。
[0109]
请参阅图8,图8是本技术计算机可读存储介质80一实施例的框架示意图。计算机可读存储介质80存储有能够被处理器运行的程序指令81,程序指令81用于实现上述任一语音识别方法实施例中的步骤。
[0110]
上述方案,获取若干音频帧的语义特征表示,并利用语音识别模型对若干音频帧的语义特征表示进行识别,得到若干音频帧对应的识别文本,且语音识别模型采用注意力机制,注意力机制的掩膜是基于语音识别要求的时延而生成的,由于注意力机制的掩膜能够在语音识别过程中,约束每一音频帧所参考的位于其后的音频帧数量,而掩膜又是基于语音识别要求的时延而生成的,故在语音识别过程中,掩膜约束每一音频帧所参考的位于其后的音频帧数量与时延相对应,从而针对不同时延场景仅需基于时延生成语音识别模型对应的掩膜即可,即单个模型配合不同时延对应的掩膜即可适配不同时延场景,进而能够降低不同时延要求下语音识别的复杂度和成本。
[0111]
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
[0112]
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
[0113]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
[0114]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0115]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0116]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read
‑
only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。