一种语音识别装置、方法、电子设备及存储介质与流程
本申请涉及语音处理技术领域,具体而言,涉及一种语音识别装置、方法、电子设备及存储介质。
背景技术:
自动语音识别(automaticspeechrecognition,asr)是实现人机交互的关键技术。随着深度学习技术的发展,基于深度学习的语音识别技术经历了革命性的变化。
目前,传统的语音识别技术是基于dnn-hmm(深度神经网络-隐马尔科夫模型)构建语音识别系统,该语音识别系统包括特征提取模块、声学模型、发音字典和语言模型四部分。语音识别系统在接收到待识别语音信号后,由特征提取模块提取了待识别语音信号的语音特征序列,并将提取的语音特征序列输入到声学模型中,实现语音特征序列到音素序列的转换以及特征与音素的对齐;发音字典是连接声学模型和语音模型的桥梁,实现音素序列到单词的映射,语音模型则输出文字信息,实现了语音信号到文字信息的转换。
但是,上述dnn-hmm的语音识别系统存在结构复杂,识别效率低,以及识别准确度差的问题。
技术实现要素:
有鉴于此,本申请实施例的目的在于提供一种语音识别装置、方法、电子设备及存储介质,简化了语音识别系统的结构,加快了语音识别效率,以及提高了识别准确度。
第一方面,本申请实施例提供了一种语音识别装置,所述装置包括:
获取模块,用于获取待识别语音序列;
分帧处理模块,用于对所述获取模块获取的所述待识别语音序列进行分帧处理,得到所述待识别语音序列对应的语音帧;
第一生成模块,用于基于所述分帧处理模块分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量;
解析模块,用于基于所述第一生成模块生成的所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值;
第二生成模块,用于基于所述第一生成模块生成的所述高维特征向量以及所述解析模块解析得到的待生成的每一个文字在所述高维特征向量中不同位置的权重值,生成所述待识别语音序列对应的文字序列。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述第一生成模块具体用于,根据以下步骤基于所述分帧处理模块分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量:
对所述分帧处理模块分帧处理得到的各个语音帧进行特征提取,得到各个语音帧对应的第一语音特征向量;
针对每一语音帧,基于该语音帧对应的第一语音特征向量以及该语音帧之前的各个语音帧分别对应的第一语音特征向量,生成该语音帧对应的第二语音特征向量;
基于所述待识别语音序列中各个语音帧分别对应的第二语音特征向量,生成所述待识别语音序列的高维特征向量。
结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,所述解析模块具体用于,根据以下步骤基于所述第一生成模块生成的所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值:
针对待生成的每一个文字,选取该文字的前一个文字作为目标文字,基于所述目标文字对应的中间状态向量和该文字对应的高维特征向量,生成该文字对应的中间状态向量;其中,该文字对应的高维特征向量是所述目标文字对应的高维特征向量与所述目标文字在对应的高维特征向量中的权重值进行加权得到的;
将该文字对应的中间状态向量输入到多分类激活函数中,得到该文字在该文字对应的高维特征向量中的权重值。
结合第一方面的第二种可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,其中,所述解析模块具体用于,根据以下步骤基于所述目标文字对应的中间状态向量和该文字对应的高维特征向量,生成该文字对应的中间状态向量:
若该文字对应的高维特征向量的维度与所述目标文字对应的中间状态向量的维度不同,则调整该文字对应的高维特征向量的维度与所述目标文字对应的中间状态向量的维度相同,得到该文字对应的更新后的高维特征向量;
将所述目标文字对应的中间状态向量和该文字对应的更新后的高维特征向量进行点乘,得到该文字对应的中间状态向量。
结合第一方面,本申请实施例提供了第一方面的第四种可能的实施方式,其中,所述获取模块具体用于,根据以下步骤获取待识别语音序列:
获取原始语音序列;
按照第一预设时间长度,将所述原始语音序列切分为多个语音序列;
针对每一个语音序列,将该语音序列以及该语音序列之后的第二预设时间长度的语音序列,作为所述待识别语音序列;其中,所述第二预设时间长度小于所述第一预设时间长度。
结合第一方面的第四种可能的实施方式,本申请实施例提供了第一方面的第五种可能的实施方式,其中,所述第一生成模块,还用于根据以下步骤基于所述分帧处理模块分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量:
针对任一待识别语音序列,对该待识别语音序列分帧处理得到的各个语音帧进行特征提取,得到各个语音帧对应的第三语音特征向量;
针对该待识别语音序列中的每一语音帧,基于该语音帧对应的第三语音特征向量以及该待识别语音序列之前的历史待识别语音序列对应各个文字信息,生成该语音帧对应的第四语音特征向量;
基于该待识别语音序列中各个语音帧分别对应的第四语音特征向量,生成该待识别语音序列的高维特征向量。
结合第一方面的第五种可能的实施方式,本申请实施例提供了第一方面的第六种可能的实施方式,其中,所述解析模块还用于,根据以下步骤基于所述第一生成模块生成的所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值:
基于所述第一生成模块生成的该待识别语音序列的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,启用注意力机制解析该待识别语音序列对应的待生成的每一个文字在所述高维特征向量中不同位置的权重值。
结合第一方面的第六种可能的实施方式,本申请实施例提供了第一方面的第七种可能的实施方式,其中,所述解析模块具体用于,根据以下步骤基于所述第一生成模块生成的该待识别语音序列的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,启用注意力机制解析该待识别语音序列对应的待生成的每一个文字在所述高维特征向量中不同位置的权重值:
针对该待识别语音序列对应的待生成的每一个文字,选取该文字的前一个文字作为目标文字,基于所述目标文字对应的中间状态向量、该文字对应的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,生成该文字对应的中间状态向量;其中,所述高维特征向量是所述目标文字对应的高维特征向量与所述目标文字在所述高维特征向量中的权重值进行加权得到的;
将该文字对应的中间状态向量输入到多分类激活函数中,得到该文字在所述高维特征向量中的权重值。
第二方面,本申请实施例还提供了一种语音识别方法,所述方法包括:
获取待识别语音序列;
对所述待识别语音序列进行分帧处理,并基于分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量;
基于所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值;
基于所述高维特征向量以及待生成的每一个文字在所述高维特征向量中不同位置的权重值,生成所述待识别语音序列对应的文字序列。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,所述基于分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量,包括:
对分帧处理得到的各个语音帧进行特征提取,得到各个语音帧对应的第一语音特征向量;
针对每一语音帧,基于该语音帧对应的第一语音特征向量以及该语音帧之前的各个语音帧分别对应的第一语音特征向量,生成该语音帧对应的第二语音特征向量;
基于所述待识别语音序列中各个语音帧分别对应的第二语音特征向量,生成所述待识别语音序列的高维特征向量。
结合第二方面,本申请实施例提供了第二方面的第二种可能的实施方式,其中,所述基于所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值,包括:
针对待生成的每一个文字,选取该文字的前一个文字作为目标文字,基于所述目标文字对应的中间状态向量和该文字对应的高维特征向量,生成该文字对应的中间状态向量;其中,该文字对应的高维特征向量是所述目标文字对应的高维特征向量与所述目标文字在对应的高维特征向量中的权重值进行加权得到的;
将该文字对应的中间状态向量输入到多分类激活函数中,得到该文字在该文字对应的高维特征向量中的权重值。
结合第二方面的第二种可能的实施方式,本申请实施例提供了第二方面的第三种可能的实施方式,其中,所述基于所述目标文字对应的中间状态向量和该文字对应的高维特征向量,生成该文字对应的中间状态向量,包括:
若该文字对应的高维特征向量的维度与所述目标文字对应的中间状态向量的维度不同,则调整该文字对应的高维特征向量的维度与所述目标文字对应的中间状态向量的维度相同,得到该文字对应的更新后的高维特征向量;
将所述目标文字对应的中间状态向量和该文字对应的更新后的高维特征向量进行点乘,得到该文字对应的中间状态向量。
结合第二方面,本申请实施例提供了第二方面的第四种可能的实施方式,其中,所述获取待识别语音序列,包括:
获取原始语音序列;
按照第一预设时间长度,将所述原始语音序列切分为多个语音序列;
针对每一个语音序列,将该语音序列以及该语音序列之后的第二预设时间长度的语音序列,作为所述待识别语音序列;其中,所述第二预设时间长度小于所述第一预设时间长度。
结合第二方面的第四种可能的实施方式,本申请实施例提供了第二方面的第五种可能的实施方式,其中,所述基于分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量,包括:
针对任一待识别语音序列,对该待识别语音序列分帧处理得到的各个语音帧进行特征提取,得到各个语音帧对应的第三语音特征向量;
针对该待识别语音序列中的每一语音帧,基于该语音帧对应的第三语音特征向量以及该待识别语音序列之前的历史待识别语音序列对应各个文字信息,生成该语音帧对应的第四语音特征向量;
基于该待识别语音序列中各个语音帧分别对应的第四语音特征向量,生成该待识别语音序列的高维特征向量。
结合第二方面的第五种可能的实施方式,本申请实施例提供了第二方面的第六种可能的实施方式,其中,所述基于所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值,包括:
基于该待识别语音序列的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,启用注意力机制解析该待识别语音序列对应的待生成的每一个文字在所述高维特征向量中不同位置的权重值。
结合第二方面的第六种可能的实施方式,本申请实施例提供了第二方面的第七种可能的实施方式,其中,所述基于该待识别语音序列的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,启用注意力机制解析该待识别语音序列对应的待生成的每一个文字在所述高维特征向量中不同位置的权重值,包括:
针对该待识别语音序列对应的待生成的每一个文字,选取该文字的前一个文字作为目标文字,基于所述目标文字对应的中间状态向量、该文字对应的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,生成该文字对应的中间状态向量;其中,所述高维特征向量是所述目标文字对应的高维特征向量与所述目标文字在所述高维特征向量中的权重值进行加权得到的;
将该文字对应的中间状态向量输入到多分类激活函数中,得到该文字在所述高维特征向量中的权重值。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如第一方面任一所述的语音识别方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面任一所述的语音识别方法的步骤。
本申请实施例提供的一种语音识别装置、方法、电子设备及存储介质,在获取待识别语音序列后,生成该待识别语音序列的高维特征向量;基于待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在上述高维特征向量中不同位置的权重值;基于待生成的每一个文字对应的高维特征向量和该文字在对应的高维特征向量中不同位置的权重值,生成待识别语音序列对应的文字序列。本申请实施例中,通过待识别语音序列的高维特征向量,生成该待识别语音序列对应的文字序列,简化了语音识别系统结构,提高了语音识别效率;同时,基于注意力机制解析待生成的每一个文字在上述高维特征向量中不同位置的权重值,进而基于高维特征向量和解析得到的权重值生成对应的文字序列,提高了语音识别准确度。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种语音识别方法的流程图。
图2示出了对待识别语音序列进行分帧处理的示意图。
图3示出了本申请实施例所提供的另一种语音识别方法的流程图。
图4示出了本申请实施例所提供的另一种语音识别方法的流程图。
图5示出了本申请实施例所提供的另一种语音识别方法的流程图。
图6示出了本申请实施例所提供的另一种语音识别方法的流程图。
图7示出了对原始语音序列进行切分处理的示意图。
图8示出了本申请实施例所提供的另一种语音识别方法的流程图。
图9示出了本申请实施例所提供的一种语音识别装置的结构示意图。
图10示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
近年来,随着深度学习技术的发展,语音识别技术也经历了革命性的变化。深度学习技术一直在飞速发展着,从深度学习技术的发展中汲取营养,也一直是语音识别技术取得突破的途径。现有的基于dnn-hmm(深度神经网络-隐马尔科夫模型)的语音识别系统存在结构复杂,识别效率低和识别准确度差的问题。
近些年来,在机器翻译领域,基于注意力机制(即attention)技术的端对端翻译技术被提出,并很快在大规模的工业系统中得到了应用。基于此,本申请实施例提供了一种基于attention的语音识别装置、方法、电子设备及存储介质,简化了语音识别系统的结构,加快了语音识别效率,以及提高了识别准确度。下面通过实施例对进行说明。
本申请实施例提供了一种语音识别方法,所述方法可以应用于服务器,也可以应用于终端设备,如图1所示,所述方法具体包括以下步骤:
s101、获取待识别语音序列。
本申请实施例中,待识别语音序列可以为一段完整的语音序列,也可以为一段完整的语音序列中的一部分语音序列。比如,一段完整的长度为3s语音序列,待识别语音序列可以为该3s的语音序列,也可以为该3s语音序列任一300ms的语音序列。
其中,在进行离线语音识别时,将完整的一段语音序列(比如3s的语音序列)作为待识别语音序列;在进行在线语音识别时,将一段语音序列的一部分语音序列(比如每一300ms的语音序列)作为待识别语音序列。
s102、对所述待识别语音序列进行分帧处理,并基于分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量。
本申请实施例中,按照第一预设时间长度将待识别语音序列划分为多个语音帧,并且任意两个相邻语音帧之间具有第二预设时间长度的重叠区域。
如图2所示,按照25ms将待识别语音序列划分为一个语音帧,相应的0-25ms是第一帧,第一语音帧和第二语音帧之间重叠15s,因此,从第10ms到第35ms为第二语音帧,以此类推,完成对待识别语音序列的分帧处理。这里分帧处理的目的能够避免分帧处导致的声音信号遗漏。
本申请实施例中,在得到待识别语音序列对应的各个语音帧后,对待识别语音序列对应的各个语音帧进行声学特征提取,得到各个语音帧的语音特征向量。在提取了各个语音帧的语音特征向量之后,通过循环神经网络对提取的各个语音帧的语音特征向量进行处理,生成待识别语音序列的高维特征向量。
s103、基于所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值。
本申请实施例中,在进行离线识别时,基于注意力机制对所述待识别语音序列的高维特征向量进行处理,生成待生成的每一个文字在所述高维特征向量中不同位置的权重值。
在进行在线识别时,基于注意力机制对该待识别语音序列的高维特征向量和该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量进行处理,生成待生成的每一个文字在所述高维特征向量中不同位置的权重值。
本申请实施例中,通过注意力机制能够使得输出的文字更加准确,从而提高了语音识别的准确度。并且,在进行在线识别时,还能够考虑上一个待识别语音序列的输出结果(输出的文字信息、状态等)辅助当前待识别语音序列的识别,进一步提高了语音识别的准确度。
s104、基于所述高维特征向量以及待生成的每一个文字在所述高维特征向量中不同位置的权重值,生成所述待识别语音序列对应的文字序列。
本申请实施例中,将循环神经网络输出的高维特征向量和待生成的每一个文字在上述高维特征向量中不同位置的权重值进行加权处理,得到更新后的高维特征向量;通过循环神经网络对更新后的高维特征向量进行处理,生成待识别语音序列对应的文字序列。
本申请实施例中,通过待识别语音序列的高维特征向量,生成该待识别语音序列对应的文字序列,简化了语音识别系统结构,提高了语音识别效率;同时,基于注意力机制解析待生成的每一个文字在上述高维特征向量中不同位置的权重值,进而基于高维特征向量和解析得到的权重值生成对应的文字序列,提高了语音识别准确度。
本申请实施例提供的语音识别方法基于las端到端架构;这里,l表示listener(即encoder模型);a表示attender;s表示speller(即decoder模型)。其中,encoder模型中包括循环神经网络(recurrentneuralnetwor,rnn),decoder模型中也包括rnn。
下面分别结合离线语音识别和在线语音识别分别对本申请实施例提供的语音识别方法进行说明。
第一,基于进行离线语音识别的场景:
如图3所示,本申请实施例提供的语音识别方法中,所述基于分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量,包括:
s301、对分帧处理得到的各个语音帧进行特征提取,得到各个语音帧对应的第一语音特征向量。
本申请实施例中,在将待识别语音序列分成多个语音帧后,对每个语音帧进行声学特征提取,得到各个语音帧分别对应的第一语音特征向量。
作为一种实施方式,提取各个语音帧的声学特征为filterbank特征。
s302、针对每一语音帧,基于该语音帧对应的第一语音特征向量以及该语音帧之前的各个语音帧分别对应的第一语音特征向量,生成该语音帧对应的第二语音特征向量。
本申请实施例中,将各个语音帧的第一语音特征向量输入到encoder结构层中;其中,encoder结构中包括长短期记忆网络(longshort-termmemory,lstm)模型,通过lstm模型对各个语音帧的第一语音特征向量进行处理,生成待识别语音序列的高维特征向量。
举例来讲,lstm模型的处理过程如下:待识别语音序列包括10个语音帧,每个语音帧对应相应的第一语音特征向量。针对第1个语音帧,基于该第1个语音帧对应的第一语音特征向量和初始特征向量(该特征向量是经过训练得到),生成该第1个语音帧对应的第二语音特征向量;针对第2个语音帧,基于第1个语音帧的第二语音特征向量和该第2个语音帧对应的第一语音特征向量,生成该第2个语音帧的第二语音特征向量;以此类推,直至生成第10个语音帧的第二语音特征向量。
s303、基于所述待识别语音序列中各个语音帧分别对应的第二语音特征向量,生成所述待识别语音序列的高维特征向量。
作为一种实施方式,将待识别语音序列中各个语音帧分别对应的第二语音特征向量进行组合,得到待识别语音序列的高维特征向量h。
本申请实施例中,在生成待识别语音序列的高维特征向量后,将待识别语音序列的高维特征向量输入到decoder结构层中,对提取的待识别语音序列的高维特征向量进行识别,输出待识别语音序列对应的文字序列。
作为一种实施方式,decoder结构层(也即speller结构层)可采用lstm实现。其中,speller结构层收到sos(设置的开始工作指令)指令后开始工作,待识别语音序列的高维特征向量h输入到lstm中,输出语音序列对应的文本识别结果(即文字序列)。
如图4所示,本申请实施例提供的语音识别方法中,所述基于所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值,包括:
s401、针对待生成的每一个文字,选取该文字的前一个文字作为目标文字,基于所述目标文字对应的中间状态向量和该文字对应的高维特征向量,生成该文字对应的中间状态向量;其中,该文字对应的高维特征向量是所述目标文字对应的高维特征向量与所述目标文字在对应的高维特征向量中的权重值进行加权得到的。
本申请实施例中,针对待输出的第一个文字a,该文字a之前没有文字,因此,基于初始值(表示为c0)和文字a对应的高维特征向量h(该高维特征向为encoder模型输出的待识别语音序列的高维特征向量),生成文字a对应的中间状态向量c1。具体的,将c0与h进行交互操作,生成文字a对应的中间状态向量c1。
针对待输出的第二个文字b,该文字b之前为文字a,文字a为该文本b的目标文字,因此,基于文本a对应的中间状态向量c1和文字b对应的高维特征向量h’,生成文字b对应的中间状态向量c2。其中,h’为文字a对应的高维特征向量h与文字a在高维特征向量h中的权重值α1进行加权得到的。
同理,得到待生成的每一个文字对应的中间状态向量,表示为c(c1、c2…cn),n表示待生成的文字的个数。
s402、将该文字对应的中间状态向量输入到多分类激活函数中,得到该文字在该文字对应的高维特征向量中的权重值。
本申请实施例中,将文字a对应的中间状态向量c1输入到多分类激活函数(比如softmax函数)中,得到该文字a在高维特征向量h中的权重值α1。同理,将文字b对应的中间状态向量c2输入到多分类激活函数(比如softmax函数)中,得到该文字在高维特征向量h’中的权重值α2。
基于上述方法,得到待生成的每一个文字在该文字在待识别语音序列的高维特征向量h中不同位置的权重值,上述权重值分布表示为g(α1、α2…αn),n表示待生成的文字的个数。
之后,将高维特征向量h与待生成的每一个文字在所述高维特征向量中不同位置的权重值分布g进行加权,得到h1,将h输入到decoder结构层的lstm中,输出待识别语音序列对应的文字序列。
如图5所示,本申请实施例提供的语音识别方法,所述基于所述目标文字对应的中间状态向量和该文字对应的高维特征向量,生成该文字对应的中间状态向量,包括:
s501、若该文字对应的高维特征向量的维度与所述目标文字对应的中间状态向量的维度不同,则调整该文字对应的高维特征向量的维度与所述目标文字对应的中间状态向量的维度相同,得到该文字对应的更新后的高维特征向量。
s502、将所述目标文字对应的中间状态向量和该文字对应的更新后的高维特征向量进行点乘,得到该文字对应的中间状态向量。
结合步骤501和步骤502,其中,decoder结构层的每一步操作中,在进行目标文字对应的中间状态向量和该文字对应的高维特征向量的交互操作时,需要预先判断该文字对应的高维特征向量是否与目标文字对应的中间状态向量的维度相同;若不相同,则可将该文字对应的高维特征向量设置成与目标文字对应的中间状态向量同样的维度。
例如,目标文字对应的中间状态向量c0为一个256维的特征向量,若该文字对应的高维特征向量与c0的维度不同,则将h设置成256维,h的长度即为语音帧的长度,如3s;对h与c0进行点乘操作,得到该文字对应的中间状态向量c1。其中,待输出的各个文字对应的中间状态向量组成特征矩阵c。
本申请实施例中,decoder结构层中,待生成的每一个文字对应中lstm的每一步输出;lstm的每一步输出对应一个状态,比如,lstm的初始状态为s0,第一步输出对应第一状态s1。其中,注意力机制解析过程如下:
(1)在lstm的初始状态s0下,初始中间状态向量c0与待识别语音序列的高维特征向量h作为第一步的输入进行交互操作,输出第一步对应的第一状态s1下的中间状态向量c1;
(2)第一步输出的第一状态s1下的中间状态向量c1经过softmax操作得到第一步输出的文字的权重值α1,根据权重值α1对高维特征向量h加权后得到h’。
(3)c1与加权后的高维特征向量h’作为lstm第二步的输入,进行交互操作,输出第二步对应的第二状态s2下的中间状态向量c2;
(4)第二步对应的第二状态s2下的中间状态向量c2经过softmax操作得到第二步输出的文字的权重值α2,根据权重值α2对高维特征向量h’加权得到h”;
重复上述操作,直至收到网络层的eos(设置的操作完成之后的通知指令)信号,识别结束,得到待生成的每一个文字在该文字在待识别语音序列的高维特征向量h中不同位置的权重值,上述权重值分布表示为g(α1、α2…αn),n表示待生成的文字的个数。
之后,将高维特征向量h与待生成的每一个文字在所述高维特征向量中不同位置的权重值分布g进行加权,得到h1,将h输入到decoder结构层的lstm中,输出待识别语音序列对应的文字序列。
本申请实施例中,encoder与decoder两者之间的交互,即高维特征向量h与中间状态向量ci(ci表示c0到cn中的任一取值)之间的交互通过注意力机制attention实现。
第二,基于进行在线语音识别的场景:
如图6所示,本申请实施例提供的语音识别方法中,所述获取待识别语音序列,包括:
s601、获取原始语音序列。
本申请实施例中,原始语音序列为3s的语音序列。
s602、按照第一预设时间长度,将所述原始语音序列切分为多个语音序列。
本申请实施例中,第一预设时间长度可以根据需要进行设置;比如,第一预设时间长度设置为300ms。如图7所示,按照300ms将原始语音序列切分为多个语音流(即时间片段block),相应的,0-300ms是第一个语音流,300ms-600ms是第二个语音流。
s603、针对每一个语音序列,将该语音序列以及该语音序列之后的第二预设时间长度的语音序列,作为所述待识别语音序列;其中,所述第二预设时间长度小于所述第一预设时间长度。
本申请实施例中,上述第二预设时间长度小于第一预设时间长度;其中,第二预设时间长度也可以根据需要进行设置;比如,第二预设时间长度为150ms。
本申请实施例中,将第一个语音流和部分第二个语音流作为待识别语音序列;比如,将0-450ms作为第一个待识别语音序列,将300-m750ms作为第二个待识别语音序列。通过该方法可以有效控制解码(即输出的文字)的延时。
进一步的,如图8所示,本申请实施例提供的语音识别方法中,所述基于分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量,包括:
s801、针对任一待识别语音序列,对该待识别语音序列分帧处理得到的各个语音帧进行特征提取,得到各个语音帧对应的第三语音特征向量。
本申请实施例中,原始语音序列被分成10待识别语音序列,针对每个待识别语音序列(如待识别语音序列1),在将该待识别语音序1分成多个语音帧后,对每个语音帧进行声学特征提取,得到各个语音帧分别对应的第三语音特征向量;针对待识别语音序列2,在将该待识别语音序2分成多个语音帧后,对每个语音帧进行声学特征提取,得到各个语音帧分别对应的第三语音特征向量。基于同样的方法,得到每一个待识别语音序中各个语音帧分别对应的第三语音特征向量。
作为一种实施方式,提取各个语音帧的声学特征为filterbank特征。
s802、针对该待识别语音序列中的每一语音帧,基于该语音帧对应的第三语音特征向量以及该待识别语音序列之前的历史待识别语音序列对应各个文字信息,生成该语音帧对应的第四语音特征向量。
本申请实施例中,针对每一个待识别语音序列,将该待识别语音序列中各个语音帧的第三语音特征向量,以及,该待识别语音序列之前的历史待识别语音序列(作为一种实施方式,历史待识别语音序列可以为待识别语音序列的前一个待识别语音序列)对应的文字信息(如文字对应的特征向量)输入到encoder结构层中;其中,encoder结构中包括长短期记忆网络(longshort-termmemory,lstm)模型,通过lstm模型输入的特征进行处理,生成该待识别语音序列的高维特征向量。
举例来讲,lstm模型的处理过程如下:待识别语音序列2,该待识别语音序列2包括10个语音帧,每个语音帧对应相应的第三语音特征向量。针对第1个语音帧,基于该第1个语音帧对应的第三语音特征向量、初始特征向量(该特征向量是经过训练得到)、该待识别语音序列之前的待识别语音序列1对应各个文字的特征向量,生成该第1个语音帧对应的第四语音特征向量;针对第2个语音帧,基于第1个语音帧的第四语音特征向量和该第2个语音帧对应的第三语音特征向量,生成该第2个语音帧的第四语音特征向量;以此类推,直至生成第10个语音帧的第四语音特征向量。
s803、基于该待识别语音序列中各个语音帧分别对应的第四语音特征向量,生成该待识别语音序列的高维特征向量。
作为一种实施方式,将该待识别语音序列中各个语音帧分别对应的第四语音特征向量进行组合,得到待识别语音序列的高维特征向量h。
进一步的,本申请实施例提供的语音识别方法中,所述基于所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值,包括:
基于该待识别语音序列的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,启用注意力机制解析该待识别语音序列对应的待生成的每一个文字在所述高维特征向量中不同位置的权重值。
本申请实施例中,针对该待识别语音序列对应的待生成的每一个文字,选取该文字的前一个文字作为目标文字,基于所述目标文字对应的中间状态向量、该文字对应的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,生成该文字对应的中间状态向量;其中,所述高维特征向量是所述目标文字对应的高维特征向量与所述目标文字在所述高维特征向量中的权重值进行加权得到的;将该文字对应的中间状态向量输入到多分类激活函数中,得到该文字在所述高维特征向量中的权重值。
本申请实施例中,针对任一待识别语音序列,在生成待识别语音序列的高维特征向量后,将待识别语音序列的高维特征向量输入到decoder结构层中,对待识别语音序列的高维特征向量进行识别,输出该待识别语音序列对应的文字序列。
作为一种实施方式,decoder结构层(也即speller结构层)可采用lstm实现。其中,speller结构层收到sos(设置的开始工作指令)指令后开始工作,待识别语音序列的高维特征向量h输入到lstm中,输出语音序列对应的文本识别结果。
其中,参与计算的该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量即:该待识别语音序列的前一个历史待识别语音序列中最后一个文字中间状态向量。
本申请实施例中,待识别语音序列2中待输出的第一个文字a,该文字a之前没有文字,因此,基于初始值(表示为c0)、文字a对应的高维特征向量h(该高维特征向为encoder模型输出的待识别语音序列的高维特征向量)和待识别语音序列1中最后一个文字对应的中间状态向量ch,生成文字a对应的中间状态向量c1。具体的,将c0、h与ch进行交互操作,生成文字a对应的中间状态向量c1。
另外,在将c0、h与ch进行交互操作时,目标文字对应的中间状态向量c0为一个256维的特征向量,若该文字对应的高维特征向量与c0的维度不同,则将h设置成256维;其中,ch的维度与c0相同,也为256维。h的长度即为语音帧的长度,如3s;对h、c0和ch进行点乘操作,得到该文字对应的中间状态向量c1。其中,待输出的各个文字对应的中间状态向量组成特征矩阵c。
针对待输出的第二个文字b,该文字b之前为文字a,文字a为该文本b的目标文字,因此,基于文本a对应的中间状态向量c1和文字b对应的高维特征向量h’,生成文字b对应的中间状态向量c2。其中,h’为文字a对应的高维特征向量h与文字a在高维特征向量h中的权重值α1进行加权得到的。
同理,得到待生成的每一个文字对应的中间状态向量,表示为c(c1、c2…cn),n表示待生成的文字的个数。
同时,在得到文字a对应的中间状态向量c1后,将文字a对应的中间状态向量c1输入到多分类激活函数(比如softmax函数)中,得到该文字a在高维特征向量h中的权重值α1。同理,将文字b对应的中间状态向量c2输入到多分类激活函数(比如softmax函数)中,得到该文字在高维特征向量h’中的权重值α2。
基于上述方法,得到待生成的每一个文字在该文字在待识别语音序列的高维特征向量h中不同位置的权重值,上述权重值分布表示为g(α1、α2…αn),n表示待生成的文字的个数。
之后,将高维特征向量h与待生成的每一个文字在所述高维特征向量中不同位置的权重值分布g进行加权,得到h1,将h输入到decoder结构层的lstm中,输出待识别语音序列对应的文字序列。
本申请实施例提供的一种语音识别方法,通过待识别语音序列的高维特征向量,生成该待识别语音序列对应的文字序列,简化了语音识别系统结构,提高了语音识别效率;同时,基于注意力机制解析待生成的每一个文字在上述高维特征向量中不同位置的权重值,进而基于高维特征向量和解析得到的权重值生成对应的文字序列,提高了语音识别准确度。
基于与上述语音识别方法同样的发明构思,如图9所示,本申请实施例还提供了一种语音识别装置,所述装置包括:
获取模块901,用于获取待识别语音序列;
分帧处理模块902,用于对获取模块901获取的所述待识别语音序列进行分帧处理,得到所述待识别语音序列对应的语音帧;
第一生成模块903,用于基于分帧处理模块902分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量;
解析模块904,用于基于第一生成模块903生成的所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值;
第二生成模块905,用于基于第一生成模块903生成的所述高维特征向量以及解析模块904解析得到的待生成的每一个文字在所述高维特征向量中不同位置的权重值,生成所述待识别语音序列对应的文字序列。
进一步的,本申请实施例提供的语音识别装置中,第一生成模块903具体用于,根据以下步骤基于分帧处理模块902分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量:
对分帧处理模块902分帧处理得到的各个语音帧进行特征提取,得到各个语音帧对应的第一语音特征向量;
针对每一语音帧,基于该语音帧对应的第一语音特征向量以及该语音帧之前的各个语音帧分别对应的第一语音特征向量,生成该语音帧对应的第二语音特征向量;
基于所述待识别语音序列中各个语音帧分别对应的第二语音特征向量,生成所述待识别语音序列的高维特征向量。
进一步的,本申请实施例提供的语音识别装置中,解析模块904具体用于,根据以下步骤基于第一生成模块903生成的所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值:
针对待生成的每一个文字,选取该文字的前一个文字作为目标文字,基于所述目标文字对应的中间状态向量和该文字对应的高维特征向量,生成该文字对应的中间状态向量;其中,该文字对应的高维特征向量是所述目标文字对应的高维特征向量与所述目标文字在对应的高维特征向量中的权重值进行加权得到的;
将该文字对应的中间状态向量输入到多分类激活函数中,得到该文字在该文字对应的高维特征向量中的权重值。
进一步的,本申请实施例提供的语音识别装置中,解析模块904具体用于,根据以下步骤基于所述目标文字对应的中间状态向量和该文字对应的高维特征向量,生成该文字对应的中间状态向量:
若该文字对应的高维特征向量的维度与所述目标文字对应的中间状态向量的维度不同,则调整该文字对应的高维特征向量的维度与所述目标文字对应的中间状态向量的维度相同,得到该文字对应的更新后的高维特征向量;
将所述目标文字对应的中间状态向量和该文字对应的更新后的高维特征向量进行点乘,得到该文字对应的中间状态向量。
进一步的,本申请实施例提供的语音识别装置中,获取模块901具体用于,根据以下步骤获取待识别语音序列:
获取原始语音序列;
按照第一预设时间长度,将所述原始语音序列切分为多个语音序列;
针对每一个语音序列,将该语音序列以及该语音序列之后的第二预设时间长度的语音序列,作为所述待识别语音序列;其中,所述第二预设时间长度小于所述第一预设时间长度。
进一步的,本申请实施例提供的语音识别装置中,第一生成模块903,还用于根据以下步骤基于分帧处理模块902分帧处理得到的各个语音帧,生成所述待识别语音序列的高维特征向量:
针对任一待识别语音序列,对该待识别语音序列分帧处理得到的各个语音帧进行特征提取,得到各个语音帧对应的第三语音特征向量;
针对该待识别语音序列中的每一语音帧,基于该语音帧对应的第三语音特征向量以及该待识别语音序列之前的历史待识别语音序列对应各个文字信息,生成该语音帧对应的第四语音特征向量;
基于该待识别语音序列中各个语音帧分别对应的第四语音特征向量,生成该待识别语音序列的高维特征向量。
进一步的,本申请实施例提供的语音识别装置中,解析模块904还用于,根据以下步骤基于第一生成模块903生成的所述待识别语音序列的高维特征向量,启用注意力机制解析待生成的每一个文字在所述高维特征向量中不同位置的权重值:
基于第一生成模块903生成的该待识别语音序列的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,启用注意力机制解析该待识别语音序列对应的待生成的每一个文字在所述高维特征向量中不同位置的权重值。
进一步的,本申请实施例提供的语音识别装置中,解析模块904具体用于,根据以下步骤基于第一生成模块903生成的该待识别语音序列的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,启用注意力机制解析该待识别语音序列对应的待生成的每一个文字在所述高维特征向量中不同位置的权重值:
针对该待识别语音序列对应的待生成的每一个文字,选取该文字的前一个文字作为目标文字,基于所述目标文字对应的中间状态向量、该文字对应的高维特征向量以及该待识别语音序列之前的历史待识别语音序列对应的各个文字的中间状态向量,生成该文字对应的中间状态向量;其中,所述高维特征向量是所述目标文字对应的高维特征向量与所述目标文字在所述高维特征向量中的权重值进行加权得到的;
将该文字对应的中间状态向量输入到多分类激活函数中,得到该文字在所述高维特征向量中的权重值。
本申请实施例提供的一种语音识别装置,通过待识别语音序列的高维特征向量,生成该待识别语音序列对应的文字序列,简化了语音识别系统结构,提高了语音识别效率;同时,基于注意力机制解析待生成的每一个文字在上述高维特征向量中不同位置的权重值,进而基于高维特征向量和解析得到的权重值生成对应的文字序列,提高了语音识别准确度。
如图10所示,本申请实施例提供的一种电子设备1000,包括:处理器1001、存储器1002和总线,所述存储器1002存储有所述处理器1001可执行的机器可读指令,当电子设备运行时,所述处理器1001与所述存储器1002之间通过总线通信,所述处理器1001执行所述机器可读指令,以执行如上述语音识别方法的步骤。
具体地,上述存储器1002和处理器1001能够为通用的存储器和处理器,这里不做具体限定,当处理器1001运行存储器1002存储的计算机程序时,能够执行上述语音识别方法。
对应于上述语音识别方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述语音识别方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述语音识别装置的具体工作过程,可以参考语音识别方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除