首页 > 乐器声学 专利正文
一种语音识别方法和语音识别装置与流程

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

一种语音识别方法和语音识别装置与流程

1.本技术涉及语音识别技术领域,尤其涉及一种语音识别方法和语音识别装置。


背景技术:

2.端到端语音识别是指输入端为语音信号,输出端为文本信号的识别技术,期望直接实现语音的输入与解码识别,而不需要繁杂的对齐工作与发音词典制作工作,能够节省大量时间,并具有多种场景的应用。
3.在相关技术中,端到端语音识别的一种主流框架为基于自注意力(attention)模型的神经网络。但是,这种框架并不支持流式场景,即不支持实时识别,给实际应用造成了困难。针对这一问题,通常在实时语音识别场景中对语音流进行加窗处理,得到多个语音段(chunk),以便利用attention模型实现流式端到端语音识别。然而,相关技术中加窗处理的结果并不理想,导致语音识别性能不佳。


技术实现要素:

4.本技术实施例提供一种语音识别方法和语音识别装置,能够兼顾识别速度和识别效果,从而综合改善端对端语音识别场景的语音识别性能。
5.本技术的技术方案是这样实现的:
6.第一方面,本技术实施例提供了一种语音识别方法,该方法包括:
7.对语音数据流进行加窗处理,确定位于窗口内的语音数据;
8.对窗口内的语音数据进行对象识别处理,并根据对象识别处理结果对窗口进行长度调整,并将位于调整后的窗口内的语音数据确定为目标语音段;
9.基于识别模型对目标语音段进行语音识别处理,得到目标识别结果。
10.第二方面,本技术实施例提供了一种语音识别装置,语音识别装置包括处理单元、调整单元和识别单元;其中,
11.处理单元,配置为对语音数据流进行加窗处理,确定位于窗口内的语音数据;
12.调整单元,配置为对窗口内的语音数据进行对象识别处理,并根据对象识别处理结果对窗口进行长度调整,并将位于调整后的窗口内的语音数据确定为目标语音段;
13.识别单元,配置为基于识别模型对目标语音段进行语音识别处理,得到目标识别结果。
14.本技术实施例提供了一种语音识别方法和语音识别装置,对语音数据流进行加窗处理,确定位于窗口内的语音数据;对窗口内的语音数据进行对象识别处理,并根据对象识别处理结果对窗口进行长度调整,并将位于调整后的窗口内的语音数据确定为目标语音段;基于识别模型对目标语音段进行语音识别处理,得到目标识别结果。这样,在对语音数据流进行加窗处理时,根据对象识别处理的结果灵活调整窗口长度,以得到不同大小的目标语音段,能够兼顾识别速度和识别效果,从而综合改善端对端语音识别场景的语音识别性能。
附图说明
15.图1为本技术实施例提供的一种语音识别方法的流程示意图;
16.图2为本技术实施例提供的一种语音识别网络的结构示意图;
17.图3为本技术实施例提供的另一种语音识别网络的结构示意图;
18.图4为本技术实施例提供的一种语音识别装置的组成结构示意图;
19.图5为本技术实施例提供的一种电子设备的组成结构示意图;
20.图6为本技术实施例提供的另一种电子设备的组成结构示意图。
具体实施方式
21.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
22.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
23.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
24.需要指出,本技术实施例所涉及的术语“第一第二第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一第二第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
25.应理解,端到端语音识别主要分为两个框架,分别基于rnn

