CN117746838B - 语音特征提取加速方法、装置、设备和存储介质 - Google Patents
语音特征提取加速方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN117746838B CN117746838B CN202410182293.3A CN202410182293A CN117746838B CN 117746838 B CN117746838 B CN 117746838B CN 202410182293 A CN202410182293 A CN 202410182293A CN 117746838 B CN117746838 B CN 117746838B
- Authority
- CN
- China
- Prior art keywords
- value
- fixed point
- point value
- target fixed
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000000605 extraction Methods 0.000 title claims abstract description 44
- 230000001133 acceleration Effects 0.000 title claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims description 37
- 101100194363 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res2 gene Proteins 0.000 claims description 21
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 claims description 20
- 101100194362 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res1 gene Proteins 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000001228 spectrum Methods 0.000 description 10
- 238000009825 accumulation Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000013707 sensory perception of sound Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
本发明属于语音识别技术领域,公开了语音特征提取加速方法、装置、设备和存储介质,方法包括:获取原始语音信号;对原始语音信号进行语音特征提取,获得语音特征;在语音特征提取过程中,通过如下步骤计算目标定点值的开方值;将目标定点值移动到固定的q0,得到第二目标定点值x2;预先构建第一查找表,第一查找表存储的是第一预设区间的数值的开方值;若x2在第一预设区间内,则基于第一查找表获取目标定点值的开方值,若x2在第二预设区间内,对x2进行移位,移动到第一预设区间,并结合查表和截断计算目标定点值的开方值;若x2大于第二预设区间的最大值,则采用牛顿迭代法计算目标定点值的开方值。本申请可以加速语音特征提取的速度以及保证精度。
Description
技术领域
本申请涉及语音识别技术领域,特别是涉及到一种语音特征提取加速方法、装置、设备和存储介质。
背景技术
在语音识别领域,一般会对输入的语音进行特征提取,然后进行后续的识别、降噪等。要将语音算法部署到实际产品中,特征提取算法的快慢直接影响到能否实时处理,特别是低算力芯片。在语音特征提取算法中,有一步是不可或缺的,就是开方计算,是在计算功率谱中的必要计算。在智能语音设备中,受到资源和实时计算的限制,一般推理计算采用定点方式。因此,如何加速低算力芯片定点开方的推理速度并且保证精度,从而加速语音特征提取的速度并且保证精度,进而使得语音实时识别能够在低算力芯片上实现且保证精度是亟需解决的技术问题。
发明内容
本发明的主要目的为提供一种语音特征提取加速方法、装置设备和存储介质,旨在加速低算力芯片语音特征提取的速度并且保证精度。
为了实现上述发明目的,本发明第一方面提出一种语音特征提取加速方法,所述方法包括:
获取原始语音信号;
对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下步骤计算目标定点值的开方值;
获取目标定点值;
将所述目标定点值移动到固定的q0,得到第二目标定点值;其中,q0表示目标精度且预先设定;
若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值;
若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值;
基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值;
若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值。
进一步的,所述若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值的步骤包括:
若所述第二目标定点值在第一预设区间内,则获取所述目标定点值移动到固定的q0导致的截断,作为第二截断;
如果第二截断为0,则直接从所述第一查找表获取所述第二目标定点值的开方值;
将所述第二目标定点值的开方值作为所述目标定点值的开方值;
如果第二截断不为0,则结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值。
进一步的,所述获取所述目标定点值移动到固定的q0导致的截断,作为第二截断的步骤包括:
根据公式mask2 = (1<<(q_in -q0)) - 1 和公式res 2= x&mask2计算所述目标定点值移动到固定的q0导致的截断;其中,q_in表示所述目标定点值的数值精度,mask2为第二掩膜,x为目标定点值,res2为第二截断;
所述结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值的步骤包括:
根据公式计算所述目标定点值的开方值;
y=(sqrt_table[x2](mask2 + 1 - res2) + sqrt_table[x2+ 1]/>res2)>>(q_in - q0);
其中,sqrt_table是第一查找表,x2为第二目标定点值,y表示所述目标定点值的开方值。
进一步的,所述计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数的步骤包括:
根据公式 shift 1= (pos -9 )>>1以及公式shift2=2shift1计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数;其中,x2表示第二目标定点值;pos表示第二目标定点值最高位的1的位置,shift 1表示将所述第二目标定点值移动到所述第一预设区间所需右移的位数的一半,shift2表示将所述第二目标定点值移动到所述第一预设区间所需右移的位数;
所述利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值的步骤包括;
根据公式x3= x2>>(shift12)获得所述第三目标定点值;其中,x3表示第三目标定点值;x2 为第二目标定点值;
所述计算对所述第二目标定点值进行移位导致的截断,作为第一截断的步骤包括:
根据公式res1 = x2&mask1计算对所述第二目标定点值进行移位导致的截断;其中,res1表示第一截断;其中,mask1 = (1<<(shift12)) - 1;mask1表示第一掩膜;
所述基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值的步骤包括:
根据公式shift3=14+shift1-output_q计算最终需要移动的位数;其中,shift1是所需右移的位数的一半,output_q是输出存储的精度值;
若所述shift3小于0,则根据公式:
y = (sqrt_table[x3](mask1+ 1 - res1) + sqrt_table[x3 + 1]/>res1)<<(-shift3 )计算所述目标定点值的开方值;其中,y表示所述目标定点值的开方值,sqrt_table表示第一查找表;
若所述shift3大于或等于0,则根据公式:
y = (sqrt_table[x3](mask1+ 1 - res1) + sqrt_table[x3 + 1]/>res1)>>shift3 计算所述目标定点值的开方值。
进一步的,所述若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值的步骤包括:
计算所述第二目标定点值最高位的1的位置;
若所述第二目标定点值最高位的1的位置是偶数,则将所述第二目标定点值最高位的1移动到第30位,获得第四目标定点值,并将预设的第一值作为初始值;
若所述第二目标定点值最高位的1的位置是奇数,则将所述第二目标定点值最高位的1移动到第31位,获得第四目标定点值,并将预设的第二值作为初始值;
基于所述第四目标定点值以及所述初始值进行牛顿迭代法进行有限次迭代,获得所述第四目标定点值的开方值;
基于所述q0、所述第二目标定点值最高位的1的位置、所述第四目标定点值的开方值计算所述目标定点值的开方值。
进一步的,所述基于所述q0、所述第二目标定点值最高位的1的位置、所述第四目标定点值的开方值计算所述目标定点值的开方值的步骤包括:
根据公式y = (xn1)>>right_shift_bits计算所述目标定点值的开方值;其中,right_shift_bits = (r - pos+ q0)>>1;其中,当第二目标定点值最高位的1的位置是偶数时,r=30,当第二目标定点值最高位的1的位置是奇数时,r=31;xn1为第四目标定点值,y为目标定点值的开方值,pos是第二目标定点值最高位的1的位置,right_shift_bits是需要移动的位数。
进一步的,所述计算所述第二目标定点值最高位的1的位置的步骤包括:
判断所述第二目标定点值是否大于2^16;
若大于2^16,则右移16位,然后判断是否大于2^8;
若大于或等于2^8,则再右移8位,通过第二查找表计算出移位后剩余数值最高位1的位置,然后加上16,得到第二目标定点值最高位1的位置;
如果小于2^8,通过第二查找表计算出移位后剩余数值最高位1的位置,得到第二目标定点值最高位1的位置;
若小于2^16,则先判断第二目标定点值是否大于或等于2^8;
如果大于或等于2^8,则再右移动8位,通过第二查找表计算出移位后剩余数值最高位1的位置,然后加上8,得到第二目标定点值最高位1的位置;
如果小于2^8,则直接通过第二查找表获取所述第二目标定点值的最高位的1的位置;其中,所述第二查找表存储的是以1为间隔,0~256中每个数值对应的最高位1的位置。
第二方面,本申请实施例提供一种语音特征提取加速装置,所述装置包括:
获取模块,用于获取原始语音信号;
语音特征提取模块,用于对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下单元计算目标定点值的开方值;
获取单元,用于获取目标定点值;
移动单元,用于将所述目标定点值移动到固定的q0,得到第二目标定点值;其中,q0表示目标精度且预先设定;
第一获取单元,用于若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值;
第一计算单元,用于若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值;
第二计算单元,用于基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值;
第三计算单元,用于若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值。
第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述的语音特征提取加速方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的语音特征提取加速方法的步骤。
本申请实施例提供的语音特征提取加速方法,包括:获取原始语音信号;
对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下步骤计算目标定点值的开方值;获取目标定点值;将所述目标定点值移动到固定的q0,得到第二目标定点值;其中,q0表示目标精度且预先设定;若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值;若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值;基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值;若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值。本申请实施例通过分情况处理,减少了移位引起的误差累加,提升了计算的精度1~2个数量级别,从而提升了语音特征的提取精度,进而提升了语音识别的精度。本申请考虑了移位截断导致的误差,提升了精度。另外,开方运算在特征计算中数值范围可控,通过表格的设定可将大部分数值控制在表格范围及很少次移动计算获取,大幅提升了计算速度,从而提升了语音特征提取的速度,进而提升了语音识别的速度。另外,对大的值也可进行处理,通过牛顿迭代法既可以保证精度、速度也大幅提升,从而大幅提升语音特征提取的精度,进而提升了语音识别的精度。
附图说明
图1为本发明一实施例提供的语音特征提取加速方法的流程示意图;
图2为本发明一实施例提供的语音特征提取加速装置的结构示意图;
图3为本发明一实施例提供的计算机设备的结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“上述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件、模块、模块和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、模块、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一模块和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
浮点和定点转换关系:定点 = int(浮点2^q);浮点 = 定点/2^q;其中,q表示数值精度,int 表示取整操作。本发明下面实施例所提及的q值,即 q_in、q0等表示不同的数值精度。
如图1所示,本申请实施例提供一种语音特征提取加速方法,所述方法包括:
S1、获取原始语音信号。
在步骤S1中,所述原始语音信号可以是麦克风采集到的语音信号,也可以是其他设备发送的语音信号。
S2、对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下步骤计算目标定点值的开方值。
在步骤S2中,具体地,语音特征提取流程:
预处理:对原始语音信号进行预处理,包括去除静音段、去噪声等。
分帧:将预处理后的语音信号分成短时帧,通常每帧持续时间为20-30毫秒。常用的分帧方法是使用固定长度的窗函数(如汉明窗)进行加窗。
加窗:对每一帧的语音信号应用窗函数,以减少频谱泄漏效应。常用的窗函数有汉明窗、汉宁窗等。
傅里叶变换:对加窗后的语音帧进行快速傅里叶变换(FFT),将时域信号转换为频域信号。
功率谱计算:对每一帧的频域信号,计算其功率谱。功率谱 = sqrt(Re^2 + Im^2)。Re是频谱的实数,Im是频谱的虚数,sqrt表示开平方根的运算。
梅尔滤波器组:将功率谱映射到梅尔频率刻度上,使用一组梅尔滤波器对功率谱进行滤波。梅尔滤波器通常是一组三角形滤波器,用于模拟人耳对声音频率的感知。
对数压缩:对滤波后的能量值进行对数压缩,获得fbank特征。fbank特征是一种语音特征。
进一步的,还可以对对数压缩后的能量值进行离散余弦变换,得到MFCC特征。MFCC特征也是一种语音特征。
S20、获取目标定点值。
在步骤S20中,根据上述描述可知,功率谱计算式语音特征提取必不可少计算,在计算功率谱时,目标定点值就是频谱的频率值。开方值就是功率值。
S21、将所述目标定点值移动到固定的q0,得到第二目标定点值。
为归一化操作,统一移到固定的q(精度),将目标定点值x,移到固定的q0, 比如q0=8。若目标定点值的q值 q_in>q0 ,右移q_in -q0 位,即 x2= x>>(q_in -q0);若 q_in<q0,左移q0 -q_in位,即 x2 = x<<(q0 -q_in)。
S22、若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值。
在步骤S22中,预先构建第一查找表,第一查找表存储的是第一预设区间的开方值,即存储的是第一预设区间的值的开方值,比如,第一查找表存储的是用q0表示的浮点范围的开方值,比如0~4(这里包括0和4)的浮点值,其q0=8的定点范围是 0~42^8=1024,即第一查找表中存储1025个值的开方值,即第一预设区间为[0,1024],存储的值(即存储的开方值)也是定点表示,用q_save = 14表示 ,举例说明如下比如sqrt(2) =1.414,sqrt表示开方,其定点值即为 round(1.414/>2^14) = 23170,此处选择q_save =14,因为可以用u16进行存储(2个字节存储表值,节省空间)。
S23、若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值。
S24、基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值。
在步骤S23-S24中,第二预设区间,比如,浮点4~4096范围的值(不包括4和4096),其q0=8的定点范围是 42^8~40962^8,即此时第二预设区间为(4/>2^8,40962^8)。对于第二预设区间的值,通过移位后结合查表,通过查表,减少计算,从而可以快速计算出目标定点值的开方值。另外,由于右移会导致右侧数值的截断,而本申请考虑了移位截断导致的误差,提升了精度。
S25、若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值。
在步骤S25中,对于更大的值,即大于所述第二预设区间的最大值,比如,大于或等于409628,如果使用通过移位到第一查找表范围(相当于第一预设区间),然后乘以移位//2计算,会导致误差成倍的累加,精度不高,而采用牛顿迭代可以保证精度还可以快速计算出开方值。
本申请实施例通过分情况处理,减少了移位引起的误差累加,提升了计算的精度1~2个数量级别,从而提升了语音特征的提取精度,进而提升了语音识别的精度。本申请考虑了移位截断导致的误差,提升了精度。另外,开方运算在特征计算中数值范围可控,通过表格的设定可将大部分数值控制在表格范围及很少次移动计算获取,大幅提升了计算速度,从而提升了语音特征提取的速度,进而提升了语音识别的速度。另外,对大的值也可进行处理,通过牛顿迭代法既可以保证精度、速度也大幅提升,从而大幅提升语音特征提取的精度,进而提升了语音识别的精度。
需要说明的是,本申请方法应用在低算力芯片可以减少计算量,加速语音特征提取速度且保证精度,进而使得语音实时识别能够在低算力芯片上实现且保证精度。
在一实施例中,所述若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值的步骤包括:
S221、若所述第二目标定点值在第一预设区间内,则获取所述目标定点值移动到固定的q0导致的截断,作为第二截断;
S222、如果第二截断为0,则直接从所述第一查找表获取所述第二目标定点值的开方值;
S223、将所述第二目标定点值的开方值作为所述目标定点值的开方值;
S224、如果第二截断不为0,则结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值。
在本申请实施例中,当第二截断为0时,通过直接查第一查找表获取所述第二目标定点值的开方值,将所述第二目标定点值的开方值作为所述目标定点值的开方值,由于无需计算,因此可以快速获取目标定点值的开方值,从而提升语音特征提取的速度,进而提升语音识别的速度。当第二截断不为0时,结合第二截断计算所述目标定点值的开方值可以减少截断导致的误差,从而提升了精度,从而提升语音特征提取的精度,进而提升语音识别的精度。另外,通过结合第一查找表计算所述第二目标定点值的开方值,减少了计算量,因此提升了开方的计算速度,从而提升了语音特征提取的速度,进而提升语音识别的速度。
在一个实施例中,所述获取所述目标定点值移动到固定的q0导致的截断,作为第二截断的步骤包括:
根据公式mask2 = (1<<(q_in -q0)) - 1 和公式res 2= x&mask2计算所述目标定点值移动到固定的q0导致的截断;其中,q_in表示所述目标定点值的数值精度,mask2为第二掩膜,x为目标定点值,res2为第二截断;
所述结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值的步骤包括:
根据公式计算所述目标定点值的开方值;
y=(sqrt_table[x2](mask2 + 1 - res2) + sqrt_table[x2+ 1]/>res2)>>(q_in - q0);
其中,sqrt_table是第一查找表,x2为第二目标定点值,y表示所述目标定点值的开方值。
在本申请实施例中,公式y=(sqrt_table[x2](mask2 + 1 - res2) + sqrt_table[x2+ 1]/>res2)>>(q_in - q0)是一个线性插值公式,通过线性插值可以提升精度,从而提升语音特征提取的精度,进而提升语音识别的精度。
在一实施例中,所述计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数的步骤包括:
根据公式 shift 1= (pos -9 )>>1以及公式shift2=2shift1计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数;其中,x2表示第二目标定点值;pos表示第二目标定点值最高位的1的位置,shift 1表示将所述第二目标定点值移动到所述第一预设区间所需右移的位数的一半,shift2表示将所述第二目标定点值移动到所述第一预设区间所需右移的位数;
所述利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值的步骤包括;
根据公式x3= x2>>(shift12)获得所述第三目标定点值;其中,x3表示第三目标定点值;x2 为第二目标定点值;
所述计算对所述第二目标定点值进行移位导致的截断,作为第一截断的步骤包括:
根据公式res1 = x2&mask1计算对所述第二目标定点值进行移位导致的截断;其中,res1表示第一截断;其中,mask1 = (1<<(shift12)) - 1;mask1表示第一掩膜;
所述基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值的步骤包括:
根据公式shift3=14+shift1-output_q计算最终需要移动的位数;其中,shift1是所需右移的位数的一半,output_q是输出存储的精度值;
若所述shift3小于0,则根据公式:
y = (sqrt_table[x3](mask1+ 1 - res1) + sqrt_table[x3 + 1]/>res1)<<(-shift3 )计算所述目标定点值的开方值;其中,y表示所述目标定点值的开方值,sqrt_table表示第一查找表;
若所述shift3大于或等于0,则根据公式:
y = (sqrt_table[x3](mask1+ 1 - res1) + sqrt_table[x3 + 1]/>res1)>>shift3 计算所述目标定点值的开方值。
在本申请实施例中,output_q是输出存储的精度值。需要说明的是,输出结果默认按照表的精度进行存储,如果输出存储的精度和q_save 不一致,那么通过移位可以获得输出存储的精度值。
在一实施例中,所述若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值的步骤包括:
计算所述第二目标定点值最高位的1的位置;
若所述第二目标定点值最高位的1的位置是偶数,则将所述第二目标定点值最高位的1移动到第30位,获得第四目标定点值,并将预设的第一值作为初始值;
若所述第二目标定点值最高位的1的位置是奇数,则将所述第二目标定点值最高位的1移动到第31位,获得第四目标定点值,并将预设的第二值作为初始值;
基于所述第四目标定点值以及所述初始值进行牛顿迭代法进行有限次迭代,获得所述第四目标定点值的开方值;
基于所述q0、所述第二目标定点值最高位的1的位置、所述第四目标定点值的开方值计算所述目标定点值的开方值。
在本申请实施例中,采用牛顿迭代法计算开方值,计算得到的开方值的精度受到初始值的影响,通过合理选择初始值,可以提高开方值的精度。具体地,通过将所述第一值选为2^15,将所述第二值选为49152获得高精度的开方值,从而提高语音特征提取的精度,进而提升语音识别的准确性。
需要说明的是,本申请所述的最高位均指的是二进制形式下的最高位,移位等都是针对二进制说的(定点值均是以二进制进行存储,为了方便,有时会以十进制进行解释说明),假设第二目标定点值的十进制是2的20次方,那么它的二进制就是1 0000 0000 00000000 0000 那么它的最高位1的位置就是21。此外,上述的30、31是1的目标最高位,记为r。
在一实施例中,所述计算所述第二目标定点值最高位的1的位置的步骤包括:
判断所述第二目标定点值是否大于2^16;
若大于2^16,则将所述第二目标定点值右移16位,然后判断是否大于2^8;
若大于或等于2^8,则再右移8位,通过第二查找表计算出移位后剩余数值最高位1的位置,然后加上16,得到第二目标定点值最高位1的位置;
如果小于2^8,通过第二查找表计算出移位后剩余数值最高位1的位置,得到第二目标定点值最高位1的位置;
若小于2^16,则先判断第二目标定点值是否大于或等于2^8;
如果大于或等于2^8,则将所述第二目标定点值右移动8位,通过第二查找表计算出移位后剩余数值最高位1的位置,然后加上8,得到第二目标定点值最高位1的位置;
如果小于2^8,则直接通过第二查找表获取所述第二目标定点值的最高位的1的位置;其中,所述第二查找表存储的是以1为间隔,0~256中每个数值对应的最高位1的位置。
在本申请实施例中,若第二目标定点值是2^15(其对应的二进制是1000 00000000 0000),那么,将第二目标定点值右移8位,变成2^7(其对应的二进制是1000 0000),2^7最高位1的位置是8,8+8=16,即可得第二目标定点值最高位1的位置是16。所述第二查找表存储的是以1为间隔,0~256中每个数值对应的最高位1的位置,即第二查找表一共存储257个值,第二查找表log_table2[257] 形如下,{0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4,4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,...,9} 。其中,该第二查找表中每一个值记录的是其位置值的最高位的1的位置。应当理解的是,这里位置值的最高位的1的位置指的其位置值的二进制的最高位的1的位置,比如,0的二进制是0 ,其没有1,因此,0的最高位的1的位置为0,1的二进制是1,其最高位的1的位置是1,2的二进制是10,其最高位的1的位置是2,如此类推,256的二进制是1 0000 0000,其最高位的1的位置是9。
在一实施例中,所述基于所述q0、所述第二目标定点值最高位的1的位置、所述第四目标定点值的开方值计算所述目标定点值的开方值的步骤包括:
根据公式y= (xn1)>>right_shift_bits计算所述目标定点值的开方值;其中,right_shift_bits = (r - pos + q0)>>1;其中,当第二目标定点值最高位的1的位置是偶数时,r=30,当第二目标定点值最高位的1的位置是奇数时,r=31;xn1为第四目标定点值,y为目标定点值的开方值,pos是第二目标定点值最高位的1的位置,right_shift_bits是需要移动的位数。
在本申请实施例中,通过牛顿迭代法计算出第四目标定点值的开方值后,还需要通过移位计算出所述目标定点值的开方值,具体地,基于第二目标定点值最高位的1的位置pos、1的目标最高位r、第二目标定点值的精度q0计算出需要移动的位数right_shift_bits,然后将第四目标定点值的开方值右移right_shift_bits,便可得到所述目标定点值的开方值。
如图2所示,本申请一实施例还提供一种语音特征提取加速装置,所述装置包括:
获取模块1,用于获取原始语音信号;
语音特征提取模块2,用于对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下单元计算目标定点值的开方值;
获取单元21,用于获取目标定点值;
移动单元22,用于将所述目标定点值移动到固定的q0,得到第二目标定点值;其中,q0表示目标精度且预先设定;
第一获取单元23,用于若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值;
第一计算单元24,用于若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值;
第二计算单元25,用于基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值;
第三计算单元26,用于若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值。
所述若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值的步骤包括:
若所述第二目标定点值在第一预设区间内,则获取所述目标定点值移动到固定的q0导致的截断,作为第二截断;
如果第二截断为0,则直接从所述第一查找表获取所述第二目标定点值的开方值;
将所述第二目标定点值的开方值作为所述目标定点值的开方值;
如果第二截断不为0,则结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值。
在一实施例中,所述获取所述目标定点值移动到固定的q0导致的截断,作为第二截断包括:
根据公式mask2 = (1<<(q_in -q0)) - 1 和公式res 2= x&mask2计算所述目标定点值移动到固定的q0导致的截断;其中,q_in表示所述目标定点值的数值精度,mask2为第二掩膜,x为目标定点值,res2为第二截断;
所述结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值的步骤包括:
根据公式计算所述目标定点值的开方值;
y=(sqrt_table[x2](mask2 + 1 - res2) + sqrt_table[x2+ 1]/>res2)>>(q_in - q0);
其中,sqrt_table是第一查找表,x2为第二目标定点值,y表示所述目标定点值的开方值。
在一实施例中,所述计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数得包括:
根据公式 shift 1= (pos -9 )>>1以及公式shift2=2shift1计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数;其中,x2表示第二目标定点值;pos表示第二目标定点值最高位的1的位置,shift 1表示将所述第二目标定点值移动到所述第一预设区间所需右移的位数的一半,shift2表示将所述第二目标定点值移动到所述第一预设区间所需右移的位数;
所述利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值的步骤包括;
根据公式x3= x2>>(shift12)获得所述第三目标定点值;其中,x3表示第三目标定点值;x2 为第二目标定点值;
所述计算对所述第二目标定点值进行移位导致的截断,作为第一截断的步骤包括:
根据公式res1 = x2&mask1计算对所述第二目标定点值进行移位导致的截断;其中,res1表示第一截断;其中,mask1 = (1<<(shift12)) - 1;mask1表示第一掩膜;
所述基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值的步骤包括:
根据公式shift3=14+shift1-output_q计算最终需要移动的位数;其中,shift1是所需右移的位数的一半,output_q是输出存储的精度值;
若所述shift3小于0,则根据公式:
y = (sqrt_table[x3](mask1+ 1 - res1) + sqrt_table[x3 + 1]/>res1)<<(-shift3 )计算所述目标定点值的开方值;其中,y表示所述目标定点值的开方值,sqrt_table表示第一查找表;
若所述shift3大于或等于0,则根据公式:
y = (sqrt_table[x3](mask1+ 1 - res1) + sqrt_table[x3 + 1]/>res1)>>shift3 计算所述目标定点值的开方值。
在本申请实施例中,需要说明的是,output_q是输出存储的精度值,如果输出存储的精度和q_save 不一致,那么通过移位可以获得输出存储的精度值。
在一实施例中,所述若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值包括:
计算所述第二目标定点值最高位的1的位置;
若所述第二目标定点值最高位的1的位置是偶数,则将所述第二目标定点值最高位的1移动到第30位,获得第四目标定点值,并将预设的第一值作为初始值;
若所述第二目标定点值最高位的1的位置是奇数,则将所述第二目标定点值最高位的1移动到第31位,获得第四目标定点值,并将预设的第二值作为初始值;
基于所述第四目标定点值以及所述初始值进行牛顿迭代法进行有限次迭代,获得所述第四目标定点值的开方值;
基于所述q0、所述第二目标定点值最高位的1的位置、所述第四目标定点值的开方值计算所述目标定点值的开方值。
在一实施例中,所述基于所述q0、所述第二目标定点值最高位的1的位置、所述第四目标定点值的开方值计算所述目标定点值的开方值包括:
根据公式y = (xn1)>>right_shift_bits计算所述目标定点值的开方值;其中,right_shift_bits = (r - pos+ q0)>>1;其中,当第二目标定点值最高位的1的位置是偶数时,r=30,当第二目标定点值最高位的1的位置是奇数时,r=31;xn1为第四目标定点值,y为目标定点值的开方值,pos是第二目标定点值最高位的1的位置,right_shift_bits是需要移动的位数。
在一实施例中,所述计算所述第二目标定点值最高位的1的位置包括:
判断所述第二目标定点值是否大于2^16;
若大于2^16,则右移16位,然后判断是否大于2^8;
若大于或等于2^8,则再右移8位,通过第二查找表计算出移位后剩余数值最高位1的位置,然后加上16,得到第二目标定点值最高位1的位置;
如果小于2^8,通过第二查找表计算出移位后剩余数值最高位1的位置,得到第二目标定点值最高位1的位置;
若小于2^16,则先判断第二目标定点值是否大于或等于2^8;
如果大于或等于2^8,则再右移动8位,通过第二查找表计算出移位后剩余数值最高位1的位置,然后加上8,得到第二目标定点值最高位1的位置;
如果小于2^8,则直接通过第二查找表获取所述第二目标定点值的最高位的1的位置;其中,所述第二查找表存储的是以1为间隔,0~256中每个数值对应的最高位1的位置。
参照图3,本发明实施例还提供一种计算机设备,该计算机设备的内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储有语音特征提取加速方法的数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。进一步地,上述计算机设备还可以设置有输入装置和显示屏等。上述计算机程序被处理器执行时以实现语音特征提取加速方法,包括如下步骤:获取原始语音信号;对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下步骤计算目标定点值的开方值;获取目标定点值;将所述目标定点值移动到固定的q0,得到第二目标定点值;其中,q0表示目标精度且预先设定;若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值;若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值;基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值;若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现语音特征提取加速方法,包括如下步骤:获取原始语音信号;对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下步骤计算目标定点值的开方值;获取目标定点值;将所述目标定点值移动到固定的q0,得到第二目标定点值;其中,q0表示目标精度且预先设定;若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值;若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值;基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值;若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(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)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种语音特征提取加速方法,其特征在于,所述方法包括:
获取原始语音信号;
对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下步骤计算目标定点值的开方值;
获取目标定点值;
将所述目标定点值移动到固定的q0,得到第二目标定点值;其中,q0表示目标精度且预先设定;
若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值;
若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值;
基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值;
若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值;
所述若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值的步骤包括:
若所述第二目标定点值在第一预设区间内,则获取所述目标定点值移动到固定的q0导致的截断,作为第二截断;
如果第二截断为0,则直接从所述第一查找表获取所述第二目标定点值的开方值;
将所述第二目标定点值的开方值作为所述目标定点值的开方值;
如果第二截断不为0,则结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值;
所述获取所述目标定点值移动到固定的q0导致的截断,作为第二截断的步骤包括:
根据公式mask2 = (1 <<(q_in -q0)) - 1 和公式res 2= x &mask2计算所述目标定点值移动到固定的q0导致的截断;其中,q_in表示所述目标定点值的数值精度,mask2为第二掩膜,x为目标定点值,res2为第二截断;
所述结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值的步骤包括:
根据公式计算所述目标定点值的开方值;
y=(sqrt_table[x2] (mask2 + 1 - res2) + sqrt_table[x2+ 1] /> res2)>>(q_in - q0);
其中,sqrt_table是第一查找表,x2为第二目标定点值,y表示所述目标定点值的开方值。
2.根据权利要求1所述的语音特征提取加速方法,其特征在于,所述计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数的步骤包括:
根据公式 shift 1= (pos -9 )>>1以及公式shift2=2shift1计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数;其中,x2表示第二目标定点值;pos表示第二目标定点值最高位的1的位置,shift 1表示将所述第二目标定点值移动到所述第一预设区间所需右移的位数的一半,shift2表示将所述第二目标定点值移动到所述第一预设区间所需右移的位数;
所述利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值的步骤包括;
根据公式x3= x2 >>(shift12)获得所述第三目标定点值;其中,x3表示第三目标定点值;x2 为第二目标定点值;
所述计算对所述第二目标定点值进行移位导致的截断,作为第一截断的步骤包括:
根据公式res1 = x2 & mask1计算对所述第二目标定点值进行移位导致的截断;其中,res1表示第一截断;其中,mask1 = (1<<(shift12)) - 1;mask1表示第一掩膜;
所述基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值的步骤包括:
根据公式shift3=14+shift1-output_q计算最终需要移动的位数;其中,shift1是所需右移的位数的一半,output_q是输出存储的精度值;
若所述shift3小于0,则根据公式:
y = (sqrt_table[x3] (mask1+ 1 - res1) + sqrt_table[x3 + 1] />res1)<<(-shift3 )计算所述目标定点值的开方值;其中,y表示所述目标定点值的开方值,sqrt_table表示第一查找表;
若所述shift3大于或等于0,则根据公式:
y = (sqrt_table[x3] (mask1+ 1 - res1) + sqrt_table[x3 + 1] /> res1)>>shift3 计算所述目标定点值的开方值。
3.根据权利要求1所述的语音特征提取加速方法,其特征在于,所述若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值的步骤包括:
计算所述第二目标定点值最高位的1的位置;
若所述第二目标定点值最高位的1的位置是偶数,则将所述第二目标定点值最高位的1移动到第30位,获得第四目标定点值,并将预设的第一值作为初始值;
若所述第二目标定点值最高位的1的位置是奇数,则将所述第二目标定点值最高位的1移动到第31位,获得第四目标定点值,并将预设的第二值作为初始值;
基于所述第四目标定点值以及所述初始值进行牛顿迭代法进行有限次迭代,获得所述第四目标定点值的开方值;
基于所述q0、所述第二目标定点值最高位的1的位置、所述第四目标定点值的开方值计算所述目标定点值的开方值。
4.根据权利要求3所述的语音特征提取加速方法,其特征在于,所述基于所述q0、所述第二目标定点值最高位的1的位置、所述第四目标定点值的开方值计算所述目标定点值的开方值的步骤包括:
根据公式y = (xn1)>>right_shift_bits计算所述目标定点值的开方值;其中,right_shift_bits = (r - pos+ q0) >>1;其中,当第二目标定点值最高位的1的位置是偶数时,r=30,当第二目标定点值最高位的1的位置是奇数时,r=31;xn1为第四目标定点值,y为目标定点值的开方值,pos是第二目标定点值最高位的1的位置,right_shift_bits是需要移动的位数。
5.根据权利要求3所述的语音特征提取加速方法,其特征在于,所述计算所述第二目标定点值最高位的1的位置的步骤包括:
判断所述第二目标定点值是否大于2^16;
若大于2^16,则右移16位,然后判断是否大于2^8;
若大于或等于2^8,则再右移8位,通过第二查找表计算出移位后剩余数值最高位1的位置,然后加上16,得到第二目标定点值最高位1的位置;
如果小于2^8,通过第二查找表计算出移位后剩余数值最高位1的位置,得到第二目标定点值最高位1的位置;
若小于2^16,则先判断第二目标定点值是否大于或等于2^8;
如果大于或等于2^8,则再右移动8位,通过第二查找表计算出移位后剩余数值最高位1的位置,然后加上8,得到第二目标定点值最高位1的位置;
如果小于2^8,则直接通过第二查找表获取所述第二目标定点值的最高位的1的位置;其中,所述第二查找表存储的是以1为间隔,0~256中每个数值对应的最高位1的位置。
6.一种语音特征提取加速装置,其特征在于,所述装置包括:
获取模块,用于获取原始语音信号;
语音特征提取模块,用于对所述原始语音信号进行语音特征提取,获得语音特征;其中,在语音特征提取过程中,通过如下单元计算目标定点值的开方值;
获取单元,用于获取目标定点值;
移动单元,用于将所述目标定点值移动到固定的q0,得到第二目标定点值;其中,q0表示目标精度且预先设定;
第一获取单元,用于若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值;其中,所述第一查找表存储的是第一预设区间的开方值;
第一计算单元,用于若所述第二目标定点值在第二预设区间内,则计算将所述第二目标定点值移动到所述第一预设区间所需右移的位数,利用所述所需右移的位数对所述第二目标定点值进行移位,移动到所述第一预设区间,获得第三目标定点值;计算对所述第二目标定点值进行移位导致的截断,作为第一截断;其中,所述第二预设区间的最小值大于所述第一预设区间的最大值;
第二计算单元,用于基于所述第三目标定点值、所述所需右移的位数、所述第一截断、所述第一查找表以及插值计算方法计算所述目标定点值的开方值;
第三计算单元,用于若所述第二目标定点值大于所述第二预设区间的最大值,则基于所述第二目标定点值和牛顿迭代法计算所述目标定点值的开方值;
所述若所述第二目标定点值在第一预设区间内,则基于第一查找表获取所述目标定点值的开方值包括:
若所述第二目标定点值在第一预设区间内,则获取所述目标定点值移动到固定的q0导致的截断,作为第二截断;
如果第二截断为0,则直接从所述第一查找表获取所述第二目标定点值的开方值;
将所述第二目标定点值的开方值作为所述目标定点值的开方值;
如果第二截断不为0,则结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值;
所述获取所述目标定点值移动到固定的q0导致的截断,作为第二截断包括:
根据公式mask2 = (1 <<(q_in -q0)) - 1 和公式res 2= x &mask2计算所述目标定点值移动到固定的q0导致的截断;其中,q_in表示所述目标定点值的数值精度,mask2为第二掩膜,x为目标定点值,res2为第二截断;
所述结合所述第一查找表和所述第二截断进行插值处理,获得所述目标定点值的开方值包括:
根据公式计算所述目标定点值的开方值;
y=(sqrt_table[x2] (mask2 + 1 - res2) + sqrt_table[x2+ 1] /> res2)>>(q_in - q0);
其中,sqrt_table是第一查找表,x2为第二目标定点值,y表示所述目标定点值的开方值。
7.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的语音特征提取加速方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的语音特征提取加速方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410182293.3A CN117746838B (zh) | 2024-02-19 | 2024-02-19 | 语音特征提取加速方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410182293.3A CN117746838B (zh) | 2024-02-19 | 2024-02-19 | 语音特征提取加速方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117746838A CN117746838A (zh) | 2024-03-22 |
CN117746838B true CN117746838B (zh) | 2024-05-24 |
Family
ID=90277656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410182293.3A Active CN117746838B (zh) | 2024-02-19 | 2024-02-19 | 语音特征提取加速方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117746838B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1671090A (zh) * | 2004-03-19 | 2005-09-21 | 华为技术有限公司 | 一种计算平方根的装置 |
CN116466910A (zh) * | 2023-03-28 | 2023-07-21 | 上海思朗科技有限公司 | 一种基于浮点数的查表方法、装置、电子设备及存储介质 |
CN116543771A (zh) * | 2023-07-06 | 2023-08-04 | 深圳市友杰智新科技有限公司 | 语音识别方法、装置、存储介质及电子设备 |
CN116884398A (zh) * | 2023-09-06 | 2023-10-13 | 深圳市友杰智新科技有限公司 | 语音识别方法、装置、设备和介质 |
-
2024
- 2024-02-19 CN CN202410182293.3A patent/CN117746838B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1671090A (zh) * | 2004-03-19 | 2005-09-21 | 华为技术有限公司 | 一种计算平方根的装置 |
CN116466910A (zh) * | 2023-03-28 | 2023-07-21 | 上海思朗科技有限公司 | 一种基于浮点数的查表方法、装置、电子设备及存储介质 |
CN116543771A (zh) * | 2023-07-06 | 2023-08-04 | 深圳市友杰智新科技有限公司 | 语音识别方法、装置、存储介质及电子设备 |
CN116884398A (zh) * | 2023-09-06 | 2023-10-13 | 深圳市友杰智新科技有限公司 | 语音识别方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117746838A (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1210608A (zh) | 一种有噪语音参数增强的方法和装置 | |
CN108831500A (zh) | 语音增强方法、装置、计算机设备及存储介质 | |
CN111429932A (zh) | 语音降噪方法、装置、设备及介质 | |
CN111383646B (zh) | 一种语音信号变换方法、装置、设备和存储介质 | |
EP2002542A1 (en) | Method and device for low delay processing | |
US20200213794A1 (en) | Method and system for measuring total sound pressure level of noise, and computer readable storage medium | |
CN103903612A (zh) | 一种实时语音识别数字的方法 | |
CN111796790B (zh) | 一种音效调节方法、装置、可读存储介质及终端设备 | |
CN112565981B (zh) | 啸叫抑制方法、装置、助听器及存储介质 | |
CN106878575B (zh) | 残留回声的估计方法及装置 | |
CN111863008A (zh) | 一种音频降噪方法、装置及存储介质 | |
CN117746838B (zh) | 语音特征提取加速方法、装置、设备和存储介质 | |
CN1918629B (zh) | 音频编码中的短窗分组方法 | |
CN112259121B (zh) | 削波语音信号处理方法、系统、电子设备及存储介质 | |
CN114047499B (zh) | 传感器阵列信号幅度不一致时的信号归一化方法及设备 | |
CN105355206B (zh) | 一种声纹特征提取方法和电子设备 | |
CN112289311B (zh) | 语音唤醒方法、装置、电子设备及存储介质 | |
CN112397086A (zh) | 语音关键词检测方法、装置、终端设备和存储介质 | |
DE60303278T2 (de) | Vorrichtung zur Verbesserung der Spracherkennung | |
CN105513587B (zh) | 一种mfcc提取方法及装置 | |
CN116127693A (zh) | 一种波形设计方法、装置、电子设备和计算机存储介质 | |
CN113223511B (zh) | 用于语音识别的音频处理装置 | |
CN104202018B (zh) | 确定自适应滤波器的稳定因子的方法和装置 | |
CN112397087A (zh) | 共振峰包络估计、语音处理方法及装置、存储介质、终端 | |
CN102256201A (zh) | 用于助听器的自动环境识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Method, device, equipment, and storage medium for accelerating speech feature extraction Granted publication date: 20240524 Pledgee: Shenzhen Shunshui Incubation Management Co.,Ltd. Pledgor: SHENZHEN YOUJIE ZHIXIN TECHNOLOGY Co.,Ltd. Registration number: Y2024980029366 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |