一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2021-08-13 19:22:00 来源:中国专利 TAG:人工智能 电子设备 装置 语音识别 申请
语音识别方法、装置、电子设备及存储介质与流程

本申请涉及人工智能技术领域,尤其涉及一种语音识别方法、装置、电子设备及存储介质。



背景技术:

随着互联网的普及,在客户端和服务器端产生的数据越来越多,这些数据包括文本类型的数据和非文本类型的数据,如语音数据。实际应用中常需要对这些非文本类型的数据进行识别,例如,语音识别。通过语音识别可以将语音中的信息转换为文本信息,进而进行自然语言处理或者是人机交互等操作。当需要识别的语音数据比较多时,若无法快速获取到语音识别结果,将影响语音识别的后续操作,如影响自然语音处理的结果(如无法快速识别用户意图)或者影响人机交互的效率(如无法快速根据用户发出的语音信息执行相应控制操作)。因此,亟需一种提高语音识别的速度的技术方案。



技术实现要素:

为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种语音识别方法、装置、电子设备及存储介质。

第一方面,本申请提供了一种语音识别方法,所述方法包括:

获取待处理语音数据流,所述待处理语音数据流包含多个语音单元数据;

通过集成神经网络依次将多个所述语音单元数据进行编码,并在得到任意一所述语音单元数据的编码数据之后,实时将所述编码数据输入至与所述集成神经网络分开部署的解码器进行解码,以得到多个所述语音单元数据的语音识别结果。

可选地,所述通过集成神经网络依次将多个所述语音单元数据进行编码,包括:

提取多个所述语音单元数据的语音标识信息和位置信息;

将所述语音标识信息和所述位置信息进行组合,得到多个所述语音单元数据的语音单元特征;

通过集成神经网络依次将多个所述语音单元特征进行编码。

可选地,所述通过集成神经网络依次将多个所述语音单元特征进行编码,包括:

将第i个所述语音单元特征输入至所述集成神经网络进行编码,其中i的初始值为1,i为正整数;

当得到所述集成神经网络输出的第i个所述语音单元特征的编码数据时,令i=i 1,再次执行所述将第i个所述语音单元特征输入至所述集成神经网络进行编码的操作。

可选地,当所述集成神经网络部署于客户端,则所述解码器部署于服务器,或者当所述集成神经网络部署于cpu,则所述解码器部署于gpu。

可选地,所述解码器的数量为多个,所述将所述编码数据输入至与所述集成神经网络分开部署的解码器进行解码包括:

根据分配算法从多个所述解码器中确定目标解码器;

将所述编码数据输入至所述目标解码器进行解码。

可选地,所述集成神经网络为transformer模型中的编码单元,所述解码器为所述transformer模型中的解码单元。

可选地,所述根据分配算法从多个所述解码器中确定目标解码器,包括:

检测各个所述解码器的网络传输状态、负载量和历史处理状况;

将所述网络传输状态、所述负载量和所述历史处理状况输入至已训练的马尔可夫模型,得到各个所述解码器的处理速度预测值;

获取所述编码数据对应的语音单元数据的处理优先级;

根据所述处理优先级和所述处理速度预测值确定目标解码器。

第二方面,本申请提供了一种语音识别装置,所述装置包括:

语音数据获取模块,用于获取待处理语音数据流,所述待处理语音数据流包含多个语音单元数据;

语音识别模块,用于通过集成神经网络依次将多个所述语音单元数据进行编码,并在得到任意一所述语音单元数据的编码数据之后,实时将所述编码数据输入至与所述集成神经网络分开部署的解码器进行解码,以得到多个所述语音单元数据的语音识别结果。

第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的语音识别方法的步骤。

第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的语音识别方法的步骤。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:

本申请实施例提供的语音识别方法、装置、电子设备及计算机可读存储介质,可在获取到包含多个语音单元数据的待处理语音数据流之后,通过集成神经网络依次将多个语音单元数据进行编码,并在得到任意一语音单元数据的编码数据之后,实时将编码数据输入至与集成神经网络分开部署的解码器进行解码,因此,本实施例中不仅集成神经网络可以持续对多个语音数据流进行编码,通过解码器也可以同步对编码得到的编码数据持续解码,使得对语音的编解码的同步进行,所以当语音数据为多个时,能够提高整体语音识别的速度。因此,本发明实施例可以解决语音识别速度不高的问题,有利于更快速获取到语音识别结果。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种语音识别方法的流程示意图;