t(recurrent neural network transducer)模型和基于自注意力attention模型,尤以attention模型为主。然而,对于基于attention的神经网络(transformer)需要参考上下文特征,因此不支持流式(streaming)翻译,无法满足实际应用场景的要求。
26.为了解决这一问题,一般需要对语音流进行加窗处理,将语音流切分为多个不同的语音段(一般称为chunk)进行输入,以构造上下文信息。在这里,chunk的大小一般为固定大小。经研究发现,如果chunk的长度过大,会造成很大的延迟,如果chunk太小,则识别结果较差。
27.基于此,本技术实施例提供了一种语音识别方法,该方法的基本思想为:对语音数据流进行加窗处理,确定位于窗口内的语音数据;对窗口内的语音数据进行对象识别处理,并根据对象识别处理结果对窗口进行长度调整,并将位于调整后的窗口内的语音数据确定为目标语音段;基于识别模型对目标语音段进行语音识别处理,得到目标识别结果。这样,在对语音数据流进行加窗处理时,根据对象识别处理结果灵活调整窗口长度,以得到不同大小的目标语音段,能够兼顾识别速度和识别效果,从而综合改善端对端语音识别场景的语音识别性能。
28.下面将结合附图对本技术各实施例进行详细说明。
29.在本技术的一实施例中,参见图1,其示出了本技术实施例提供的一种语音识别方
法的流程示意图。如图1所示,该方法可以包括:
30.s101:对语音数据流进行加窗处理,确定位于窗口内的语音数据。
31.需要说明的是,本技术实施例提供的语音识别方法应用于多种电子设备,例如电子设备可以是诸如计算机、智能手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(personal digital assistant,pda)、导航装置、智能家具、车载设备等等,本技术实施例对此不作具体限定。
32.在本技术实施例中,以端对端语音识别为应用场景对语音识别方法进行解释说明,但这并不构成相关限制。
33.在端对端语音识别中,经常需要对语音数据流进行加窗处理(或称为分割处理),从而将连续的语音流数据划分成多个语音段(chunk),后续以chunk为单位进行语音识别。例如,在基于attention的语音识别模型中,需要依赖于上下文进行语音识别,但是在端对端语音场景中,需要对语音流进行实时翻译,从而缺乏“上下文信息”;而通过加窗处理,实时的语音数据流被切分为不同的语音段,可以将某一语音段的前后的语音段视为该语音段的“上下文信息”,以使得基于attention的语音识别模型能够应用于端对端语音识别中。
34.然而,在相关实施例中,chunk的大小是固定的,chunk越大,识别准确性越高,但是延迟越长;chunk越小,识别速度较快,但是准确性降低。因此,如何合理的设置chunk的大小成为了亟待解决的问题。
35.因此,本技术实施例提供了一种语音识别方法,能够灵活调整chunk的大小,从而兼顾识别速度和识别效果,从而综合改善端对端语音识别场景的语音识别性能。
36.s102:对窗口内的语音数据进行对象识别处理,并根据对象识别处理结果对窗口进行长度调整,并将位于调整后的窗口内的语音数据确定为目标语音段。
37.需要说明的是,在对语音数据流进行加窗处理时,对窗口内的语音数据进行对象识别处理,并基于对象识别处理的结果调整窗口的长度,以确定目标语音段。在这里,窗口的长度是指窗口中所包含的语音帧数量。
38.本技术实施例中,窗口是一个虚拟概念,泛指加窗处理中用来分割语音数据流的算法概念,而并非规定了任何实体概念。例如,窗口可以为矩形窗(rectwin)、汉明窗(hamming)、汉宁窗(hann)等。
39.需要说明的是,对象识别处理是指判断语音数据中是否存在识别对象(或称为最小可识别单元、token)。应理解,chunk只有存在一个或多个识别对象,该chunk才具有可识别意义。特别地,根据使用场景不同token的定义是不同的,例如可以采用字(char)、词(word)、音素等来作为token。
40.也就是说,在语音识别场景中,识别对象的长度是不确定的,受到说话人的发声习惯、字词语音特征、语音数据流产生的场景等等因素的影响。但是对于语音识别过程来说,期望每个chunk都存在至少一个token,以便达到较好的识别效果,同时降低识别延迟。。
41.在本技术实施例中,根据对象识别处理结果对窗口进行长度调整,并将调整后的窗口内的语音数据确定为一个目标chunk,即chunk的大小可以根据token的持续时长进行灵活调整,保证每个chunk都存在至少一个token,改善语音识别的效果。
42.在一些实施例中,可以通过延长窗口的方法对窗口进行调整。所述根据对象识别处理结果对窗口进行长度调整,可以包括:
43.若对象识别处理结果指示窗口内的语音数据不存在识别对象,则延伸窗口的长度,直至位于调整后的窗口内的语音数据存在识别对象;
44.若对象识别处理结果指示窗口内的语音数据存在识别对象,则保持窗口的长度不变。
45.需要说明的是,如果窗口内的语音数据存在token,那么可以将窗口内的语音数据确定为一个chunk,送入后续处理环节;反之,如果窗口内的语音数据不存在token,那么可以需要延长窗口的长度,直到窗口内的语音数据存在识别对象,此时将调整后的窗口内的语音数据确定为一个chunk,送入后续处理环节。
46.进一步地,在一些实施例中,所述延伸窗口的长度,可以包括:
47.将窗口的长度调整为预设倍数的初始长度。
48.需要说明的是,在对窗口进行延伸时,可以每次都延长一个初始长度。以初始长度为5帧为例,如果位于窗口内的语音数据不存在token,则将该窗口的长度增加5帧,并再次对窗口内的语音数据进行再次检测,如果增加5帧后的窗口内的语音数据仍然不存在token,则将增加5帧后的窗口继续增加5帧
……
直至位于调整后的窗口内的语音数据存在token。
49.在另一些实施例中,还可以通过缩短延长窗口的方法对窗口进行调整。所述根据对象识别处理结果对窗口进行长度调整,可以包括:
50.若对象识别处理结果指示窗口内的语音数据存在识别对象,则根据识别对象的位置缩短窗口的长度。
51.需要说明的是,如果窗口内的语音数据存在token,可以根据token的边界位置对窗口的长度进行缩短,从而得到冗余数据较少的chunk,提高语音识别的效率。
52.进一步地,在一些实施例中,在确定目标语音段之后,该方法还可以包括:
53.若调整后的窗口的长度与窗口的初始长度不同,则对调整后的窗口进行长度恢复处理,得到初始长度的窗口;
54.将窗口在语音数据流上进行滑动,并再次执行确定位于窗口内的语音数据的步骤。
55.需要说明的是,在确定好目标语音段后,如果该窗口经过了长度调整,需要将该窗口的长度恢复为初始长度;然后将窗口继续在语音数据流中进行滑动,从而继续进行加窗处理。
56.在这里,窗口滑动的距离一般小于窗口的长度,即不同chunk可能存在重叠的语音帧,从而避免漏掉token。
57.还需要说明的是,一段语音数据中是否存在识别对象的判断标准可以根据实际应用场景进行确定,例如以token的结束边界作为token存在的标准,即只要一端语音数据中存在一个边界就确定该语音数据中存在token。
58.因此,在一些实施例中,对窗口内的语音数据进行对象识别处理,可以包括:
59.对位于窗口内的语音数据进行逐帧检测;
60.若检测到所有帧均不存在对象边界,则确定对象识别处理结果指示窗口内的语音数据不存在识别对象;
61.若检测到至少一帧存在对象边界,则确定对象识别处理结果指示窗口内的语音数
据存在识别对象。
62.需要说明的是,在另一些实施例中,也可以采用两个token的结束边界为token存在的标准。此时,只有在位于窗口内的语音数据中的至少两帧均为对象边界时,才会确定检测到识别对象。
63.应理解,对象识别处理可以借由多种模型实现,例如门网络、ctc模型、scotnet边界模型、token时长模型等等。
64.综上所述,本技术实施例提供了一种方法,能够将连续的数据流切分成大小不同的数据段(chunk),该方法可以应用于端对端语音识别领域,也可以应用于图像处理、信号处理等领域,技术人员可以根据本技术实施例的描述将其应用于任何涉及到数据分割的场景,这些场景均应视为本技术实施例的保护范围。
65.以语音识别为例,本技术实施例进一步给出了多种不同的数据段大小调整方法,例如窗口延伸、窗口缩短、窗口延伸+窗口缩短,以下给出几种不同的示例。
66.示例一:
67.设定一个初始长度较小的窗口,例如初始长度为5帧;
68.利用该窗口对语音数据流进行加窗处理,对位于窗口内的语音数据逐帧进行对象识别处理;
69.如果检测到某一语音帧为对象边界,则将位于窗口内的语音数据帧确定为一个chunk;
70.如果所有语音帧均不是对象边界,则将窗口的长度增加5帧,并返回“对位于窗口内的语音数据逐帧进行对象识别处理”的步骤,直至检测到某一语音帧为对象边界,并将此时的窗口(即调整后的窗口)内的语音数据确定为一个chunk。
71.示例二:
72.设定一个初始长度较大的窗口,例如初始长度为15帧;
73.利用该窗口对语音数据流进行加窗处理,对于位于窗口内的语音数据,从起始点(也可以是末尾点)逐帧进行对象识别处理;
74.若检测到某一语音帧为对象边界,则将该窗口的结束边缩短至该语音帧,并将位于窗口内的语音数据帧确定为一个chunk。
75.示例三:
76.设定一个初始长度适中的窗口,例如初始长度为10帧;
77.利用该窗口对语音数据流进行加窗处理,对于位于窗口内的语音数据,从起始点(也可以是末尾点)逐帧进行对象识别处理;
78.若检测到某一语音帧为对象边界,则将该窗口的结束边缩短至该语音帧,并将位于窗口内的语音数据帧确定为一个chunk;
79.如果所有语音帧均不是对象边界,则将窗口的长度增加5帧,并返回“对位于窗口内的语音数据逐帧进行对象识别处理”的步骤。
80.这样,通过以上几种方法,均可在语音数据流中确定chunk,能够实现chunk的大小随着token时长进行灵活变化,从而每个chunk都至少包括一个token,改善语音识别的效率和准确性。
81.s103:基于识别模型对目标语音段进行语音识别处理,得到目标识别结果。
82.需要说明的是,在得到目标语音段后,将目标语音段送入后续识别模型(或称为语音识别模型),以得到目标识别结果。
83.应理解,在端对端语音识别的场景中,语音数据流会被加窗处理为多个语音段,这些语音段会连续地进入识别模型。在一些实施例中,识别模型会结合目标语音段前后的语音段对目标语音段进行识别。
84.进一步地,在一些实施例中,识别模型包括编码器和解码器;所述基于识别模型对目标语音段进行语音识别处理,得到目标识别结果,可以包括:
85.利用编码器对目标语音段进行编码处理,得到特征向量信息;
86.利用解码器对特征向量信息进行解码处理,得到目标识别结果。
87.需要说明的是,编码器和解码器是最为常见的神经网络构架。具体地,编码器用于确定目标语音段的特征向量信息,解码器用于进行解码处理,确定目标识别结果。
88.在这里,由于送入编码器的数据是以chunk为单位的,因此解码器也只能以chunk为单位进行解码。但是,在语音识别领域,更为高效和稳定的解码单位是token,也就是说,识别模型会结合目标token前后的token对目标token进行识别。因此,在一些实施例中,识别模型还包括至少一个位置识别模型,利用解码器对特征向量信息进行解码处理,得到目标识别结果,包括:
89.利用至少一个位置识别模型对目标语音段进行位置识别处理,得到至少一个边界位置信息;
90.对至少一个边界位置信息进行置信度筛选,确定目标边界位置信息;
91.将目标边界位置信息和特征向量信息输入到解码器,得到目标识别结果。
92.需要说明的是,边界位置信息用于指示每个chunk中token的具体位置。这样,解码器可以根据token的具体位置以token为单位进行解码,从而提高识别的效率和正确性。
93.目前,已经有多种原理的位置识别模型用于确定token在语音数据中的具体位置,但是不同的位置识别模型各有优劣,仅采用一种位置识别模型难免会降低正确性。因此,本技术实施例中还可以采用多个位置识别模型进行位置识别处理,然后选用置信度最高的结果确定目标边界信息,能够提高边界位置信息的准确性,进而提高识别结果的准确性。
94.当然,在速度优先的应用场景,也可以进采用一个位置识别模型进行位置识别处理,此时可以跳过置信度筛选过程,该位置识别模型的结果即用于确定目标边界位置信息。
95.进一步地,位置识别模型包括以下的至少一个:连接时序分类模型、边界识别模型和时长识别模型;利用至少一个位置识别模型对目标语音段进行位置识别处理,得到至少一个边界位置信息,至少包括:
96.利用连接时序分类模型对特征向量信息进行对象数量分析处理,确定第一边界位置信息;
97.利用边界识别模型对目标语音段进行边界位置分析处理,确定第二边界位置信息;
98.利用时长识别模型对目标语音段进行对象时长分析处理,确定第三边界位置信息;
99.将第一边界位置信息、第二边界位置信息和第三边界位置信息确定为至少一个边界位置信息。
100.需要说明的是,连接时序分类模型可以为ctc(connectionist temporal classification)网络,能够统计目标语音段的数量并输出置信度信息;边界识别模型可以为scotnet网络,可以判断word(每个word视为一个token)的边界并输出置信度信息;时长识别模型可以为token时长网络,可以分析目标语音段中每个token的时长,并进行置信度打分。另外,ctc网络还能对对目标语音段的每一帧进行标注,以指示当前帧是否为空白,从而判断出token的范围。
101.换句话说,连接时序分类模型、边界识别模型和时长识别模型都能够给出边界位置信息。因此,对连接时序分类模型、边界识别模型和时长识别模型输出的结果进行置信度比较,选择置信度最高的模型确定最终的目标边界信息,从而提高识别准确性。
102.另外,以上位置识别模型也可以选择性用于步骤s102中的对象识别处理。
103.本技术实施例提供了一种语音识别方法,语音数据流进行加窗处理,确定位于窗口内的语音数据;对窗口内的语音数据进行对象识别处理,并根据对象识别处理结果对窗口进行长度调整,并将位于调整后的窗口内的语音数据确定为目标语音段;基于识别模型对目标语音段进行语音识别处理,得到目标识别结果。这样,一方面,本技术实施例提供的语音识别方法能够根据token时长确定chunk的大小,兼顾了处理速度和识别准确率;另一方面,识别模型中包括多个位置识别模型,采用多级判断的方式确定目标边界位置信息,从而避免单一判断标准造成边界位置偏差,进一步提高识别准确率。
104.在本技术的一实施例中,参见图2,其示出了本技术实施例提供的一种语音识别网络20的结构示意图。该语音识别网络20能够执行如前述的语音识别方法。
105.如图2所示,语音识别网络20至少部分包括语音输入模块201、chunk设置模块202、门网络模块203、chunk确认模块204、编码器(encoder)205、连接时序分类模型206、解码器(decoder)207和识别结果输出模块208。。
106.语音输入模块201,用于从手机、笔记本电脑等终端设备采集语音信号,形成语音数据流。
107.chunk设置模块202,用于根据初始窗口长度在语音数据流中截取一较小的chunk。例如,预设长度可以为5帧。
108.门网络模块203,用于对chunk设置模块202输出的chunk进行对象识别处理,以确定当前chunk是否存在识别对象;如果当前chunk不存在识别对象,则将当前chunk增加5帧,并再次进行对象识别处理,直至检测到识别对象。
109.需要说明的是,门网络模块203可以通过多种网络模型构建。示例性地,门网络模块203可以用几层全连接层或者卷积神经网络(convolutional neural network,cnn)组成。此时,门网络模块203输入是一段语音数据信号,门网络模块203对语音数据信号进行逐帧判断,输出为当前帧是否为token的边界的判断结果。
110.chunk确认模块204,用于根据门网络的输出结果,确认chunk的大小。
111.在这里,如果门网络模块203的输出结果为当前帧不是token的边界,则循环进行下一帧的判断。如果当前chunk的所有帧都没有判断到token的边界,则将chunk的长度增加到2倍、3倍、4倍
……
并在chunk的长度增加后继续进行对象识别处理;反之,如果当前帧是一个token的边界,则将当前chunk确定为目标chunk输入到编码器205。
112.编码器模块205,用于对chunk进行编码处理,输出为隐藏层节点,即chunk的特征
向量信息。
113.在这里,编码器模块205可以为基于conformer(一种编码方法)的encoder,例如,encoder可以包括降采样模块、位置编码模块//自注意力反馈(self

