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

文档序号:1629496 发布日期:2020-01-14 浏览:24次 >En<

阅读说明:本技术 语音识别方法、装置、电子设备及存储介质 (Voice recognition method and device, electronic equipment and storage medium ) 是由 杨伟光 于 2019-10-14 设计创作,主要内容包括:本发明提供了一种语音识别方法、装置、电子设备及存储介质;方法包括:获取待识别语音信号的多个语音帧的声学特征;通过图形处理器对所述多个语音帧的声学特征进行编码转换,得到各所述语音帧对应的状态;通过中央处理器对各所述语音帧对应的状态进行分类组合,得到对应所述待识别语音信号的音素序列;对所述音素序列进行解码转换,得到对应所述待识别语音信号的文本序列。如此,能够提高语音识别效率及资源利用率。(The invention provides a voice recognition method, a voice recognition device, electronic equipment and a storage medium; the method comprises the following steps: acquiring acoustic characteristics of a plurality of voice frames of a voice signal to be recognized; performing code conversion on the acoustic characteristics of the plurality of voice frames through a graphic processor to obtain the corresponding state of each voice frame; classifying and combining the states corresponding to the voice frames through a central processing unit to obtain a phoneme sequence corresponding to the voice signal to be recognized; and decoding and converting the phoneme sequence to obtain a text sequence corresponding to the voice signal to be recognized. Therefore, the voice recognition efficiency and the resource utilization rate can be improved.)

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

技术领域

本发明涉及人工智能(AI,Artificial Intelligence)技术领域,尤其涉及一种语音识别方法、装置、电子设备及存储介质。

背景技术

人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法和技术及应用系统。

人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统和机电一体化等技术;人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

语音处理技术是人工智能的一个分支,包括自动语音识别技术(ASR,Au tomaticSpeech Recognition)和语音合成技术(TTS,Text To Speech)以及声纹识别技术。其中,ASR用于模拟的语音信号转换为计算机可以处理的文本,在语音拨号、电话订票、语音输入、语音导航等各种业务中得到广泛应用。

相关技术中对于语音信号的识别,通过单独运行图形处理器(GraphicsProcessing Unit,GPU)或者中央处理器(Central Processing Unit,CPU)对语音信号进行处理实现,语音识别效率低、资源利用率低。

发明内容

本发明实施例提供一种语音识别方法、装置、电子设备及存储介质,能够提高语音识别效率及资源利用率。

本发明实施例提供一种语音识别方法,所述方法包括:

获取待识别语音信号的多个语音帧的声学特征;

通过图形处理器对所述多个语音帧的声学特征进行编码转换,得到各所述语音帧对应的状态;

通过中央处理器对各所述语音帧对应的状态进行分类组合,得到对应所述待识别语音信号的音素序列;

通过所述中央处理器对所述音素序列进行解码转换,得到对应所述待识别语音信号的文本序列。

本发明实施例还提供了一种语音识别装置,包括:

特征获取模块,用于获取待识别语音信号的多个语音帧的声学特征;

编码转换模块,用于通过图形处理器对所述多个语音帧的声学特征进行编码转换,得到各所述语音帧对应的状态;

分类组合模块,用于通过中央处理器对各所述语音帧对应的状态进行分类组合,得到对应所述待识别语音信号的音素序列;

解码转换模块,用于通过所述中央处理器对所述音素序列进行解码转换,得到对应所述待识别语音信号的文本序列。

上述方案中,所述分类组合模块,还用于当所述待识别语音信号的数量为多路时,通过中央处理器包括的各独立线程,分别对各路所述待识别语音信号的多个语音帧对应的状态进行分类组合,得到各路所述待识别语音信号对应的音素序列。

上述方案中,所述装置还包括:

信号分发模块,依据各路所述待识别语音信号的优先级顺序,通过分发器将各路所述待识别语音信号的语音帧对应的状态,发送至所述中央处理器包括的各独立线程。

上述方案中,所述分类组合模块,还用于对当前语音帧对应的状态及历史语音帧的解码转换结果对应的标签,进行组合分类,得到对应所述当前语音帧的音素;