图2为本申请实施例提供的一种语音识别装置的模块示意图;

图3为本申请实施例提供的实现一种语音识别方法的电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为本申请实施例提供的一种语音识别方法的流程示意图。在本实施例中,所述语音识别方法包括:

s1、获取待处理语音数据流,所述待处理语音数据流包含多个语音单元数据。

本实施例中,所述待处理语音数据流为要进行语音识别的数据流。具体的,所述待识别语音数据流中包含多个语音单元数据,每个语音单元数据的长度可以为相同或者不同。

例如,待识别语音数据流包含一个或多个会议的音频。又比如,多个语音单元数据中一个语音单元数据为:“今天天气很好。”另一个语音单元数据为:“周一上午开会”。

一可选实施例中,所述获取待处理语音数据流包括:采集包含多个语音单元数据的待处理语音数据流。

例如,直接从云端数据库中获取包含多条会议音频的待处理语音数据流。

另一可选实施例中,所述获取待处理语音数据流包括:获取原始语音数据,将所述原始语音数据划分为多个语音单元数据,得到所述待处理语音数据流。

在该实施例中,获取到的可以为没有进行分段等处理的原始语音数据,可以通过检测语音停顿等方式将原始语音数据划分为多个语音单元数据。

s2、通过集成神经网络依次将多个所述语音单元数据进行编码,并在得到任意一所述语音单元数据的编码数据之后,实时将所述编码数据输入至与所述集成神经网络分开部署的解码器进行解码,以得到多个所述语音单元数据的语音识别结果。

本实施例中,所述集成神经网络可以是多个神经网络进行叠加得到的,且集成神经网络为预先训练的,可用于语音特征提取。

类似的,所述解码器也可以是多个神经网络进行叠加得到的,且解码器也可以为预先训练的,可用于对提取到的语音特征进行识别,具体的,解码器可以计算语音特征中的每个语音特征为预设词典中不同字词的概率,进而确定语音特征对应的文字,从而得到语音识别的结果。

优选的,所述集成神经网络为transformer模型中的编码单元,所述解码器为所述transformer模型中的解码单元。

具体的,当集成神经网络为transformer模型中的编码单元时,集成神经网络包括多个用于编码的块(block)如6个编码的block,每个块包括一个多头注意力层(multi-headattention),每个多头注意力层中包含多个self-attention,多个块可以对输入的信息进行迭代编码,一个块运算之后由下一个块运算,直至最终的块计算完毕,该迭代编码的过程为提取语音特征的过程。

具体的,在某一个块中,一个多头注意力层中每个层获取输入数据,(例如,第一个块的多头注意力层中每个层的输入数据为将语音单元数据的向量表示),然后将输入向量矩阵与线性变阵矩阵计算特征值q,k,v,根据q,k,v,计算得到多个attention的输出值,再将多个attention的输出值进行组合,得到该多头注意力层的最终输出。

具体的,attention的输出值的可以通过如下公式计算得到:

其中,dk表示矩阵q,k的列数,即向量维度,kt表示矩阵k的转置矩阵。

具体的,每个块中,在多头注意力层之后还包括用于防止网络退化和对每一层的激活函数输出值进行归一化的网络层。

本实施例中,集成神经网络即编码单元输出的编码数据为矩阵格式的数据,即编码矩阵。

类似的,解码器也包括多个用于解码的块(block),如6个解码的block。该解码器接收输入的矩阵,并输出一个矩阵。具体的,解码器包括两个多头注意力层(multi-headattention),第一个多头注意力层采用了masked操作进行解码,第二个多头注意力层在计算时,k,v矩阵使用输入的编码矩阵进行计算,而q使用前一个解码的block的输出计算,最后根据softmax函数输出预测值,即语音单元数据对应的预测文本。

优选的,所述通过集成神经网络依次将多个所述语音单元数据进行编码,包括:

提取多个所述语音单元数据的语音标识信息和位置信息;

将所述语音标识信息和所述位置信息进行组合,得到多个所述语音单元数据的语音单元特征;

通过集成神经网络依次将多个所述语音单元特征进行编码。

本实施例中,所述提取语音单元数据的语音标识信息是对语音单元数据中语音进行处理,从而得到用于后续编码的语音标识信息。

可选的,对语音单元数据进行快速傅利叶变换,形成fbank特征,该fbank即为语音标识信息。

本实施例中,所述语音单元数据的位置信息是指语音单元数据中各个语音字符在整个语音单元数据中的顺序或次序。