attention)模块、前向传播(feed

forward)模块和cnn模块。
114.连接时序分类模型206,用于识别chunk中token所在的具体位置,即确定目标边界位置信息。
115.在这里,连接时序分类模型206的本质是一种位置识别模型,可以通过ctc网络实现。ctc网络可以得到帧级别的对齐信息,ctc网络可以对两个不等长序列之间的映射关系进行建模,因为ctc网络在标注符号集中加入了一个空白符号(blank),它意味着此帧没有预测值输出,因而在基于ctc网络的预测输出中,可能包含许多空白符号,最终再进行去空白去重压缩。这个特性正适用语音识别研究中的序列建模问题,事先知道各语音段的字符序列或者音素序列,但它们与输入特征序列间的对齐关系不确定,而且一般字符序列或者音素序列的长度要远小于输入的帧序列的长度,因此可以将ctc网络用于语音序列预测。
116.解码器207,用于根据目标边界信息对特征向量信息进行解码,确定解码结果。
117.识别结果输出模块208,用于根据解码结果确定目标识别结果。
118.在这里,解码器207可以为decoder,识别结果输出模块208可以是打分算法(例如softmax算法)。
119.特别地,decoder和识别结果输出模块在逻辑上也可以视为一个整体。示例性地,前述实施例中的解码器的概念实际为解码器207和识别结果输出模块208的整体。换句话说,可以认为解码器的输入为特征向量信息和目标边界信息,并输出目标识别结果。
120.还需要说明的是,解码器207可以采用基于attention的构架,此时还需要参考token的上下文信息,从而更好的确定预测结果。示例性地,解码器207可以由两个self