迭代获取各所述语音帧对应的音素,并将获取的音素进行组合,得到对应所述待识别语音信号的音素序列。

上述方案中,所述解码转换模块,还用于结合语言模型,通过所述中央处理器对所述音素序列进行解码,确定对应所述待识别语音信号的解码路径;

将所述解码路径中包括的文本词进行组合,得到对应所述待识别语音信号的文本序列。

上述方案中,所述特征获取模块,还用于响应于监听到的终端发送的长连接请求,建立与所述终端的长连接;

通过所述长连接接收到所述待识别语音信号。

本发明实施例还提供了一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的语音识别方法。

本发明实施例还提供了一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的语音识别方法。

应用本发明实施例具有以下有益效果:

1),通过图形处理器对所述多个语音帧的声学特征进行编码转换,得到各所述语音帧对应的状态;由于将声学特征进行编码转换成对于的状态需要很大的计算量,该操作通过图形处理器实现,充分利用了图形处理器强大的计算资源,提高了编码转换的效率;

2),通过中央处理器对各所述语音帧对应的状态进行分类组合,得到对应所述待识别语音信号的音素序列;由于对语音帧对应的状态进行分类组合得到音素序列的逻辑复杂度高,但计算量较小,因此,该操作通过中央处理器实现减少了通过图形处理器实现所造成的等待时间及数据拷贝时间,充分利用了中央处理器的资源,提高了处理效率。

附图说明

图1为相关技术中提供的音素与状态的对应关系的示意图;

图2为相关技术中提供的自动语音识别系统100的一个可选的结构示意图;

图3为相关技术提供的语音识别的流程示意图;

图4为相关技术提供的语音信号的分帧示意图;

图5为本发明实施例提供的CPU实现语音识别的运行框架示意图;

图6为本发明实施例提供的GPU实现语音识别的运行框架示意图;

图7为本发明实施例提供的RNN transducer的结构示意图;

图8为本发明实施例提供的基于RNN transducer的语音识别的架构示意图;

图9为本发明实施例提供的语音识别系统的一个可选的架构示意图;

图10为本发明实施例提供的电子设备600的结构示意图;

图11为本发明实施例提供的语音识别方法的框架示意图;

图12为本发明实施例提供的语音识别方法的流程示意图;

图13为本发明实施例提供的语音识别方法的流程示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)语音识别,将人的语音转换为文本的技术,目标是让运行语音识别系统的设备能够听写出不同人所说出的连续语音所包括的文本。

2)音素,构成单词发音的发音单元。

3)状态,粒度小于音素的发音单元,一个音素可以包括三个状态;图1为相关技术提供的音素与状态的对应关系的示意图,参见图1,每个小竖条(如编号11)代表一帧,若干帧语音对应一个状态(如编号120),每三个状态对应分类得到的一个音素(如编号13)。

4)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。

图2为相关技术中提供的自动语音识别系统100的一个可选的结构示意图,涉及前端110和后端120两部分,前端110包括分帧模块111及特征提取模块112;后端120包括解码器121,还包括声学模型122和语言模型123。图3为相关技术提供的语音识别的流程示意图,结合图2及图3对自动语音识别的过程进行说明。

语音信号在宏观上是不平稳的,在微观上是平稳的,具有短时平稳性(10ms-30ms内可以认为语音信号近似不变),因此,可以把语音信号分为一些短段来进行处理,通过分帧模块111对语音信号进行分帧,也就是把声音切开成一小段一小段,每小段称为一帧,图4为相关技术提供的语音信号的分帧示意图,参见图4,帧与帧之间存在交叠。

分帧后的语音信号变成了很多小的片段,然后针对小片段进行特征提取,通过特征提取模块112提取Mel频率倒谱系数(MFCC,Mel Frequency Cepstrum Coefficient)特征、线性预测倒谱系数(LPCC,Linear Prediction Cepstrum Coefficient)特征,得到对应每一帧的声学特征向量。

在实际应用中,声学模型122可利用语音数据库训练得到,语言模型123可利用语言数据库训练得到,训练声学模型和语言模型的过程是语音、语言学知识、信号处理技术、数据挖掘技术和统计建模方法的一个融合的过程,后端120利用解码器121通过一定的搜索方式,搜索最佳解码路径,将解码路径中包括的文本词进行组合,得到对应待识别语音信号的文本序列。