具体的,语音单元数据的位置信息可以通过预训练的位置信息提取模型进行位置信息提取得到,或者,语音单元数据的位置信息也可以通过预设公式运算得到,所述预设公式为:

其中,pe表示位置信息,pos表示语音字符在语音单元数据中的位置,d表示pe的维度,2i表示偶数的维度,2i 1表示奇数维度(即2i≤d,2i 1≤d)。

本实施例中,在得到语音标识信息和位置信息之后,可以通过合并的方式将其进行组合,从而得到语音单元特征,例如,某个语音单元数据的语音单元特征为(语音标识信息a,位置信息a)。

在本发明其他可选实施例中,在得到多个语音单元数据的语音单元特征之后,对每个语音单元特征进行编号,在编号之后再通过集成神经网络依次将语音单元特征进行编码。

例如,对第一个语音单元特征编号为name1,对第二个语音单元特征编号为name2。

优选的,所述通过集成神经网络依次将多个所述语音单元特征进行编码,包括:

将第i个所述语音单元特征输入至所述集成神经网络进行编码,其中i的初始值为1,i为正整数;

当得到所述集成神经网络输出的第i个所述语音单元特征的编码数据时,令i=i 1,再次执行所述将第i个所述语音单元特征输入至所述集成神经网络进行编码的操作。

例如,待处理语音数据流中共有10个语音单元数据,则将第一个语音单元特征输入至集成神经网络进行编码,通过集成神经网络进行迭代编码得到第一个语音单元数据的编码数据之后,将第二个语音单元特征输入至集成神经网络进行编码,与此同时,由于已得到了第一语音单元数据的编码数据,因此将第一语音单元数据的编码数据输入至与集成神经网络分开部署的解码器进行解码;则此时,第一语音单元数据的编码数据在进行解码,第二语音单元数据在进行编码,通过同时进行编解码,提高资源利用率,减少编解码时的等待时间,提升编解码的速度。类似的,当通过集成神经网络进行迭代编码得到第二个语音单元数据的编码数据之后,将第三个语音单元特征输入至集成神经网络进行编码,将第二语音单元数据的编码数据输入至解码器进行解码,不断持续的进行同步编解码,提高获取到语音识别结果的速度。

本实施例中,解码器与集成神经网络分开部署是指解码器与集成神经网路部署在不同的处理单元,每个处理单元可以独立进行计算。

优选的,当所述集成神经网络部署于客户端,则所述解码器部署于服务器,或者当所述集成神经网络部署于cpu,则所述解码器部署于gpu。

本实施例中,将用于编码的集成神经网络和用于解码的解码器分开部署,使得编码与解码不同时占用过多的本地资源,提高编解码的速度。

优选的,所述解码器的数量为多个。

本实施例中,当解码器的数量为多个时,可以将编码得到的不同编码数据输入至不同的解码器中解码,从而能够进行并行解码,进一步提高解码的效率。

例如,集成神经网络部署在客户端,具体的说,集成神经网络部署在客户端的cpu,同时,解码器的数量有3个,一个解码器部署在远端服务器,另一解码器部署在局域网服务器,另一解码器部署在客户端的gpu,则在得到语音单元数据的编码数据之后,可以将该编码数据发送至任意一个解码数据进行解码,或者可以按照顺序依次将编码数据分配至不同的解码器,若已将第一语音单元数据的编码数据分配至第一解码器,将第二语音单元数据的编码数据分配至第二解码器,将第三语音单元数据的编码数据分配至第三解码器,则在得到第四语音单元的编码数据之后,将该编码数据分配至第一解码解码器。

优选的,当所述解码器的数量为多个时,所述将所述编码数据输入至与所述集成神经网络分开部署的解码器进行解码包括:

根据分配算法从多个所述解码器中确定目标解码器;

将所述编码数据输入至所述目标解码器进行解码。

本实施例中,所述分配算法为预设的。

可选的,所述根据分配算法从多个所述解码器中确定目标解码器包括:

计算多个所述解码器的负载量,根据所述负载量从多个所述解码器中选取负载量最低的解码器为目标解码器。

本实施例中,解码器的负载量可以包括统计等待解码器处理的编码数据的数量确定。则通过本实施例,可以始终将编码数据分配至负载量最低的解码器进行解码处理,进一步提高解码的速度,从而更早的获取语音识别结果。

优选的,所述根据分配算法从多个所述解码器中确定目标解码器,包括:

检测各个所述解码器的网络传输状态、负载量和历史处理状况;

