System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及语音识别,特别是涉及到一种语音识别加速方法、装置和设备。
技术介绍
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、基于所述第三目标定点值计算所述第三目标定点值的第一基底、第二基底和第三基底;<本文档来自技高网...
【技术保护点】
1.一种语音识别加速方法,其特征在于,所述方法包括:
2.根据权利要求1所述的语音识别加速方法,其特征在于,所述第一预设区间为;其中,n取整数。
3.根据权利要求2所述的语音识别加速方法,其特征在于,所述计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的左移位数的步骤包括:
4.根据权利要求2所述的语音识别加速方法,其特征在于,所述计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的右移位数的步骤包括:
5.根据权利要求1所述的语音识别加速方法,其特征在于,所述利用所述第二目标定点值、预设的第一查找表以及插值计算方法计算所述目标定点值的对数值;其中,所述第一查找表中存储了所述第一预设区间内以预设第一数值为间隔的数值对应的对数值的步骤包括:
6.根据权利要求1所述的语音识别加速方法,其特征在于,所述利用所述左移位数、所述第三目标定点值、所述第一查找表以及插值计算方法计算所述目标定点值的对数值的步骤包括:
7.根据权利要求1所述的语音识别加速方法,其特征在于,所述利用所述右移位数、所述第四目
8.根据权利要求1所述的语音识别加速方法,其特征在于,所述第一阈值为。
9.一种语音识别加速装置,其特征在于,所述装置包括:
10.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8中任一项所述的语音识别加速方法的步骤。
...【技术特征摘要】
1.一种语音识别加速方法,其特征在于,所述方法包括:
2.根据权利要求1所述的语音识别加速方法,其特征在于,所述第一预设区间为;其中,n取整数。
3.根据权利要求2所述的语音识别加速方法,其特征在于,所述计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的左移位数的步骤包括:
4.根据权利要求2所述的语音识别加速方法,其特征在于,所述计算将所述第二目标定点值变为所述第一预设区间之间的一个值所需的右移位数的步骤包括:
5.根据权利要求1所述的语音识别加速方法,其特征在于,所述利用所述第二目标定点值、预设的第一查找表以及插值计算方法计算所述目标定点值的对数值;其中,所述第一查找表中存储了所述第一预设区间内以预设第一数值为间隔的数值对应的对数值...
【专利技术属性】
技术研发人员:李杰,
申请(专利权)人:深圳市友杰智新科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。