发明人在研究过程中发现,相关技术中支持声学模型的深度学习前向推理框架包括:Tensorflow Servering、libtorch、TensorRT、mxnet及paddlepaddle等。

其中,TensorRT为只支持GPU模式的闭源线上推理库,只支持常见的层(比如卷积层、全连接层等),无法满足复杂的声学模型结构,如FSMN、RN N Transducer等;且TensorRT是闭源软件,进行二次开发的成本高且限制大。

Tensorflow Servering,libtorch,mxnet、paddle paddle为开源框架,支持通过仅运行CPU实现(即仅支持CPU模式)或仅运行GPU实现(即仅支持G PU模式);其中,Tensorflow Servering,libtorch对应的训练框架和前向推理框架是分离的,mxnet、paddle paddle对应的训练框架和前向推理框架是一体的;这些支持前向推理的框架具有以下缺点:1)开源框架庞大,修改维护难度高,也无法完全满足复杂的声学模型结构;2)开源框架为了追求易用性,会尽可能的将算子(运算单元)细粒度化,能够支持大部分深度学习模型的训练任务,但对于前向推理任务,实现合并算子,减少无用数据计算等优化策略难度较高,无法获得明显的性能收益;3)只支持一种运行模式(GPU或CPU),很难满足特定复杂声学模型的线上性能要求,且无法充分利用服务器上的CPU和GPU资源。

在一些实施例中,可通过CPU实现语音识别,图5为本发明实施例提供的CPU实现语音识别的运行框架示意图,参见图5,服务器通过CPU创建多个独立的CPU线程,服务器循环监听终端发送的长连接请求(socket请求),并通过与终端建立的长连接,接收终端发送的待识别语音信号(语音数据),将待识别语音信号分配给处于等待状态的CPU线程(Thread),通过CPU线程对待识别语音信号进行声学特征提取、声学模型打分、解码器解码,最后输出对应待识别语音信号的文本识别结果,在对待识别语音信号进行语音识别的过程中,CPU线程之间相互独立,不存在数据交互,实现完全隔离。

在一些实施例中,还可通过GPU实现语音识别,在GPU中,核函数(ker nel)为一种扩展的C函数,如果CPU调用N个并行的CPU线程分别执行该函数的指令,核函数将在GPU内并行执行,一个GPU上运行多个核函数会出现GPU资源竞争的现象,导致GPU性能下降,因为每个核函数内运行指令相同,因此,可通过合并核函数实现GPU优化;如果采用同CPU实现语音识别的运行框架相同的框架进行语音识别,每个CPU线程都在GPU中开一个核函数,会浪费GPU的计算资源,并引发竞争问题使打分速度变慢,这将导致在性能要求内,一块GPU只能负载十几个GPU线程,GPU利用率极低。

基于此,提出GPU实现语音识别的运行框架,图6为本发明实施例提供的GPU实现语音识别的运行框架示意图,如图6所示,在声学模型打分之前,设置一个收集器,以收集通过各个长连接发送的语音信号的声学特征,具体地,收集器收集一段时间T内,各线程所提取的声学特征,然后将收集的特征进行拼接,形成特征块;收集器将拼接得到的特征块发送至GPU进行声学模型打分,此时GPU内只有一个大核函数在运行;在声学模型打分之后,设置一个分发器,GPU进行声学模型打分的结果为分数块,分发器的功能为将分数块按顺序再分发给各个CPU线程,然后进行解码器解码。

上述基于GPU实现语音识别的运行框架,借助GPU强大的计算能力,提升了声学模型的打分速度,性能损失为收集器需要等待时间T1,即每个线程的最长声学模型打分时间为等待时间+GPU计算时间,其中等待时间一般为12ms,计算时间视模型复杂程度,一般为5-20ms,而CPU模式下,打分时间一般为50-70ms。与CPU模式相比,GPU模式下,性能收益明显高于性能损失,整体速度提升明显,在GPU模式下,使用NVIDIA Tesla P4显卡,语音识别最高支持监听64个用户请求(语音识别请求),同时可以进行十几路的并行打分。

