一种语音识别系统及实现前向运算的方法技术方案

技术编号:32890817 阅读:14 留言:0更新日期:2022-04-02 12:34
本发明专利技术提供了一种语音识别系统及实现前向运算的方法,其中,语音识别系统包括:通用处理器,以及与通用处理器连接的FPGA,通用处理器在获得待识别语音后,对待识别语音逐帧提取特征参数,FPGA从通用处理器获取特征参数,基于深度神经网络模型的模型相关数据对获取的特征参数进行运算,将运算结果提供给通用处理器,通用处理器对FPGA提供的运算结果进行语音解码处理,以得到待识别语音的识别结果。经由本发明专利技术提供的语音识别系统和实现前向运算的方法,能够大大缩短前向运算的耗时,进而提升语音识别响应速度。语音识别响应速度。语音识别响应速度。

【技术实现步骤摘要】
一种语音识别系统及实现前向运算的方法


[0001]本专利技术涉及语音识别
,尤其涉及一种语音识别系统及实现前向运算的方法。

技术介绍

[0002]近些年来,随着深度神经网络(Deep neural network,DNN)技术的发展,越来越多的语音识别系统采用HMM

DNN技术。传统的嵌入式语音识别系统是基于通用处理器(DSP/ARM)的方案,由于成本、体积、功耗、集成度和便携性等限制,通用处理器的性能不可能像PC端处理器那么强大,且前向运算(DNN运算)过程中涉及海量的乘法和加法运算,导致前向运算时间很长,因此,整个识别系统的响应速度较慢,延时较大。

技术实现思路