将所述网络传输状态、所述负载量和所述历史处理状况输入至已训练的马尔可夫模型,得到各个所述解码器的处理速度预测值;

获取所述编码数据对应的语音单元数据的处理优先级;

根据所述处理优先级和所述处理速度预测值确定目标解码器。

本实施例中,解码器的网络传输速度是指将编码数据传输至解码器时的传输速度。例如,当集成神经网络部署于客户端,解码器部署局域网服务器时,则获取客户端与局域网服务器之间的传输速度;当集成神经网络部署于客户端,解码器部署于远端服务器时,则获取客户端局域网与远端服务器之间的传输速率。

本实施例中,历史处理状况包括历史处理数量、历史处理速度等信息。

本实施例中,马尔可夫模型为预先训练的,具体的,可以预先采集多种一段时间内用于编码的集成神经网络和解码器的网络传输负载量和历史处理状况,进而预测不同的网络传输状态、负载量和历史处理状况下得到的处理速度将是怎样的。

具体的,解码器的处理速度预测值是指从发送编码数据至解码器得到该编码数据的解码结果所需的时间值,该值可以为具体的数值,或者是标识处理速度的等级的值。

本实施例中,待处理语音数据流包含多个语音单元数据,这些语音单元数据的采集时间等信息可以为不同的,因此多个语音单元数据的优先级可以为不同的,具体的,可以根据每个语音单元数据的数据来源确定处理优先级,或者根据语音单元数据的采集先后获取优先级,或者根据语音单元的内容类型确定优先级,或者可以根据用户添加的优先级标记确定处理优先级。

本实施例中,所述根据所述处理优先级和所述处理速度预测值确定目标解码器包括:确定与所述优先级匹配的处理速度预测值为目标解码器。

例如,编码数据对应的语音单元数据的处理优先级为第一优先级(如最高级),则确定多个处理速度预测值中最大值对应的解码器为目标解码器。

进一步的,在本发明其他实施例中,所述实时将所述编码数据输入至与所述集成神经网络分开部署的解码器进行解码,以得到多个所述语音单元数据的语音识别结果之后,所述方法还包括:

获取所述解码器传输的所述语音识别结果,根据所述语音识别结果进行文本分析。

本实施例中,所述文本分析包括但不限于文本分类、意图分析、情感分析等。具体的文本分类、意图分析、情感分析的方法可以通过采用现有的相关方法,此处不再赘述。

本发明实施例中,在获取到包含多个语音单元数据的待处理语音数据流之后,通过集成神经网络依次将多个语音单元数据进行编码,并在得到任意一语音单元数据的编码数据之后,实时将编码数据输入至与集成神经网络分开部署的解码器进行解码,因此,本实施例中不仅集成神经网络可以持续对多个语音数据流进行编码,通过解码器也可以同步对编码得到的编码数据持续解码,使得对语音的编解码的同步进行,所以当语音数据为多个时,能够提高整体语音识别的速度。因此,本发明实施例可以解决语音识别速度不高的问题,有利于更快速获取到语音识别结果。

如图2所示,本申请实施例提供了一种语音识别装置10的模块示意图,所述语音识别装置10,包括:语音数据获取模块11和语音识别模块12。

所述语音数据获取模块11,用于获取待处理语音数据流,所述待处理语音数据流包含多个语音单元数据;

所述语音识别模块12,用于通过集成神经网络依次将多个所述语音单元数据进行编码,并在得到任意一所述语音单元数据的编码数据之后,实时将所述编码数据输入至与所述集成神经网络分开部署的解码器进行解码,以得到多个所述语音单元数据的语音识别结果。

详细地,本申请实施例中所述语音识别装置10中的各模块在使用时采用与上述的图1中所述的语音识别方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。

如图3所示,本申请实施例提供了一种电子设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信。

存储器113,用于存放计算机程序。

在本申请一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的语音识别方法,包括:

获取待处理语音数据流,所述待处理语音数据流包含多个语音单元数据;

通过集成神经网络依次将多个所述语音单元数据进行编码,并在得到任意一所述语音单元数据的编码数据之后,实时将所述编码数据输入至与所述集成神经网络分开部署的解码器进行解码,以得到多个所述语音单元数据的语音识别结果。

上述通信总线114可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线114可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口112用于上述电子设备与其他设备之间的通信。

存储器113可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器113还可以是至少一个位于远离前述处理器111的存储装置。

上述的处理器111可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的语音识别方法的步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