在一些实施例中,还可基于RNN transducer框架实现语音识别,图7为本发明实施例提供的RNN transducer的结构示意图,参见图7,RNN Transducer为典型的encoder-decoder结构,所有输入特征首先进行编码(encoder)层计算,再循环逐帧进行解码(decoder)计算,其中,decoder的第t帧计算依赖t-1帧的计算结果。其中X为输入的声学特征,xn为待识别语音信号的第n帧的声学特征;h为encoder的结果,其中,hn为对声学特征xn的编码结果;对于第t帧,decoder的输入为t-1帧的候选标签,decoder的结果为Zt;Zt与ht通过联合网络(Joint Network)+softmax计算得到yt;解码器在根据yt得到识别结果的同时输出候选标签Lt,即第t+1帧的decoder的输入;另外,在RNN transd ucer中,主要计算量集中在encoder上,decoder的网络结构简单,计算量低。

由于RNN transducer的复杂性,CPU模式无法满足其实时性需求,需要通过GPU运行,由于存在跟解码器的交互,除了设置收集声学特征的收集器,需要增设收集解码器输出的候选标签的收集器,图8为本发明实施例提供的基于RNN transducer的语音识别的架构示意图,参见图8,由于增设了收集器,即增加了等待时间T2以及数据拷贝的时间,而增加的时间要明显大于decoder自身的数据计算时间,导致语音识别的整体速度下降,且由于增加了整体架构复杂度,使得编程难度增加,降低了代码的可维护性。

为至少解决上述技术问题,提出本发明实施例的语音识别方法、装置、电子设备及存储介质,服务器获取待识别语音信号的多个语音帧的声学特征;通过图形处理器对多个语音帧的声学特征进行编码转换,得到各语音帧对应的状态;通过中央处理器对各语音帧对应的状态进行分类组合,得到对应待识别语音信号的音素序列;通过中央处理器或图形处理器对音素序列进行解码转换,得到对应待识别语音信号的文本序列;采用图形处理器及中央处理器协同实现对待识别语音信号的识别,能够提高语音识别效率及资源利用率。

首先对本发明实施例的语音识别系统进行说明。图9为本发明实施例提供的语音识别系统的一个可选的架构示意图,参见图9,为实现支撑一个示例性应用,终端包括终端400-1和终端400-2,终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。

终端(如终端400-1),用于发送语音识别请求给服务器200,语音识别请求中携带待识别语音信号;

在实际应用中,终端可以为智能手机、平板电脑、笔记本电脑等各种类型的用户终端,还可以为可穿戴计算设备、个人数字助理(PDA)、台式计算机、蜂窝电话、媒体播放器、导航设备、游戏机、电视机、或者这些数据处理设备或其他数据处理设备中任意两个或多个的组合。

服务器200,用于获取待识别语音信号的多个语音帧的声学特征;通过图形处理器对多个语音帧的声学特征进行编码转换,得到各语音帧对应的状态;通过中央处理器对各语音帧对应的状态进行分类组合,得到对应待识别语音信号的音素序列;通过中央处理器或图形处理器对音素序列进行解码转换,得到并返回对应待识别语音信号的文本序列;

在实际实施时,服务器200既可以为单独配置的支持各种业务的一个服务器,亦可以配置为一个服务器集群;

终端(如终端400-1),还用于呈现服务器200返回的对应待识别语音信号的文本序列。

在一些实施例中,终端(如终端400-1)上设置有语音识别客户端,用户通过语音识别客户端实现语音信号的采集,语音识别客户端将采集的语音信号发送至服务器,服务器获取待识别语音信号的多个语音帧的声学特征;通过图形处理器对多个语音帧的声学特征进行编码转换,得到各语音帧对应的状态;通过中央处理器对各语音帧对应的状态进行分类组合,得到对应待识别语音信号的音素序列;通过中央处理器或图形处理器对音素序列进行解码转换,得到并返回对应待识别语音信号的文本序列;语音识别客户端呈现服务器返回的文本序列。