[0003]有鉴于此,本专利技术提供了一种语音识别系统及实现前向运算的方法,用以解决基于通用处理器的语音识别系统响应速度较慢,延时较大的问题,其技术方案如下:一种语音识别系统,包括:通用处理器,以及,与所述通用处理器连接的FPGA;所述通用处理器在获得待识别语音后,对所述待识别语音逐帧提取特征参数;所述FPGA从所述通用处理器实时获取特征参数,基于深度神经网络模型的模型相关数据对获取的特征参数进行运算,将运算结果提供给所述通用处理器;所述通用处理器对所述运算结果进行语音解码处理;其中,所述FPGA基于深度神经网络模型的模型相关数据对一语音帧对应的特征参数进行运算的逻辑操作包括:进入初始状态,检测是否已获得该语音帧的所有特征参数,若是,则进入运算开始状态;进入运算开始状态后,检测是否已获得当前所需的所有模型相关数据,若是,则进入第一运算状态;进入第一运算状态后,基于模型相关数据对该语音帧进行第一运算,以得到该语音帧对应的第一运算结果,第一运算结束后进入第二运算状态,其中,所述第一运算包括矩阵乘法运算、偏移量叠加和sigmoid函数值查表;在进入第二运算状态后,对该语音帧对应的第一运算结果进行第二运算,以得到该语音帧对应的第二运算结果,第二运算结束后进入运算完成状态,其中,所述第二运算包括softmax运算;在进入运算完成状态后,若已获得下一语音帧对应的所有特征参数,则进入第一运算状态,若未获得下一语音帧对应的所有特征参数,则进入初始状态。
[0004]可选的,所述模型相关数据包括权重矩阵数据、偏置矩阵数据和查表数据,所述FPGA进行运算所基于的所述模型相关数据来自所述通用处理器;所述通用处理器在系统初始化阶段,将所述深度神经网络模型的偏置矩阵数据和
查表数据配置于所述FPGA侧;所述FPGA在运算过程中,从所述通用处理器实时获取所述深度神经网络模型的权重矩阵数据。
[0005]可选的,所述通用处理器在提取到多个语音帧分别对应的特征参数后,通知所述FPGA进行特征参数的读取;所述FPGA在收到所述通用处理器的通知后,从所述通用处理器读取所述多个语音帧分别对应的特征参数,对所述多个语音帧分别对应的特征参数进行并行运算。
[0006]可选的,所述FPGA包括一个或多个前向运算单元;若所述FPGA包括一个前向运算单元,则该前向运算单元包括多个前向运算模块,每个前向运算模块对一语音帧对应的特征参数进行运算,多个前向运算模块对一路语音的多个语音帧分别对应的特征参数进行并行运算;若所述FPGA包括多个前向运算单元,则每个前向运算单元对一路语音的语音帧对应的特征参数进行运算,多个前向运算单元对多路语音的语音帧对应的特征参数进行并行运算;若所述FPGA包括多个前向运算单元,则每个前向运算单元包括一个或多个前向运算模块,一个前向运算单元包括的多个前向运算模块对一路语音的多个语音帧分别对应的特征参数进行并行运算。
[0007]可选的,所述FPGA的每个前向运算模块包括一组乘法器和一组加法器,所述深度神经网络模型的各层运算复用该组乘法器和该组加法器。
[0008]可选的,所述前向运算模块中的乘法器和加法器的输入数据以流水线的形式参与运算,所述前向运算模块同时对多组数据进行运算。
[0009]可选的,所述通用处理器和所述FPGA集成于一个芯片上,所述通用处理器与所述FPGA通过AXI总线连接;所述通用处理器在系统初始化阶段,通过所述AXI总线将所述深度神经网络模型的模型相关数据中的偏置矩阵数据和查表数据写入所述FPGA的存储单元;所述FPGA在运算阶段,通过所述AXI总线从所述通用处理器实时读取所述深度神经网络模型的模型相关数据中的权重矩阵数据和多个语音帧分别对应的特征参数,基于所述深度神经网络模型的模型相关数据对所述多个语音帧分别对应的特征参数进行运算,通过所述AXI总线将运算结果写入所述通用处理器的存储单元,以供所述通用处理器对所述运算结果进行语音解码处理。
[0010]一种实现前向运算的方法,应用于上述任一项所述的语音识别系统中的FPGA,所述方法包括:从通用处理器实时获取待识别语音的语音帧对应的特征参数;基于深度神经网络模型的模型相关数据对获得的特征参数进行运算,以得到运算结果;将所述运算结果提供给所述通用处理器,以便所述通用处理器对所述运算结果进行后续的语音解码处理;其中,基于深度神经网络模型的模型相关数据对一语音帧对应的特征参数进行运算包括:
进入初始状态,检测是否已获得该语音帧的所有特征参数,若是,则进入运算开始状态;进入运算开始状态后,检测是否已获得当前所需的所有模型相关数据,若是,则进入第一运算状态;进入第一运算状态后,基于模型相关数据对该语音帧进行第一运算,以得到该语音帧对应的第一运算结果,第一运算结束后进入第二运算状态,其中,所述第一运算包括矩阵乘法运算、偏移量叠加和sigmoid函数值查表;在进入第二运算状态后,对该语音帧对应的第一运算结果进行第二运算,以得到该语音帧对应的第二运算结果,第二运算结束后进入运算完成状态,其中,所述第二运算包括softmax运算;在进入运算完成状态后,若已获得下一语音帧对应的所有特征参数,则进入第一运算状态,若未获得下一语音帧对应的所有特征参数,则进入初始状态。
[0011]可选的,所述从通用处理器实时获取待识别语音的语音帧对应的特征参数,包括:从所述通用处理器实时获取多个语音帧分别对应的特征参数;所述基于深度神经网络模型的模型相关数据对获得的特征参数进行运算,以得到运算结果,包括:对所述多个语音帧分别对应的特征参数进行并行运算,以得到多个语音帧分别对应的运算结果。
[0012]本专利技术提供的语音识别系统中,通用处理器可获得待识别语音,在获得待识别语音后,可对待识别语音逐帧提取特征参数,FPGA可从通用处理器获取特征参数,基于深度神经网络模型的模型相关数据对获取的特征参数进行运算,进而将运算结果提供给通用处理器,以便通用处理器对运算结果进行语音解码处理,从而获得待识别语音的识别结果。本专利技术提供的语音识别系统中,由于语音识别过程中耗时最长、运算量最大的前向运算由FPGA完成,而FPGA的运算能力和运算速度远超通用处理器,因此,利用FPGA进行前向运算能够大大缩短前向运算的耗时,进而提升识别响应速度。
附图说明
[0013]为了更本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种语音识别系统,其特征在于,包括:通用处理器,以及,与所述通用处理器连接的FPGA;所述通用处理器在获得待识别语音后,对所述待识别语音逐帧提取特征参数;所述FPGA从所述通用处理器实时获取特征参数,基于深度神经网络模型的模型相关数据对获取的特征参数进行运算,将运算结果提供给所述通用处理器;所述通用处理器对所述运算结果进行语音解码处理;其中,所述FPGA基于深度神经网络模型的模型相关数据对一语音帧对应的特征参数进行运算的逻辑操作包括:进入初始状态,检测是否已获得该语音帧的所有特征参数,若是,则进入运算开始状态;进入运算开始状态后,检测是否已获得当前所需的所有模型相关数据,若是,则进入第一运算状态;进入第一运算状态后,基于模型相关数据对该语音帧进行第一运算,以得到该语音帧对应的第一运算结果,第一运算结束后进入第二运算状态,其中,所述第一运算包括矩阵乘法运算、偏移量叠加和sigmoid函数值查表;在进入第二运算状态后,对该语音帧对应的第一运算结果进行第二运算,以得到该语音帧对应的第二运算结果,第二运算结束后进入运算完成状态,其中,所述第二运算包括softmax运算;在进入运算完成状态后,若已获得下一语音帧对应的所有特征参数,则进入第一运算状态,若未获得下一语音帧对应的所有特征参数,则进入初始状态。2.根据权利要求1所述的语音识别系统,其特征在于,所述模型相关数据包括权重矩阵数据、偏置矩阵数据和查表数据,所述FPGA进行运算所基于的所述模型相关数据来自所述通用处理器;所述通用处理器在系统初始化阶段,将所述深度神经网络模型的偏置矩阵数据和查表数据配置于所述FPGA侧;所述FPGA在运算过程中,从所述通用处理器实时获取所述深度神经网络模型的权重矩阵数据。3.根据权利要求1所述的语音识别系统,其特征在于,所述通用处理器在提取到多个语音帧分别对应的特征参数后,通知所述FPGA进行特征参数的读取;所述FPGA在收到所述通用处理器的通知后,从所述通用处理器读取所述多个语音帧分别对应的特征参数,对所述多个语音帧分别对应的特征参数进行并行运算。4.根据权利要求3所述的语音识别系统,其特征在于,所述FPGA包括一个或多个前向运算单元;若所述FPGA包括一个前向运算单元,则该前向运算单元包括多个前向运算模块,每个前向运算模块对一语音帧对应的特征参数进行运算,多个前向运算模块对一路语音的多个语音帧分别对应的特征参数进行并行运算;若所述FPGA包括多个前向运算单元,则每个前向运算单元对一路语音的语音帧对应的特征参数进行运算,多个前向运算单元对多路语音的语音帧对应的特征参数进行并行运算;
若所述FPGA包括多个前向运算单元,则每个前向运算单元包括一个或多个前向运算模块,一个前向运算单元包括的多个前向运算模块对一路语音的多个语音帧分别对应的特征参数进行并行运算。5.根...

【专利技术属性】
技术研发人员:黎绍鑫徐承郝正海
申请(专利权)人:合肥讯飞数码科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1