语音识别加速方法、装置和设备与流程
- 国知局
- 2024-06-21 11:38:13
本技术涉及语音识别,特别是涉及到一种语音识别加速方法、装置和设备。背景技术:::1、在语音识别领域,一般采用端到端(e2e)的网络识别或者混合识别方式(声学模型(am)+语言模型)进行语音识别。e2e或者am的输入特征一般是fbank特征,输出的是音素的概率分布。在计算fbank和对音素的概率分布矩阵进行解码识别时(计算概率有概率累成,考虑数值稳定性,会转为log域进行,故一般直接输出logsoftmax的音素概率分布),都会用到log计算。另外在智能语音设备中,受到资源和实时计算的限制,一般推理计算采用定点方式,然而,有些低资源设备没有硬件的对数实现,因此只能通过软件方式计算定点log值(定点的对数值),但是现有软件实现方式(如采用泰勒公式计算对数)时间消耗较大,导致低算力芯片的设备无法实时识别出语音,因此,如何解决现有软件方式实现定点对数计算时间消耗大导致的低算力芯片的设备无法实时识别出语音是目前亟需解决的技术问题。技术实现思路1、本发明的主要目的为提供一种语音识别加速方法、装置和设备,旨在解决现有软件方式实现定点对数计算时间消耗大导致的低算力芯片的设备无法实时识别出语音的技术问题。2、为了实现上述发明目的,本发明第一方面提出一种语音识别加速方法,所述方法包括:3、获取原始语音信号;4、对所述原始语音信号进行语音识别,获得语音识别结果;其中,在语音识别过程中,采用如下步骤计算目标定点值的对数值:5、获取目标定点值;6、将所述目标定点值移动到固定的q1,获得第二目标定点值;其中,q1表示输入数据的精度且预先设定;7、判断所述第二目标定点值是否在第一预设区间内;8、如果在所述第一预设区间内,则利用所述第二目标定点值、预设的第一查找表以及插值计算方法计算所述目标定点值的对数值;其中,所述第一查找表中存储了所述第一预设区间内以预设第一数值为间隔的数值对应的对数值;9、如果不在所述第一预设区间内,则判断所述第二目标定点值是小于所述第一预设区间的最小值还是大于或等于所述第一预设区间的最大值;10、如果小于所述第一预设区间的最小值,则判断所述第二目标定点值是否小于预设的第一阈值;11、如果小于所述第一阈值,则通过预设的第二查找表获取所述目标定点值的对数值;其中,所述第二查找表中存储了所述第二预设区间内以预设第二数值为间隔的数值对应的对数值;其中,所述第二预设区间为[0,第一阈值);12、如果不小于所述第一阈值,则计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的左移位数,并利用所述左移位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;13、利用所述左移位数、所述第三目标定点值、所述第一查找表以及插值计算方法计算所述目标定点值的对数值;14、如果大于或等于所述第一预设区间的最大值,则计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的右移位数,并利用所述右移位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第四目标定点值;15、利用所述右移位数、所述第四目标定点值、所述第一查找表以及插值计算方法计算所述目标定点值的对数值。16、进一步的,所述第一预设区间为;其中,n取整数。17、进一步的,所述计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的左移位数的步骤包括:18、根据公式(1)计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的左移位数;19、shift1= n + q1+ 1 -8- log_table3[x2>>8];(1)20、其中,x2为第二目标定点值,shift1为将所述第二目标定点值变为所述第一预设区间之间的一个值所需的左移位数,log_table3为预设的第三查找表,第三查找表log_table3一共n+1个元素,每一个元素记录的是其位置值的最高位的1的位置,n等于所述第一阈值;其中,q1表示示输入数据的精度且预先设定。21、进一步的,所述计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的右移位数的步骤包括:22、获取所述第二目标定点值;23、将所述第二目标定点值右移 n+q1+1位,在所述第二目标定点值右移 n+q1+1位后,若在剩余的位数中,高32-(n+q1+1)-8位为0,则通过预设的第三查找表获取低8位数值对应的移位,将所述低8位数值对应的移位作为将所述第二目标定点值变为所述第一预设区间之间的一个值所需的右移位数;24、若在剩余的位数中,高32-(n+q1+1)-8位不为0,则右移8位,判断32-(n+q1+1)-(a+1)*8是否大于或等于8;a为右移了8位的次数;其中,若n+q1+1=8,所述将所述第二目标定点值右移 n+q1+1位不算入右移8位的次数;25、若小于8,直接通过所述第三查找表获取剩余数值对应的移位,作为第一移位位数;将第一移位位数加上a*8,得到将所述第二目标定点值变为所述第一预设区间之间的一个值所需的右移位数;26、若大于或等于8,继续右移8位,返回判断32-(n+q1+1)-(a+1)*8是否大于或等于8的步骤,直至32-(n+q1+1)-(a+1)*8小于8;其中,第三查找表log_table3一共n+1个元素,每一个元素记录的是其位置值的最高位的1的位置,n等于所述第一阈值。27、进一步的,所述利用所述第二目标定点值、预设的第一查找表以及插值计算方法计算所述目标定点值的对数值;其中,所述第一查找表中存储了所述第一预设区间内以预设第一数值为间隔的数值对应的对数值的步骤包括:28、基于所述第二目标定点值计算所述第二目标定点值的第一基底、第二基底和第三基底;29、基于所述第二目标定点值的第一基底、第二基底和第三基底计算所述第二目标定点值离其左边的数值的距离;30、基于所述第二目标定点值离其左边的数值的距离计算所述第二目标定点值离其右边的数值的距离;31、基于所述第二目标定点值的第一基底、第二基底和第三基底计算所述第二目标定点值在所述第一查找表中的位置;32、基于所述第二目标定点值离其左边的数值的距离、所述第二目标定点值离其右边的数值的距离、所述第二目标定点值在所述第一查找表中的位置,利用插值计算方法计算所述第二目标定点值的对数值;33、将所述第二目标定点值的对数值作为所述目标定点值的对数值。34、进一步的,所述利用所述左移位数、所述第三目标定点值、所述第一查找表以及插值计算方法计算所述目标定点值的对数值的步骤包括:35、基于所述第三目标定点值计算所述第三目标定点值的第一基底、第二基底和第三基底;36、基于所述第三目标定点值的第一基底、第二基底和第三基底计算所述第三目标定点值离其左边的数值的距离;37、基于所述第三目标定点值离其左边的数值的距离计算所述第三目标定点值离其右边的数值的距离;38、基于所述第三目标定点值的第一基底、第二基底和第三基底计算所述第三目标定点值在所述第一查找表中的位置;39、基于所述第三目标定点值离其左边的数值的距离、所述第三目标定点值离其右边的数值的距离、所述第三目标定点值在所述第一查找表中的位置,利用插值计算方法计算所述第三目标定点值的对数值;40、根据所述第三目标定点值的对数值、所述左移位数和所述q1计算所述目标定点值的对数值。41、进一步的,所述利用所述右移位数、所述第四目标定点值、所述第一查找表以及插值计算方法计算所述目标定点值的对数值的步骤包括:42、基于所述第四目标定点值计算所述第四目标定点值的第一基底、第二基底和第三基底;43、基于所述第四目标定点值的第一基底、第二基底和第三基底计算所述第四目标定点值离其左边的数值的距离;44、基于所述第四目标定点值离其左边的数值的距离计算所述第四目标定点值离其右边的数值的距离;45、基于所述第四目标定点值的第一基底、第二基底和第三基底计算所述第四目标定点值在所述第一查找表中的位置;46、基于所述第四目标定点值离其左边的数值的距离、所述第四目标定点值离其右边的数值的距离、所述第四目标定点值在所述第一查找表中的位置,利用插值计算方法计算所述第四目标定点值的对数值;47、根据所述第四目标定点值的对数值、所述右移位数和所述q1计算所述目标定点值的对数值。48、进一步的,所述第一阈值为。49、第二方面,本技术实施例提供一种语音识别加速装置,所述装置包括:50、获取模块,用于获取原始语音信号;51、语音识别模块,用于对所述原始语音信号进行语音识别,获得语音识别结果;其中,在语音识别过程中,采用如下单元计算目标定点值的对数值:52、第一获取单元,用于获取目标定点值;53、移动单元,用于将所述目标定点值移动到固定的q1,获得第二目标定点值;其中,q1表示输入数据的精度且预先设定;54、第一判断单元,用于判断所述第二目标定点值是否在第一预设区间内;55、第一计算单元,用于如果在所述第一预设区间内,则利用所述第二目标定点值、预设的第一查找表以及插值计算方法计算所述目标定点值的对数值;其中,所述第一查找表中存储了所述第一预设区间内以预设第一数值为间隔的数值对应的对数值;56、第二判断单元,用于如果不在所述第一预设区间内,则判断所述第二目标定点值是小于所述第一预设区间的最小值还是大于或等于所述第一预设区间的最大值;57、第三判断单元,用于如果小于所述第一预设区间的最小值,则判断所述第二目标定点值是否小于预设的第一阈值;58、第二获取单元,用于如果小于所述第一阈值,则通过预设的第二查找表获取所述目标定点值的对数值;其中,所述第二查找表中存储了所述第二预设区间内以预设第二数值为间隔的数值对应的对数值;其中,所述第二预设区间为[0,第一阈值);59、第二计算单元,用于如果不小于所述第一阈值,则计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的左移位数,并利用所述左移位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;60、第三计算单元,用于利用所述左移位数、所述第三目标定点值、所述第一查找表以及插值计算方法计算所述目标定点值的对数值;61、第四计算单元,用于如果大于或等于所述第一预设区间的最大值,则计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的右移位数,并利用所述右移位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第四目标定点值;62、第五计算单元,用于利用所述右移位数、所述第四目标定点值、所述第一查找表以及插值计算方法计算所述目标定点值的对数值。63、第三方面,本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述的语音识别加速方法的步骤。64、本技术通过获取原始语音信号;对所述原始语音信号进行语音识别,获得语音识别结果,并在语音识别过程中,获取目标定点值;将所述目标定点值移动到固定的q1,获得第二目标定点值;对于第二目标定点值在第一预设区间内的情况,通过预先构建第一查找表,并通过第一查找表进行查值,并利用查找的值进行插值计算,无需像现有技术采用泰勒公式需要实时计算很多个数,即无需花费很多时间去计算,从而解决了现有软件实现方式(如采用泰勒公式计算对数)时间消耗较大,导致低算力芯片的设备无法实时识别出语音的技术问题,能够快速计算出定点的对数,大大加速定点的推理速度,从而加速语音识别的速度。另外,对于不在第一预设区间的数值,且小于第一预设区间的最小值且小于预设的第一阈值的情况,通过预先构建第二查找表,通过第二查找表查找所述第二目标定点值的对数值,查找到的所述第二目标定点值的对数值作为所述目标定点值的对数值,无需像现有技术采用泰勒公式需要实时计算很多个数,即无需花费很多时间去计算,从而解决了现有软件实现方式(如采用泰勒公式计算对数)时间消耗较大,导致低算力芯片的设备无法实时识别出语音的技术问题,能够快速计算出定点的对数,大大加速定点的推理速度,从而加速语音识别的速度。对于不在第一预设区间的数值,且小于第一预设区间的最小值且大于或等于预设的第一阈值的情况,计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的左移位数,并将利用计算得到的左移位数对第二目标定点值进行移位,这样,可以将第二目标定点值移动到第一预设区间,然后移动到这个第一预设区间后,便可以利用所述第一查找表以及插值计算方法计算所述目标定点值的对数值,如前所述,无需像现有技术采用泰勒公式需要实时计算很多个数,即无需花费很多时间去计算,从而解决了现有软件实现方式(如采用泰勒公式计算对数)时间消耗较大,导致低算力芯片的设备无法实时识别出语音的技术问题,能够快速计算出定点的对数,大大加速定点的推理速度,从而加速语音识别的速度。对于第二目标定点值不在所述第一预设区间,且第二目标定点值大于或等于所述第一预设区间的最大值时,计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的右移位数,并将利用计算得到的右移位数对第二目标定点值进行移位,这样,可以将第二目标定点值移动到第一预设区间,然后移动到这个第一预设区间后,便可以利用所述第一查找表以及插值计算方法计算所述目标定点值的对数值,如前所述,无需像现有技术采用泰勒公式需要实时计算很多个数,即无需花费很多时间去计算,从而解决了现有软件实现方式(如采用泰勒公式计算对数)时间消耗较大,导致低算力芯片的设备无法实时识别出语音的技术问题,能够快速计算出定点的对数,大大加速定点的推理速度,从而加速语音识别的速度。当前第1页12当前第1页12
本文地址:https://www.jishuxx.com/zhuanli/20240618/22576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表