接下来下面对实施本发明实施例的语音识别方法的电子设备进行说明。在一些实施例中,电子设备可以为终端,还可以为服务器。参见图10,图10是本发明实施例提供的电子设备600的结构示意图,图10所示的电子设备600包括:处理器610、存储器650、网络接口620和用户接口630。电子设备600中的各个组件通过总线系统640耦合在一起。可理解,总线系统640用于实现这些组件之间的连接通信。总线系统640除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统640。

处理器610可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口630包括使得能够呈现媒体内容的一个或多个输出装置631,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口630还包括一个或多个输入装置632,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

存储器650可以是可移除的、不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器650可选地包括在物理位置上远离处理器610的一个或多个存储设备。

存储器650包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本发明实施例描述的存储器650旨在包括任意适合类型的存储器。

在一些实施例中,存储器650能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统651,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块652,用于经由一个或多个(有线或无线)网络接口620到达其他计算设备,示例性的网络接口620包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;

呈现模块653,用于经由一个或多个与用户接口630相关联的输出装置631(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作***设备和显示内容和信息的用户接口);

输入处理模块654,用于对一个或多个来自一个或多个输入装置632之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

在一些实施例中,本发明实施例提供的语音识别装置可以采用软件方式实现,图10示出了存储在存储器650中的语音识别装置655,其可以是程序和插件等形式的软件,包括以下软件模块:特征获取模块6551、编码转换模块6552、分类组合模块6553及解码转换模块6554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。

在另一些实施例中,本发明实施例提供的语音识别装置可以采用硬件方式实现,作为示例,本发明实施例提供的语音识别装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的语音识别方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Progra mmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。

图11是本发明实施例提供的语音识别方法的框架示意图,参见图11,结合CPU及GPU的特点,对于计算量大的encoder使用GPU进行打分,充分利用GPU强大的计算资源;计算量小的decoder使用CPU进行打分,减少使用GPU模式造成的额外等待时间和数据拷贝时间,因为decoder计算量比较少,CPU模式使用INT8策略和AVX技术进行加速后,可以明显缩小与GPU模式之间的速度差异。同时,对于深度学习神经网络这种计算密集型任务,为了获得更快的速度,大部分的密集计算任务分配给了GPU计算,CPU进行一些逻辑复杂度比较高但计算量比较少的任务,这往往导致GPU在进行计算时,CPU处于空闲状态。本发明实施例提供的语音识别方法的框架同时支持GPU模式和CPU模式,可以在非常方便的同时为GPU和CPU分配密集计算任务,更加充分的利用服务器的CPU和GPU计算资源。

继续对本发明实施例提供的语音识别方法进行说明。图12是本发明实施例提供的语音识别方法的流程示意图,在一些实施例中,该语音识别方法可由服务器或终端实施,或由服务器及终端协同实施,以服务器实施为例,结合图11及图12,本发明实施例提供的语音识别方法包括:

步骤701:服务器获取待识别语音信号的多个语音帧的声学特征。

在一些实施例中,服务器在对待识别语音信号进行特征提取得到声学特征之前,循环监听终端发送的长连接请求,并建立与终端的长连接;通过所述长连接接收到所述待识别语音信号。

这里,在实际应用中,终端上设置有语音识别客户端,通过语音识别客户端进行语音信号的采集,得到待识别语音信号,待识别语音信号为连续的语音信号,终端通过语音识别客户端向服务器发送长连接请求,以建立与服务器之间的长连接,通过长连接将携带待识别语音信号的语音识别请求发送给服务器。

语音特征从表现形式上可以包括时域特征和频域特征,从来源上可以包括基于人类发生机理的特征,如线性预测倒谱系数(LPCC,Linear Prediction Ce pstrumCoefficient),还包括基于人耳听觉感知的特征,例如Mel频率倒谱系数(MFCC,MelFrequency Cepstrum Coefficient)。

在实际实施时,服务器可通过如下方式获取待识别语音信号的多个语音帧的声学特征:对待识别语音信号进行加窗分帧处理,得到待识别语音信号的多个语音帧;分别对各语音帧进行特征提取,得到待识别语音信号的多个语音帧的声学特征。

这里,通过对语音帧进行声学特征提取,将每一语音帧对应的波形转换为一个多维特征向量,转换得到的多维特征向量包含了这帧语音的内容信息。