attention模块组成,第一个self

attention模块输入为历史的预测的token序列(即目标token的上下文信息),输出为一个矢量,表示基于上下文来预测的下一个token的特征;第二个self

attention模块的输入为第一个self

attention模块的输出和encoder的输出,通过softmax进行token标签的预测,确定最终的预测结果。
121.综上所述,语音识别网络20中的涉及chunk确定和语音识别两大部分。
122.一方面,chunk确定部分包括语音输入模块201、chunk设置模块202、门网络模块203、chunk确认模块204,主要用于根据token时长灵活确定chunk时长,兼顾识别速度和识别效率。
123.另一方面,语音识别部分(相当去前述的识别模型)包括编码器205、连接时序分类模型206、解码器207和识别结果输出模块208。编码器205和解码器207分别由多头自注意力模块(multi

head attention)构成,输入语音通过加窗处理提取特征后,进入编码器205,生成特征向量信息,并采用ctc网络得到基于帧的分类结果(分类结果指示了每一帧是否为对象边界),在ctc网络输出为非blank的token时,将当前帧节点输入给解码器207进行解码,预测下一个token的标签。
124.应理解,在相关技术中,在训练神经网络时经常采用动态大小的chunk,训练好之后需要根据实际应用需求确定合适的chunk大小,主要是根据延迟的接受程度,例如,在离线的场景下,chunk可以大一些;实时情况下,要根据需要减小chunk。然而,以上方法具有以
下缺点:在对待处理的语音数据流进行实际处理时中chunk大小的设置固定后,不做调整,chunk偏大时造成资源浪费,chunk偏小时,造成识别性能下降。
125.因此,在本技术实施例中,首先采用建模单元(包括chunk设置模块202、门网络模块203、chunk确认模块204)进行token时长的估计,根据token的长度,不同时长的token采用不同的chunk,采用不同大小的chunk进行解码,既可以降低不必要的资源浪费,又可以提升识别准确性
126.具体地,在本技术实施例中,采用较小的固定chunk进行输入,将该chunk输入门网络进行token(token可以为word)时长的预测,根据token(word)时长的大小,调整chunk的大小得到目标chunk,进而将目标chunk送入编码器进行特征提取,然后将编码器输出的隐层信息(相当于特征向量信息),输入到decoder,进行当前token的预测。
127.本技术实施例提供了一种语音识别方法,通过本实施例对前述实施例的具体实施方法进行了详细阐述,从中可以看出,在对语音数据流进行加窗处理时,根据对象识别处理的结果灵活调整窗口长度,以得到不同大小的目标语音段,即根据token时长确定chunk的大小,能够兼顾识别速度和识别效果,从而综合改善端对端语音识别场景的语音识别性能。
128.在又一种实施例中,参见图3,其示出了本技术实施例提供的一种语音识别网络30的结构示意图。该语音识别网络30能够执行如前述的语音识别方法。
129.如图3所示,语音识别模型30至少部分包括语音输入模块301、chunk设置模块302、边界识别模型303、时长识别模型304、编码器(encoder)305、连接时序分类模型306、置信度判断模块307、解码器(decoder)308和识别结果输出模块309。
130.语音输入模块301,用于从手机、笔记本等终端设备采集语音信号,形成语音数据流。
131.chunk设置模块302,用于根据对语音数据流进行加窗处理,得到多个chunk。
132.边界识别模型303,用于对每一个chunk进行边界识别处理,得到边界识别结果和第一置信度。
133.在这里,边界识别模型303可以采用scotnet网络,scotnet网络可以用几层全连接层或者cnn网络组成。scotnet网络能够对chunk中的语音数据进行逐帧判断,以确定哪一帧是word的边界;如果当前chunk没有word的边界,则进行下一个chunk的判断。在本技术实施例中,一个word为一个token。
134.时长识别模型304,用于对目标chunk进行token时长识别处理,得到时长识别结果和第二置信度。
135.在这里,时长识别模型304可以采用token时长网络,可以用几层全连接层或者cnn网络组成,输入是一段语音信号,输出为该语音信号中token时长以及token时长的置信度打分。
136.编码器(encoder)306,用于对chunk进行编码处理,输出为隐藏层节点,即chunk的特征向量信息。
137.在这里,编码器305可以为基于conformer(一种编码方法)的encoder,例如,encoder可以包括降采样模块,位置编码模块,自注意力反馈(self

attention)模块,前向传播(feed

forward)模块,cnn模块。
138.连接时序分类模型306,用于对每个chunk进行token数量统计处理,得到数量统计
结果和第三置信度。
139.在这里,连接时序分类模型306可以采用ctc网络。在这里,与scotnet网络和token时长网络不同的是,ctc网络的输入优先采用chunk的特征向量信息。
140.置信度判断模块307,用于对第一置信度、第二置信度和第三置信度进行比较,确定目标边界信息。
141.在这里,scotnet网络、token时长网络和ctc网络均可认为是位置识别模型,用于确定每个chunk中的token位置。因此,对于一个具体的chunk,通过置信度比较能够确定以上哪一个网络的位置识别最为准确,并根据置信度最高的网络确定最终的目标边界信息。
142.解码器(decoder)308,用于根据目标边界信息对特征向量信息进行解码,确定解码结果。
143.识别结果输出模块309,用于根据解码结果确定目标识别结果。
144.综上所述,在一种具体地实施例中,可以利用ctc曲线的尖峰得到token的个数,采用scotnet网络进行word边界的判断,采用token时长的网络进行token时长的判断,并将根据置信度最高的网络确定目标边界信息,从而提供识别结果的准确性。
145.在相关技术中,根据encoder的输出,一般采用token的个数、或者word的边界、或者token时长进行encoder的输出,并输入到decoder进行解码。然而,在采用一种判断准则进行判断的情况下,边界判断可能不准确,直接影响decoder的性能,造成识别结果不准确。
146.在本技术实施例中,将token个数和word边界用置信度进行判断,采用置信度高的结果进行输出,并根据token的时长,对encoder的结果进行确认。这样,采用多级混合方式,可以得到更准确地encoder的输出信息,从而提升识别结果。
147.本技术实施例提供了一种语音识别方法,通过本实施例对前述实施例的具体实施方法进行了详细阐述,从中可以看出,识别模型中包括多个位置识别模型,采用多级判断的方式确定目标边界位置信息,从而避免单一判断标准造成边界位置偏差,进一步提高识别准确率。
148.在本技术的再一实施例中,参见图4,其示出了本技术实施例提供的一种语音识别装置40的组成结构示意图。如图4所示,该语音识别装置40包括处理单元401、调整单元402和识别单元403;其中,
149.处理单元401,配置为对语音数据流进行加窗处理,确定位于窗口内的语音数据;
150.调整单元402,配置为对窗口内的语音数据进行对象识别处理,并根据对象识别处理结果对窗口进行长度调整,并将位于调整后的窗口内的语音数据确定为目标语音段;
151.识别单元403,配置为基于识别模型对目标语音段进行语音识别处理,得到目标识别结果。
152.在一些实施例中,调整单元402,具体配置为若对象识别处理结果指示窗口内的语音数据不存在识别对象,则延伸窗口的长度,直至位于调整后的窗口内的语音数据存在识别对象;若对象识别处理结果指示窗口内的语音数据存在识别对象,则保持窗口的长度不变。
153.在一些实施例中,调整单元402,还配置为若对象识别处理结果指示窗口内的语音数据存在识别对象,则根据识别对象的位置缩短窗口的长度。
154.在一些实施例中,调整单元402,还配置为若调整后的窗口的长度与窗口的初始长
度不同,则对调整后的窗口进行长度恢复处理,得到初始长度的窗口;
155.相应地,处理单元401,还配置为将窗口在语音数据流上进行滑动,并再次执行确定位于窗口内的语音数据的步骤。
156.在一些实施例中,调整单元402,还配置为对位于窗口内的语音数据进行逐帧检测;若检测到所有帧均不存在对象边界,则确定对象识别处理结果指示窗口内的语音数据不存在识别对象;若检测到至少一帧存在对象边界,则确定对象识别处理结果指示窗口内的语音数据存在识别对象。
157.在一些实施例中,调整单元402,还配置为将窗口的长度调整为预设倍数的初始长度。
158.在一些实施例中,识别模型包括编码器和解码器;识别单元403,具体配置为利用编码器对目标语音段进行编码处理,得到特征向量信息;
159.利用解码器对特征向量信息进行解码处理,得到目标识别结果。
160.在一些实施例中,识别模型还包括至少一个位置识别模型,识别单元403,还配置为利用至少一个位置识别模型对目标语音段进行位置识别处理,得到至少一个边界位置信息;对至少一个边界位置信息进行置信度筛选,确定目标边界位置信息;将目标边界位置信息和特征向量信息输入到解码器,得到目标识别结果。
161.在一些实施例中,位置识别模型包括以下的至少一个:连接时序分类模型、边界识别模型和时长识别模型;识别单元403,具体配置为利用连接时序分类模型对特征向量信息进行对象数量分析处理,确定第一边界位置信息;利用边界识别模型对目标语音段进行边界位置分析处理,确定第二边界位置信息;利用时长识别模型对目标语音段进行对象时长分析处理,确定第三边界位置信息;将第一边界位置信息、第二边界位置信息和第三边界位置信息确定为至少一个边界位置信息。
162.可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
163.集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
164.因此,本实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,计算机程序被多个处理器执行时实现前述实施例中任一项的方法的步骤。
165.基于上述的一种语音识别装置40的组成以及计算机存储介质,参见图5,其示出了本技术实施例提供的一种电子设备50的硬件结构示意图。如图5所示,电子设备50可以包
logic device,pld)、现场可编程门阵列(field

programmable gate array,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术功能的其它电子单元或其组合中。
174.对于软件实现,可通过执行本技术功能的模块(例如过程、函数等)来实现本技术的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
175.可选地,作为另一个实施例,处理器503还配置为在运行计算机程序时,执行前述实施例中任一项的方法的步骤。
176.在本技术的再一实施例中,基于上述语音识别装置40的组成示意图,参见图6,其示出了本技术实施例提供的另一种电子设备50的组成结构示意图。如图6所示,该电子设备50至少包括前述实施例中任一项的语音识别装置40。
177.对于电子设备50而言,由于其包括语音识别装置40,在对语音数据流进行加窗处理时,根据对象识别处理的结果灵活调整窗口长度,以得到不同大小的目标语音段,能够兼顾识别速度和识别效果,从而综合改善端对端语音识别场景的语音识别性能。
178.以上,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
179.需要说明的是,在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
180.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
181.本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
182.本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
183.本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
184.以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。