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

未命名 08-07 阅读:92 评论:0


1.本技术涉及语音技术领域,特别涉及到一种语音识别方法、装置、存储介质及电子设备。


背景技术:

2.在语音识别技术领域,一般采用端到端(e2e)的网络识别或者混合识别方式(声学模型(am)+语言模型)识别语音,e2e或者am全连接层的输出,一般是音素的概率分布。在这个过程中要经过一次softmax :softmax的计算公式为;其中exp表示以e为底的指数运算,,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数。然而,低资源的设备是没有硬件的指数实现的,这导致低资源设备无法实时识别出语音。因此,如何使语音实时识别在低端智能语音设备上变为现实且保证语音识别的精度是亟需解决的技术问题。


技术实现要素:

3.本技术的主要目的为提供一种语音识别方法、装置、存储介质及电子设备,旨在使语音实时识别在低端智能语音设备上变为现实且保证语音识别的精度。
4.第一方面,本技术实施例提供一种语音识别方法,包括:获取待识别的语音信号;将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,根据如下步骤确定所述全连接层的输出值对应的exp值:判断所述全连接层的输出值是否小于设定的第一阈值;若小于,则将所述全连接层的输出值对应的exp值置0;否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;
若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;利用所述查找表确定所述整数定点值对应的exp值;按照s=s1+s2+..sn的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;利用所述查找表确定s1至s
n-1
各自对应的exp值;采用泰勒级数计算所述sn的exp值;将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值。
5.进一步的,所述查找表根据如下步骤构建得到:计算[t1,-1]之间每个负整数的exp值,并将所述负整数的exp值转换为定点值,作为exp定点值;其中,t1为所述设定的第一阈值的浮点值,所述第一阈值的浮点值为负整数且小于负1;计算[-1,0]中指定数值的exp值,并将所述指定数值的exp值转换为定点值,作为exp定点值;将所述[t1,-1]中的每一负整数对应的定点值以及每一所述指定数值对应的定点值均作为一个索引值,将其对应的exp定点值作为所述索引值对应的exp值记录到一设定的表格中,构建得到所述查找表。
[0006]
进一步的,所述检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值的步骤包括:通过分别计算所述查找表中每一索引值与所述全连接层的输出值之间的差值的方式检测所述查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值。
[0007]
进一步的,所述利用所述查找表确定所述整数定点值对应的exp值的步骤包括:将所述整数定点值作为索引,在所述查找表中查找与所述整数定点值相等的索引值;将与所述整数定点值相等的索引值对应的exp值作为所述整数定点值对应的exp值。
[0008]
进一步的,所述语音识别方法应用于低资源设备,所述低资源设备与部署设备连接,所述部署设备用于:对原始语音识别模型进行剪枝;将剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值;将量化后的语音识别模型作为所述预先训练好的语音识别模型部署到所述低资源设备上。
[0009]
进一步的,所述对所述原始语音识别模型进行剪枝的步骤包括:将小于预设阈值的权值设为0或将小于预设阈值的权值对应的连接删除。
[0010]
进一步的,所述将剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值的步骤包括:采用量化感知训练方法或线性量化方法将所述剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值。
[0011]
第二方面,本技术实施例提供一种语音识别装置,包括:语音信号获取模块,用于获取待识别的语音信号;输入模块,用于将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;音素概率分布计算模块,用于基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;确定模块,用于利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,利用如下单元确定所述全连接层的输出值对应的exp值:判断单元,用于判断所述全连接层的输出值是否小于设定的第一阈值;第一exp值确定单元,,用于若小于,则将所述全连接层的输出值对应的exp值置0;检测单元,用于否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;第二exp值确定单元,用于若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;第一拆分单元,用于若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;第三exp值确定单元,用于利用所述查找表确定所述整数定点值对应的exp值;第二拆分单元,用于按照s=s1+s2+..sn的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;第四exp值确定单元,用于利用所述查找表确定s1至s
n-1
各自对应的exp值;计算单元,用于采用泰勒级数计算所述sn的exp值;相乘单元,用于将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值。
[0012]
第三方面,本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述方法的步骤。
[0013]
第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述方法的步骤。
[0014]
本技术实施例提供的语音识别方法,包括:获取待识别的语音信号;将所述语音信
号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,根据如下步骤确定所述全连接层的输出值对应的exp值:判断所述全连接层的输出值是否小于设定的第一阈值;若小于,则将所述全连接层的输出值对应的exp值置0;否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;利用所述查找表确定所述整数定点值对应的exp值;按照s=s1+s2+..sn的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;利用所述查找表确定s1至s
n-1
各自对应的exp值;采用泰勒级数计算所述sn的exp值;将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值,如此,使语音实时识别在低端智能语音设备上变为现实且保证语音识别的精度。
附图说明
[0015]
图1为申请实施例提供的语音识别方法的流程示意图;图2为申请实施例提供的语音识别装置的结构意图;图3为申请实施例提供的电子设备的结构示意图;本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0016]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0017]
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“上述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件、模块、模块和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、模块、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一模块和全部组合。
[0018]
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0019]
请参阅图1,本技术实施例提供一种语音识别方法,包括步骤s1-s4:s1、获取待识别的语音信号;s2、将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;s3、基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;s4、利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,根据如下步骤确定所述全连接层的输出值对应的exp值:s31、判断所述全连接层的输出值是否小于设定的第一阈值;s32、若小于,则将所述全连接层的输出值对应的exp值置0;s33、否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;s34、若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;s35、若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;s36、利用所述查找表确定所述整数定点值对应的exp值;s37、按照s=s1+s2+..sn的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;s38利用所述查找表确定s1至s
n-1
各自对应的exp值;s39、采用泰勒级数计算所述sn的exp值;s40、将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值。
[0020]
本技术上述语音识别方法应用于低资源设备,低资源设备指的是:1、主频低,比如cpu的主频小于100mhz ;2、内存少,比如内存只有50k以内;3、flash少,比如flash只有256k ;4、支持的运算少,比如只支持定点计算,且对一些数学运算没有硬件加速。所述低资源设备可以理解为低端的智能语音设备。
[0021]
如上述步骤s1,作为一种举例,所述待识别的语音信号通过麦克风采集得到,所述
麦克风是低端智能语音设备上配置的麦克风。
[0022]
如上述步骤s2,所述语音识别模型为端到端的语音识别模型或由声学模型和语言模型构成。定点值又可以理解为定点数,定点数指的是小数点固定的数。
[0023]
如上述步骤步骤s3,,为需要输入到exp函数中的值。在本发明实施例中,全连接层的输出值需要输入到exp函数中,然后根据步骤s31-s40计算该全连接层的输出值对应的exp值,这样才能计算出语音信号的音素概率分布。
[0024]
如上述步骤s4,音素概率分布,可以认为是每个小时间段 都会有一列音素概率分布输出,这样一段时长的音频(语音信号),就对应若干列的音素概率分布,它组成一个解码矩阵。在这个二维解码矩阵上,可以运用多种算法进行语音识别,比如greedy search(贪心搜索) 、beam search(集束搜索) 、viterbi(维特比)解码等算法。这些都是一些常见的语音识别解码算法。
[0025]
如上述步骤s31,所述设定的第一阈值根据实际需要的精度设计。由步骤s2可知,所述全连接层的输出值为定点值,由于浮点值可映射为定点值,定点值和浮点值的映射关系为:定点值=浮点值*量化因子,如若浮点值为-15,量化因子(factor)为,那么,定点值。由于定点值可映射为对应的浮点值,为便于描述,本技术所有具体数字例子均采用浮点值进行举例说明。应当理解的是,浮点值又可以理解为浮点数,浮点数指的是小数点不固定的数。
[0026]
如上述步骤s32,作为一个例子,将-15作为所述第一阈值(定点值)对应的浮点值,由于是一个很小的值,因此,若全连接层的输出值小于第一阈值,可以将全连接层的输出值对应的exp值置0。本技术实施例通过将小于第一阈值的全连接层的输出值对应的exp值直接置为0,因此,可以提高exp值计算的速度,从而提高音素概率分布计算速度,进而提高语音识别的速度。又由于该第一阈值对应的exp值很小,因此,将小于第一阈值的全连接层的输出值对应的exp值置为0不会损失exp值的精度,从而不会损失音素概率分布的精度,进而不会损失语音识别的精度。
[0027]
如上述步骤s33-s34,作为一个例子,比如-2.0000001 (全连接层的输出值对应浮点值)和-2(索引值对应的浮点值)的差值是, 若第二阈值对应的浮点值设定为, 由于,那么exp(-2.0000001)可用exp(-2)值表示。
[0028]
如上述步骤s35,作为一个例子,比如,即-2.6(浮点值)可拆分成-2和-0.6。
[0029]
如上述步骤s36,所述整数定点值对应的exp值已经预先计算出来且存储在查找表中,因此,通过查找表查找整数定点值对应的exp值可以提高计算速度。
[0030]
如上述步骤s37~s40,由于采用泰勒级数计算exp值会存在误差,且根据其泰勒(taylor)展开式可知,在x越接近0,其展开式计算越准确,因此,为既能够提高计算速度也能够保证计算精度,可以预先计算出部分小数点定点值的exp值,并记录到查找表中,其余小数点定点值的exp值采用泰勒级数实时计算。作为一个例子,-0.6=(-0.5)+(-0.1),其中,该例子中,-0.5的exp值是预先计算出来并记录在查找表中的值,-0.1的exp值是需要实时计算的值。进一步的,[-1,0]中指定数值,即记录在表格中的值是根据所需精度确定的, 如
[-1,0]中指的数值包括-1/2,
ꢀ‑
1/4 ...t3等数值,其中,t3用于确定精度,如t3可取-1/16。若t3为-1/16,那么,在该种情况下,sn为(-1/16,0)之间的数值,即可只需要计算(-1/16,0)之间的数值即可。如上述步骤s40,根据指数运算规则可知,,因此,将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘可以得到所述全连接层的输出值对应的exp值。本技术实施例通过将全连接层的输出值拆分成整数定点值和小数定点值,还将小数定点值进一步拆分成更小的小数定点值,而整数定点值以及部分小数定点值对应的exp值可以通过查表得到,因此,无需实时计算,提高了确定exp值的速度,从而提高音素概率分布计算速度,进而提高语音识别的速度。此外,通过将部分小数定点值以及其对应的exp值记录在表格中,减少泰勒近似exp值的范围,从而提升近似的精度,进而提升语音识别精度。
[0031]
本技术实施例提供的语音识别方法,包括:获取待识别的语音信号;将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,根据如下步骤确定所述全连接层的输出值对应的exp值:判断所述全连接层的输出值是否小于设定的第一阈值;若小于,则将所述全连接层的输出值对应的exp值置0;否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;利用所述查找表确定所述整数定点值对应的exp值;按照s=s1+s2+..sn的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;利用所述查找表确定s1至s
n-1
各自对应的exp值;采用泰勒级数计算所述sn的exp值;将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值,如此,使语音实时识别在低端智能语音设备上变为现实且保证语音识别的精度。
[0032]
在一个实施例中,所述查找表根据如下步骤构建得到:s100、计算[t1,-1]之间每个负整数的exp值,并将所述负整数的exp值转换为定点值,作为exp定点值;其中,t1为所述设定的第一阈值的浮点值,所述第一阈值的浮点值为负整数且小于负1;s101、计算[-1,0]中指定数值的exp值,并将所述指定数值的exp值转换为定点值,作为exp定点值;s102、将所述[t1,-1]中的每一负整数对应的定点值以及每一所述指定数值对应
的定点值均作为一个索引值,将其对应的exp定点值作为所述索引值对应的exp值记录到一设定的表格中,构建得到所述查找表。
[0033]
如上述步骤s100,若t1为-15,那么需要计算exp(-15),exp(-14)......exp(-1)等值,并将该计算得到的值转换为定点值。需要说明的是,出于数值稳定性考虑,避免softmax函数溢出问题,计算softmax的时候,会减去特征的最大值,因此,用于计算exp值的数值为负数。出于数值稳定性考虑,避免softmax函数溢出问题可以这样理解,在计算[10000,100,1,20]这个的softmax时,如果直接计算,exp(10000) 肯定是超过整数最大表示范围的 ,如果减去最大值,变为[0,-9900,-9999,-9980]后面几个基本值就是0,就不存在数值越界溢出的问题。
[0034]
如上述步骤s101,计算[-1,0]中指定数值的exp值,如计算-0.5,-0.25等的exp值,即计算exp(-0,5),exp(-0.25)等。
[0035]
需要说明的是,上述步骤s100中负整数的exp值和步骤s101中[-1,0]中指定数值的exp值可以采用离线高精度方式计算得到,比如使用numpy的库或者scipy等库计算得出 。由于该种方式计算精度高,因此计算得到的exp值可以认为是无精度损失的。
[0036]
如上述步骤s102,将-15转换为定点值,将该定点值作为索引值记录在表格中,将-15的exp定点值作为索引值对应的结果记录在表格。将-14转换为定点值,将该定点值作为索引值记录在表格中,将-14的exp定点值作为索引值对应的结果记录在表格中。将-0.5转换为定点值,将该定点值作为索引值记录在表格中,将-0.5的exp定点值作为索引值对应的结果记录在表格。如此类推,可构建得到查找表,示意性的,如表1所示。
[0037]
在本技术实施例中,在构建得到所述查找表之后,将所述查找表存储到所述电子设备的存储器中。
[0038]
本技术实施例通过将查找表存储在所述电子设备的存储器中,可以使得计算exp数值时可直接调用查找表,提高exp值确定速度,从而提高音素概率分布计算速度,进而提高语音识别速度。
[0039]
在一个实施例中,所述检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值的步骤包括:通过分别计算所述查找表中每一索引值与所述全连接层的输出值之间的差值的方式检测所述查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值。
[0040]
在本技术实施例中,由于查找表中存在多个索引值,为检测查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值,因此需要通过逐一比对的方式确定是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值。如,若查找表中存在索引值a1、索引值a2,输入到exp函数中的全连接层的输出值为b,则需要计算a1与b的差值,将计算得到的差值与第二阈值进行比较,便可得知a1与b之间的差值是否小于
第二阈值。a2与b同理。
[0041]
在一个实施例中,所述利用所述查找表确定所述整数定点值对应的exp值的步骤包括:将所述整数定点值作为索引,在所述查找表中查找与所述整数定点值相等的索引值;将与所述整数定点值相等的索引值对应的exp值作为所述整数定点值对应的exp值。
[0042]
在本技术实施例中,通过将整数定点值作为索引,与查找表中的索引值进行逐一比对,可获得与所述整数定点值相等的索引值,从而可以通过对应关系获得与所述整数定点值相等的索引值对应的exp值。
[0043]
在一个实施例中,所述语音识别方法应用于低资源设备,所述低资源设备与部署设备连接,所述部署设备用于:对原始语音识别模型进行剪枝;将剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值;将量化后的语音识别模型作为所述预先训练好的语音识别模型部署到所述低资源设备上。
[0044]
在本技术实施例中,所述低资源设备指的是:1、主频低,比如cpu的主频小于100mhz ;2、内存少,比如内存只有50k以内;3、flash少,比如flash只有256k ;4、支持的运算少,比如只支持定点计算,且对一些数学运算没有硬件加速。所述低资源设备可以理解为低端的智能语音设备。
[0045]
由于低资源设备主频低、内存少、flash少、支持的运算少,而在部署平台训练得到的原始语音识别模型或从第三方获取的原始语音识别模型的数据量是非常大的,因此,原始语音识别模型是无法部署到低资源设备的。为将原始语音识别模型部署到低资源设备,需要对原始语音识别模型进行剪枝,将剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值,这样才能将语音识别模型部署到低资源设备上进行运行。
[0046]
在一个实施例中,所述对所述原始语音识别模型进行剪枝的步骤包括:将小于预设阈值的权值设为0或将小于预设阈值的权值对应的连接删除。
[0047]
本技术实施例通过将小于预设阈值的权值设为0或将小于预设阈值的权值对应的连接删除,可以减少网络中的参数和连接数量。
[0048]
在一个实施例中,所述将剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值的步骤包括:采用量化感知训练方法或线性量化方法将所述剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值。
[0049]
量化感知训练(quantization-aware training):在训练过程中,引入量化的梯度计算和模型更新,以逐步调整模型的参数为量化做取值。这种方法通过模拟量化过程,使模型在低精度的表示下也能保持较好的性能。线性量化:将浮点数转换为定点数,例如将浮点权重和激活值乘以缩放因子,并将结果四舍五入到最接近的整数。该方法可以使用较少的位数来表示权重和激活值,从而减少存储需求和计算复杂度。
[0050]
本技术实施例还提供一种语音识别装置,如图2所示,包括:语音信号获取模块1,用于获取待识别的语音信号;输入模块2,用于将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;音素概率分布计算模块3,用于基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;确定模块4,用于利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,利用如下单元确定所述全连接层的输出值对应的exp值:判断单元,用于判断所述全连接层的输出值是否小于设定的第一阈值;第一exp值确定单元,用于若小于,则将所述全连接层的输出值对应的exp值置0;检测单元,用于否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;第二exp值确定单元,用于若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;第一拆分单元,用于若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;第三exp值确定单元,用于利用所述查找表确定所述整数定点值对应的exp值;第二拆分单元,用于按照s=s1+s2+..sn的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;第四exp值确定单元,用于利用所述查找表确定s1至s
n-1
各自对应的exp值;计算单元,用于采用泰勒级数计算所述sn的exp值;相乘单元,用于将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值。
[0051]
在一些实施例中,所述查找表根据如下步骤构建得到:计算[t1,-1]之间每个负整数的exp值,并将所述负整数的exp值转换为定点值,作为exp定点值;其中,t1为所述设定的第一阈值的浮点值,所述第一阈值的浮点值为负整数且小于负1;计算[-1,0]中指定数值的exp值,并将所述指定数值的exp值转换为定点值,作为exp定点值;
将所述[t1,-1]中的每一负整数对应的定点值以及每一所述指定数值对应的定点值均作为一个索引值,将其对应的exp定点值作为所述索引值对应的exp值记录到一设定的表格中,构建得到所述查找表。
[0052]
在一个实施例中,所述检测单元,具体用于:通过分别计算所述查找表中每一索引值与所述全连接层的输出值之间的差值的方式检测所述查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值。
[0053]
在一个实施例中,所述第三exp值确定单元具体用于:将所述整数定点值作为索引,在所述查找表中查找与所述整数定点值相等的索引值;将与所述整数定点值相等的索引值对应的exp值作为所述整数定点值对应的exp值。
[0054]
在一个实施例中,所述语音识别装置应用于低资源设备,所述低资源设备与部署设备连接,所述部署设备包括:剪枝模块,用于对原始语音识别模型进行剪枝;量化模块,用于将剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值;部署模块,用于将量化后的语音识别模型作为所述预先训练好的语音识别模型部署到所述低资源设备上。
[0055]
在一些实施例中,所述剪枝模块,具体用于:将小于预设阈值的权值设为0或将小于预设阈值的权值对应的连接删除。
[0056]
在一个实施例中,所述量化模块具体用于采用量化感知训练方法或线性量化方法将所述剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值。
[0057]
参照图3,本技术实施例还提供一种电子设备,该电子设备的内部结构可以如图3所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备设计的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储语音识别方法的数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。进一步地,上述电子设备还可以设置有输入装置和显示屏等。上述计算机程序被处理器执行时以实现语音识别方法,包括:获取待识别的语音信号;将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的
个数;利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,根据如下步骤确定所述全连接层的输出值对应的exp值:判断所述全连接层的输出值是否小于设定的第一阈值;若小于,则将所述全连接层的输出值对应的exp值置0;否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;利用所述查找表确定所述整数定点值对应的exp值;按照s=s1+s2+..sn的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;利用所述查找表确定s1至s
n-1
各自对应的exp值;采用泰勒级数计算所述sn的exp值;将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值。本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定。
[0058]
本技术一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现语音识别方法,包括:获取待识别的语音信号;将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,根据如下步骤确定所述全连接层的输出值对应的exp值:判断所述全连接层的输出值是否小于设定的第一阈值;若小于,则将所述全连接层的输出值对应的exp值置0;否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;利用所述查找表确定所述整数定点值对应的exp值;按照s=s1+s2+..sn的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;利用所述查找表确定s1至s
n-1
各自对应的exp值;采用泰勒级数计算所述sn的exp值;将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述sn的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
[0059]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0060]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0061]
以上所述仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:
1.一种语音识别方法,其特征在于,包括:获取待识别的语音信号;将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,根据如下步骤确定所述全连接层的输出值对应的exp值:判断所述全连接层的输出值是否小于设定的第一阈值;若小于,则将所述全连接层的输出值对应的exp值置0;否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;利用所述查找表确定所述整数定点值对应的exp值;按照s=s1+s2+..s
n
的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;利用所述查找表确定s1至s
n-1
各自对应的exp值;采用泰勒级数计算所述s
n
的exp值;将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述s
n
的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值。2.根据权利要求1所述的语音识别方法,其特征在于,所述查找表根据如下步骤构建得到:计算[t1,-1]之间每个负整数的exp值,并将所述负整数的exp值转换为定点值,作为exp定点值;其中,t1为所述设定的第一阈值的浮点值,所述第一阈值的浮点值为负整数且小于负1;计算[-1,0]中指定数值的exp值,并将所述指定数值的exp值转换为定点值,作为exp定点值;将所述[t1,-1]中的每一负整数对应的定点值以及每一所述指定数值对应的定点值均作为一个索引值,将其对应的exp定点值作为所述索引值对应的exp值记录到一设定的表格中,构建得到所述查找表。3.根据权利要求1所述的语音识别方法,其特征在于,所述检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值的步骤
包括:通过分别计算所述查找表中每一索引值与所述全连接层的输出值之间的差值的方式检测所述查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值。4.根据权利要求1所述的语音识别方法,其特征在于,所述利用所述查找表确定所述整数定点值对应的exp值的步骤包括:将所述整数定点值作为索引,在所述查找表中查找与所述整数定点值相等的索引值;将与所述整数定点值相等的索引值对应的exp值作为所述整数定点值对应的exp值。5.根据权利要求1所述的语音识别方法,其特征在于,所述语音识别方法应用于低资源设备,所述低资源设备与部署设备连接,所述部署设备用于:对原始语音识别模型进行剪枝;将剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值;将量化后的语音识别模型作为所述预先训练好的语音识别模型部署到所述低资源设备上。6.根据权利要求5所述的语音识别方法,其特征在于,所述对所述原始语音识别模型进行剪枝的步骤包括:将小于预设阈值的权值设为0或将小于预设阈值的权值对应的连接删除。7.根据权利要求5所述的语音识别方法,其特征在于,所述将剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值的步骤包括:采用量化感知训练方法或线性量化方法将所述剪枝后的语音识别模型的权值和激活值从浮点值量化为定点值。8.一种语音识别装置,其特征在于,包括:语音信号获取模块,用于获取待识别的语音信号;输入模块,用于将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;其中,所述全连接层的输出值为定点值;音素概率分布计算模块,用于基于所述全连接层的输出值,利用公式计算所述语音信号的音素概率分布;其中,exp表示以e为底的指数运算,表示全连接层第i个节点的输出值,j表示全连接层节点的个数,即音素类别的个数;确定模块,用于利用所述语音信号的音素概率分布确定语音识别结果;其中,在利用公式计算所述语音信号的音素概率分布的过程中,利用如下单元确定所述全连接层的输出值对应的exp值:判断单元,用于判断所述全连接层的输出值是否小于设定的第一阈值;第一exp值确定单元,用于若小于,则将所述全连接层的输出值对应的exp值置0;
检测单元,用于否则,检测预先存储在存储器中的查找表中是否存在一索引值与所述全连接层的输出值的差值小于设定的第二阈值;其中,所述查找表包括索引值和索引值对应的exp值;第二exp值确定单元,用于若存在,将所述索引值对应的exp值作为所述全连接层的输出值对应的exp值;第一拆分单元,用于若不存在,将所述全连接层的输出值拆分为整数定点值和小数定点值;第三exp值确定单元,用于利用所述查找表确定所述整数定点值对应的exp值;第二拆分单元,用于按照s=s1+s2+..s
n
的规则,将所述小数定点值s拆分成n个更小的小数定点值;其中,s1至s
n-1
均为所述查找表中的索引值;第四exp值确定单元,用于利用所述查找表确定s1至s
n-1
各自对应的exp值;计算单元,用于采用泰勒级数计算所述s
n
的exp值;相乘单元,用于将所述整数定点值对应的exp值、所述s1至s
n-1
各自对应的exp值以及所述s
n
的exp值进行相乘,得到相乘结果,将所述相乘结果作为所述全连接层的输出值对应的exp值。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。10.一种电子设备,包括:存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法的步骤。

技术总结
本申请属于语音技术领域,尤其涉及一种语音识别方法、装置、存储介质及电子设备,本申请通过获取待识别的语音信号;将所述语音信号输入到预先训练好的语音识别模型,获取所述语音识别模型对所述语音信号进行处理后全连接层的输出值;基于全连接层的输出值,利用sofmax计算公式以及设定的exp值确定方法计算所述语音信号的音素概率分布,利用所述语音信号的音素概率分布确定语音识别结果,如此,使语音实时识别在低端智能语音设备上变为现实且保证语音识别的精度。语音识别的精度。语音识别的精度。


技术研发人员:李杰
受保护的技术使用者:深圳市友杰智新科技有限公司
技术研发日:2023.07.06
技术公布日:2023/8/5
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