在实际实施时,服务器可通过创建的多个CPU线程处理多个语音识别请求中,每个CPU线程处理一个携带待识别语音信号的语音识别请求,对待识别语音信号进行声学特征提取,各个CPU线程之间相互独立,互不影响。

在一些实施例中,服务器中设置有收集器,当待识别语音信号的数量为多路(即两路或两路以上)时,服务器通过收集器对多路待识别语音信号的声学特征进行特征拼接,得到多路待识别语音信号对应的特征块。

这里,对应通过多个CPU线程对多路待识别语音信号分别进行特征提取的情况,为了加速GPU的声学模型打分过程,避免多个GPU线程出现资源竞争,通过收集器对多个CPU线程提取得到的声学特征进行拼接,得到相应的特征块,以使得GPU通过单线程对特征块进行处理。

在实际实施时,收集器周期性的对多个CPU线程提取得到的声学特征进行收集及拼接,具体的收集周期可依据实际需要进行设定,如收集周期t为12ms。

在一些实施例中,收集器在将多个CPU线程提取得到的声学特征进行拼接时,可依据声学特征到达收集器的先后进行拼接,如到达收集器的特征依次为X1、X2、X3,则依据到达顺序进行拼接为X1+X2+X3。

步骤702:通过图形处理器对多个语音帧的声学特征进行编码转换,得到各语音帧对应的状态。

在一些实施例中,当待识别语音信号的数量为多路时,服务器可通过如下方式实现对多个语音帧的声学特征进行编码转换:通过图形处理器的单线程对特征块进行编码转换,得到各路待识别语音信号包括的各语音帧对应的状态。

这里,在实际实施时,图形处理器通过单线程运行训练得到的神经网络模型(Encoder),实现预测每个语音帧的声学特征所对应的状态的概率,以确定该语音帧的声学特征所对应的状态,由于待识别语音信号通常包括多个语音帧,经GPU对多个语音帧的声学特征打分(即状态预测),可得到各语音帧对应的状态,形成对应待识别语音信号的状态序列。

示例性地,待识别语音信号包括三个语音帧,基于第一语音帧的声学特征预测得到第一语音帧在状态S1上的概率为0.45,在状态S2上的概率为0.25,在状态S3上的概率为0.75,在状态S4上的概率为0.25,则该帧对应状态S3,如此得到第二语音帧对应状态S2、第三语音帧对应状态S5,则得到对应该待识别语音信号的状态序列为S3、S2、S5。

参见图7,通过GPU运行编码器(Encoder),对应待识别语音信号的特征向量(声学特征)序列X=[x0,x1,x2,…,xn]输入Encoder,其中,xn表示待识别语音信号的第n个语音帧对应的特征向量,经Encoder对各个特征向量的编码转换,得到各特征向量对应的状态,进而得到对应特征向量序列X的状态序列h。在实际实施时,由于在语音识别过程中,Encoder所对应的计算量较大,通过GPU实现Encoder对应的状态预测,充分利用了GPU强大的计算资源,提高了语音识别效率。

步骤703:通过中央处理器对各语音帧对应的状态进行分类组合,得到对应待识别语音信号的音素序列。

在一些实施例中,当待识别语音信号的数量为多路时,服务器可通过如下方式实现对各语音帧对应的状态进行分类组合:当待识别语音信号的数量为多路时,服务器通过中央处理器包括的各独立线程,分别对各路待识别语音信号的多个语音帧对应的状态进行分类组合,得到各路待识别语音信号对应的音素序列。

在一些实施例中,服务器可通过如下方式实现对各语音帧对应的状态进行分类组合:对当前语音帧对应的状态及历史语音帧的解码转换结果对应的标签,进行组合分类,得到对应当前语音帧的音素;迭代获取各语音帧对应的音素,并将获取的音素进行组合,得到对应待识别语音信号的音素序列。

参见图7,通过CPU运行解码器1(Decoder),对于特征向量序列中第t个特征向量xt,Encoder的输出为ht,解码器1(Decoder)的输出为Zt,通过联合网络(Joint Network)对ht及Zt进行拼接(相加),然后经softmax分类,得到第t个特征向量xt对应的音素yt

