发明内容
本发明的目的是提供一种二值化神经网络语音唤醒方法及系统,能够在保证识别准确度的基础上,降低功耗。
为实现上述目的,本发明提供了如下方案:
一种二值化神经网络语音唤醒方法,包括:
获取待识别音频文件;并提取所述待识别音频文件的语音特征;所述语音特征包括:梅尔倒谱系数特征矩阵;
根据语音特征和语音唤醒模型,确定待识别音频文件的识别结果;所述语音唤醒模型通过训练后的二值化的深度可分离卷积神经网络进行建立;所述二值化的深度可分离卷积神经网络包括:第一卷积层、第二卷积层以及全连接层;所述语音唤醒模型具体的识别过程为:
利用所述第一卷积层对输入进行量化处理;所述第一卷积层的输入为待识别音频文件的语音特征;
根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出;所述网络层修正因子为网络层的参数权重未二值化前的32bit浮点数的按通道均值;
将所述第一卷积层的输出作为第二卷积层的输入;并将所述第一卷积层替换为第二卷积层,返回利用所述第一卷积层对输入进行量化处理的步骤,确定第二卷积层的输出,并重复上述步骤,直至输出识别结果。
可选地,利用所述第一卷积层对输入进行量化处理,具体包括:
其中,
为二值化后的参数,
x表示参数权重或参数激活值。
可选地,所述根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出,具体包括:
其中,
是卷积层的均值,
是卷积层的方差,
是卷积层的偏置,
是卷积层的权重,
为常数。
可选地,所述根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出,具体包括:
利用公式out = alpha(x* w + offset/alpha)确定第一卷积层的输出;
其中,out为输出,alpha为网络层修正因子,且为正数,w为二值量化参数权重。
一种二值化神经网络语音唤醒系统,包括:
语音特征确定模块,用于获取待识别音频文件;并提取所述待识别音频文件的语音特征;所述语音特征包括:梅尔倒谱系数特征矩阵;
识别结果确定模块,用于根据语音特征和语音唤醒模型,确定待识别音频文件的识别结果;所述语音唤醒模型通过训练后的二值化的深度可分离卷积神经网络进行建立;所述二值化的深度可分离卷积神经网络包括:第一卷积层、第二卷积层以及全连接层;所述语音唤醒模型具体的识别过程为:
利用所述第一卷积层对输入进行量化处理;所述第一卷积层的输入为待识别音频文件的语音特征;
根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出;所述网络层修正因子为网络层的参数权重未二值化前的32bit浮点数的按通道均值;
将所述第一卷积层的输出作为第二卷积层的输入;并将所述第一卷积层替换为第二卷积层,返回利用所述第一卷积层对输入进行量化处理的步骤,确定第二卷积层的输出,并重复上述步骤,直至输出识别结果。
可选地,所述识别结果确定模块具体包括:
其中,
为二值化后的参数,
x表示参数权重或参数激活值。
可选地,所述识别结果确定模块具体包括:
其中,
是卷积层的均值,
是卷积层的方差,
是卷积层的偏置,
是卷积层的权重,
k为常数。
可选地,所述识别结果确定模块具体包括:
利用公式out = alpha(x* w + offset/alpha)确定第一卷积层的输出;
其中,out为输出,alpha为网络层修正因子,且为正数,w为二值量化参数权重。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种二值化神经网络语音唤醒方法及系统,通过语音唤醒模型在识别过程中利用所述第一卷积层对输入进行量化处理,根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出,进而将第一卷积层的输出作为第二卷积层的输入,再进行量化以及与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并与偏置系数做加法;并不断重复。即在保证精度不损失的前提下,优化了网络结构,将卷积层的乘除法预算改为加法,合并网络修正因子与卷积层系数,进一步简化网络,使整个网络的部署不需要使用乘法器,大大减少了硬件部署难度以及计算量,降低功耗。并去卷积输入数据进行量化,将32位宽的权重转化为了1位的+1或-1,因此减少了数据的存储空间。相比于全精度神经网络内存大小减少了32倍,随之访问存储器也少了32倍;功耗和内存大小成正比,缩减了功耗,给移动端的部署提供了有效的可行性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种二值化神经网络语音唤醒方法及系统,能够在保证识别准确度的基础上,降低功耗。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明所提供的一种二值化神经网络语音唤醒方法流程示意图,如图1所示,本发明所提供的一种二值化神经网络语音唤醒方法,包括:
S101,获取待识别音频文件;并提取所述待识别音频文件的语音特征;所述语音特征包括:梅尔倒谱系数特征矩阵;
S102,根据语音特征和语音唤醒模型,确定待识别音频文件的识别结果;所述语音唤醒模型通过训练后的二值化的深度可分离卷积神经网络进行建立;所述二值化的深度可分离卷积神经网络包括:第一卷积层、第二卷积层以及全连接层;所述语音唤醒模型具体的识别过程为:
利用所述第一卷积层对输入进行量化处理;所述第一卷积层的输入为待识别音频文件的语音特征;
根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出;所述网络层修正因子为网络层的参数权重未二值化前的32bit浮点数的按通道均值;
将所述第一卷积层的输出作为第二卷积层的输入;并将所述第一卷积层替换为第二卷积层,返回利用所述第一卷积层对输入进行量化处理的步骤,确定第二卷积层的输出,并重复上述步骤,直至输出识别结果。
其中,第二卷积层为可分离卷积层。可分离卷积层可分为depthwise convolution层(DW)及pointwise convolution(PW)层。
利用所述第一卷积层对输入进行量化处理,具体包括:
利用公式
进行量化处理;即将各网络层参数即权重和偏置在数值上量化为+1或-1。由于网络参数为32位浮点值,因此二值化在硬件实现上理论上减少了32倍的存储空间。
其中,
为二值化后的参数,
x表示参数权重或参数激活值。
所述根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出,具体包括:
其中,
是卷积层的均值,
是卷积层的方差,
是卷积层的偏置,
是卷积层的权重,
k为常数。
本发明将卷积层转化为偏置系统,即将批量正则化中的乘除法进行简化,硬件实现只需要加offset,减少乘法器的使用,硬件实现降低功耗;
所述批量正则化的公式为:
;
为卷积层的均值,m为数据量,
为数据的方差,
为批量正则化后的参数,
为常数。
所述根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出,具体包括:
利用公式out = alpha(x* w + offset/alpha)确定第一卷积层的输出;
其中,out为输出,alpha为网络层修正因子,且为正数,w为二值量化参数权重。
数据在网络中数据形式表示为输入input通过第一层卷积层,第一层卷积首先使用上述sign函数将输入二值量化为+1或-1,量化数据与网络层二值量化参数权重w做卷积乘法,即1bit数据卷积乘1bit数据,接下来对每层通道数据乘网络层修正因子alpha,alpha为网络参数权重w未二值化前32bit浮点数的按通道均值。这样得到的最终数据经过卷积层后作为当前层输出,下一层网络的输入。下一层网络对输入数据做同样处理,即通过sign函数等。
如此一来网络可以进行进一步简化创新,第一层输出,即第二层输入:
out =x*w*alpha+offset,然而下一层网络层首先经过sign符号函数,大于0为1,小于0为-1,因此可以将上述公式提取alpha,即out=alpha(x*w+offset/alpha);因为alpha值都为正数,sign(out)即可以表示为:
硬件实现便可以进一步简化电路,只需要训练时的参数offset’,减少计算量,不需要使用乘法器。
图2为本发明所提供的一种二值化神经网络语音唤醒系统结构示意图,如图2所示,本发明所提供的一种二值化神经网络语音唤醒系统,包括:
语音特征确定模块201,用于获取待识别音频文件;并提取所述待识别音频文件的语音特征;所述语音特征包括:梅尔倒谱系数特征矩阵;
识别结果确定模块202,用于根据语音特征和语音唤醒模型,确定待识别音频文件的识别结果;所述语音唤醒模型通过训练后的二值化的深度可分离卷积神经网络进行建立;所述二值化的深度可分离卷积神经网络包括:第一卷积层、第二卷积层以及全连接层;所述语音唤醒模型具体的识别过程为:
利用所述第一卷积层对输入进行量化处理;所述第一卷积层的输入为待识别音频文件的语音特征;
根据量化后的语音特征与网络层的二值量化参数权重以及网络层修正因子做卷积乘法,并将卷积后的数据与第一卷积层的偏置系数做加法,得到第一卷积层的输出;所述网络层修正因子为网络层的参数权重未二值化前的32bit浮点数的按通道均值;
将所述第一卷积层的输出作为第二卷积层的输入;并将所述第一卷积层替换为第二卷积层,返回利用所述第一卷积层对输入进行量化处理的步骤,确定第二卷积层的输出,并重复上述步骤,直至输出识别结果。
所述识别结果确定模块202具体包括:
其中,
为二值化后的参数,
x表示参数权重或参数激活值。
所述识别结果确定模块202具体包括:
其中,
是卷积层的均值,
是卷积层的方差,
是卷积层的偏置,
是卷积层的权重,
k为常数。
所述识别结果确定模块202具体包括:
利用公式out = alpha(x* w + offset/alpha)确定第一卷积层的输出;
其中,out为输出,alpha为网络层修正因子,且为正数,w为二值量化参数权重。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。