在一些实施例中,服务器中设置有分发器,服务器依据各路待识别语音信号的优先级顺序,通过分发器将各路待识别语音信号的语音帧对应的状态,发送至中央处理器包括的各独立线程,以使各CPU线程运行解码器1(Decoder),实现Decoder打分(即音素预测),具体地,参见图7,在实际实施时,各CPU线程结合解码器2反馈的语音识别结果(即识别得到的文本所对应的编号),对从分发器接收到的语音帧对应的状态进行分类组合,得到各路待识别语音信号对应的音素序列。由于Decoder打分的处理逻辑复杂度较高,通过CPU实现充分利用了CPU强大的逻辑处理能力,同时,减少了通过GPU实现所需要的等待时间。

此外,继续参见图11,在其他实施例中,分发器可将各路待识别语音信号的语音帧对应的状态,发送至CPU包括的各独立线程,由CPU各线程中的解码器进行解码打分,并通过CPU或GPU,对各CPU线程的解码打分(即音素预测)结果进行解码转换,得到对应的解码转换结果,解码转换结果反馈至已接收了对应编码打分结果的相应CPU线程中的联合网络,联合网络,结合解码转换结果(即识别得到的文本所对应的编号),对各语音帧对应的状态进行分类组合,得到相应的音素序列。

在实际实施时,解码器1(Decoder)可采用长短期记忆网络(LSTM,Long Short-Term Memory)。

步骤704:对音素序列进行解码转换,得到对应待识别语音信号的文本序列。

这里,在实际实施时,对于每个语音帧都会预测得到相应的一个状态,由于待识别语音信号通常包含多个语音帧,最后得到的状态中很多都是相同的,假设待识别语音信号包含1000个语音帧,每帧对应一个状态,每3个状态组合成一个音素,则组合成300个音素,然而,并不存在这么多音素,因此,需要找到一个最优的解码路径,使得与待识别语音信号最为匹配。

在一些实施例中,服务器可通过如下方式实现对音素序列进行解码转换:

服务器结合语言模型,通过中央处理器或图形处理器对音素序列进行解码,确定对应待识别语音信号的解码路径;将解码路径中包括的文本词进行组合,得到对应待识别语音信号的文本序列。

这里,语言模型是语言结构(包括词语、句子之间的规律,例如语法、词语常用搭配等)的知识表示,语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。

在实际实施时,CPU线程可通过运行隐马尔可夫模型(Hidden Markov Model,HMM)构建状态网络,从状态网络中确定与待识别语音信号最为匹配的解码路径。

应用本发明上述实施例,通过图形处理器对多个语音帧的声学特征进行编码转换,得到各语音帧对应的状态;由于将声学特征进行编码转换成对于的状态需要很大的计算量,该操作通过图形处理器实现,充分利用了图形处理器强大的计算资源,提高了编码转换的效率;通过中央处理器对各语音帧对应的状态进行分类组合,得到对应待识别语音信号的音素序列;由于对语音帧对应的状态进行分类组合得到音素序列的逻辑复杂度高,但计算量较小,因此,该操作通过中央处理器实现减少了通过图形处理器实现所造成的等待时间及数据拷贝时间,充分利用了中央处理器的资源,提高了处理效率。

此外,通过GPU得到各语音帧对应的状态后,分发至CPU各独立线程,在各独立线程上再进行后续处理,无需额外再增加一个收集器,减少了等待和数据复制的时间,且减少了程序复杂度。

继续对本发明实施例提供的语音识别方法进行说明。图13是本发明实施例提供的语音识别方法的流程示意图,在一些实施例中,该语音识别方法可由服务器或终端实施,或由服务器及终端协同实施,以服务器和终端协同实施为例,参见图13,本发明实施例提供的语音识别方法包括:

步骤801:终端发送长连接建立请求给服务器。

这里,终端上设置有语音识别客户端,通过语音识别客户端发送长连接建立请求给服务器,以通过建立的长连接发送采集的待识别语音信号。

步骤802:终端建立与服务器之间的长连接。

步骤803:终端发送语音识别请求给服务器。

这里,在实际应用中,终端通过建立的长连接发送语音识别请求给服务器,语音识别请求中携带待识别语音信号。

步骤804:服务器通过多个CPU线程对多路待识别语音信号进行特征提取。

在实际实施时,服务器通过独立的CPU线程对待识别语音信号进行特征提取,得到相应的特征向量。

步骤805:服务器通过收集器对多路待识别语音信号的声学特征进行特征拼接,得到特征块。

步骤806:服务器通过GPU对特征向量进行编码转换,得到对应各待识别语音信号的状态序列。

步骤807:服务器通过分发器将各状态序列发送至各CPU线程。

步骤808:服务器通过各CPU线程对各待识别语音信号的状态序列进行分类组合,得到对应各待识别语音信号的音素序列。

步骤809:服务器通过各CPU线程对各音素序列进行解码转换,得到对应各待识别语音信号的文本序列。

步骤810:服务器通过长连接将得到的文本序列返回至终端。

步骤811:终端呈现服务器返回的文本序列。

继续对本发明实施例提供的语音识别装置的软件实现进行说明。参见图10,本发明实施例提供的语音识别装置包括:

特征获取模块,用于获取待识别语音信号的多个语音帧的声学特征;

编码转换模块,用于通过图形处理器对所述多个语音帧的声学特征进行编码转换,得到各所述语音帧对应的状态;

分类组合模块,用于通过中央处理器对各所述语音帧对应的状态进行分类组合,得到对应所述待识别语音信号的音素序列;

解码转换模块,用于通过所述中央处理器或图形处理器对所述音素序列进行解码转换,得到对应所述待识别语音信号的文本序列。

在一些实施例中,所述特征获取模块,还用于对所述待识别语音信号进行加窗分帧处理,得到所述待识别语音信号的多个语音帧;

分别对各所述语音帧进行特征提取,得到所述待识别语音信号的多个语音帧的声学特征。

在一些实施例中,所述装置还包括:

特征拼接模块,用于当所述待识别语音信号的数量为多路时,通过收集器对多路所述待识别语音信号的声学特征进行特征拼接,得到多路所述待识别语音信号对应的特征块。

在一些实施例中,所述编码转换模块,还用于通过所述图形处理器的单线程对所述特征块进行编码转换,得到各路所述待识别语音信号包括的各所述语音帧对应的状态。

在一些实施例中,所述分类组合模块,还用于当所述待识别语音信号的数量为多路时,通过中央处理器包括的各独立线程,分别对各路所述待识别语音信号的多个语音帧对应的状态进行分类组合,得到各路所述待识别语音信号对应的音素序列。

在一些实施例中,所述装置还包括:

信号分发模块,依据各路所述待识别语音信号的优先级顺序,通过分发器将各路所述待识别语音信号的语音帧对应的状态,发送至所述中央处理器包括的各独立线程。

在一些实施例中,所述分类组合模块,还用于对当前语音帧对应的状态及历史语音帧的解码转换结果对应的标签,进行组合分类,得到对应所述当前语音帧的音素;

迭代获取各所述语音帧对应的音素,并将获取的音素进行组合,得到对应所述待识别语音信号的音素序列。

在一些实施例中,所述解码转换模块,还用于结合语言模型,通过所述中央处理器对所述音素序列进行解码,确定对应所述待识别语音信号的解码路径;

将所述解码路径中包括的文本词进行组合,得到对应所述待识别语音信号的文本序列。

在一些实施例中,所述特征获取模块,还用于响应于监听到的终端发送的长连接请求,建立与所述终端的长连接;

通过所述长连接接收到所述待识别语音信号。

这里需要指出的是:以上涉及装置的描述,与上述方法描述是类似的,同方法的有益效果描述,不做赘述,对于本发明实施例所述装置中未披露的技术细节,请参照本发明方法实施例的描述。

本发明实施例还提供了一种电子设备,所述电子设备包括:

存储器,用于存储可执行程序;

处理器,用于执行所述存储器中存储的可执行程序时,实现本发明实施例提供的上述语音识别方法。

本发明实施例还提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的语音识别方法。

实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、RAM、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种语音结束端点检测方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!