一种基于二值残差神经网络的语音唤醒方法及系统与流程

文档序号:30646172发布日期:2022-07-05 23:05阅读:155来源:国知局
一种基于二值残差神经网络的语音唤醒方法及系统与流程

1.本发明涉及语音唤醒技术领域,特别是涉及一种基于二值残差神经网络的语音唤醒方法及系统。


背景技术:

2.语音唤醒系统通常在移动设备上运行,移动设备的内存小、计算力有限,因此语音唤醒系统应同时满足高准确率、运行所用内存小、计算量少的要求。然而,高性能的深度卷积神经网络模型复杂度高,计算量大,常需要占用大量内存,因此难以将其部署到内存较小的移动端。


技术实现要素:

3.本发明的目的是提供一种基于二值残差神经网络的语音唤醒方法及系统,在减少数据存储量与计算量的同时提高语音唤醒的识别准确度。
4.为实现上述目的,本发明提供了如下方案:一种基于二值残差神经网络的语音唤醒方法,包括:获取待识别音频文件,得到待处理语音信号;对所述待处理语音信号进行特征提取,得到梅尔频谱特征帧;构建二值残差神经网络模型;将所述梅尔频谱特征帧输入至训练好的二值残差神经网络模型中,得到关键词以及非关键词的概率值;根据所述概率值判断是否进行语音唤醒。
5.可选地,对所述待处理语音信号进行特征提取,得到梅尔频谱特征帧,具体包括:对所述待处理语音信号进行预加重、分帧加窗、快速傅里叶变换以及mel滤波处理,得到梅尔频谱特征帧。
6.可选地,所述二值残差神经网络模型包括:卷积层、bn层、relu激活函数、6个残差块、最大池化层以及全连接层;所述残差块包括:二值化卷积层、bn层、激活函数hardtanh(x-a+bias)以及一条捷径,x为所述残差块的输入,a为固定值移位,bias为可学习的偏置。
7.可选地,所述根据所述概率值判断是否进行语音唤醒,具体包括:当所述关键词的概率值最大,且距离上次唤醒时间已超过设定时限时,按照所述关键词进行语音唤醒;当所述非关键词的概率最大时,不进行语音唤醒。
8.本发明还提供了一种基于二值残差神经网络的语音唤醒系统,包括:音频文件获取模块,用于获取待识别音频文件,得到待处理语音信号;特征提取模块,用于对所述待处理语音信号进行特征提取,得到梅尔频谱特征帧;模型构建模块,用于构建二值残差神经网络模型;概率值输出模块,用于将所述梅尔频谱特征帧输入至训练好的二值残差神经网络
模型中,得到关键词以及非关键词的概率值;语音唤醒判断模块,用于根据所述概率值判断是否进行语音唤醒。
9.可选地,所述特征提取模块具体包括:处理单元,用于对所述待处理语音信号进行预加重、分帧加窗、快速傅里叶变换以及mel滤波处理,得到梅尔频谱特征帧。
10.可选地,所述二值残差神经网络模型包括:卷积层、bn层、relu激活函数、6个残差块、最大池化层以及全连接层;所述残差块包括:二值化卷积层、bn层、激活函数hardtanh(x-a+bias)以及一条捷径,x为所述残差块的输入,a为固定值移位,bias为可学习的偏置。
11.可选地,所述语音唤醒判断模块具体包括:唤醒单元,用于当所述关键词的概率值最大,且距离上次唤醒时间已超过设定时限时,按照所述关键词进行语音唤醒。
12.根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明使用二值残差神经网络(b-resnet8)作为分类器,将残差网络resnet中的激活值与权重值由32位浮点数量化为1bit数,从而将网络中大量浮点运算转化为代价更低、更有利于硬件部署的移位运算,从而大大减小神经网络模型中的参数量与计算量,提高唤醒速度并降低语音唤醒系统功耗。另外,本发明中还涉及一种新型激活函数,具有固定值移位的可学习激活函数hardtanh(x-a+bias),利用固定值移位a与可学习的偏置bias来优化网络中激活值的分布,无代价地提高了语音唤醒的识别率。
附图说明
13.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
14.图1为本发明实施例提供的基于二值残差神经网络的语音唤醒方法的流程图。
具体实施方式
15.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
16.本发明的目的是提供一种基于二值残差神经网络的语音唤醒方法及系统,在减少数据存储量与计算量的同时提高语音唤醒的识别准确度。
17.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
18.如图1所示,本发明提供的一种基于二值残差神经网络的语音唤醒方法,包括以下步骤:步骤101:获取待识别音频文件,得到待处理语音信号。
19.步骤102:对所述待处理语音信号进行特征提取,得到梅尔频谱特征帧。
20.步骤103:构建二值残差神经网络模型。
21.步骤104:将所述梅尔频谱特征帧输入至训练好的二值残差神经网络模型中,得到关键词以及非关键词的概率值。
22.步骤105:根据所述概率值判断是否进行语音唤醒。
23.其中,步骤102具体包括:对所述待处理语音信号进行预加重、分帧加窗、快速傅里叶变换以及mel滤波处理,得到梅尔频谱特征帧。
24.其中预加重的目的是增大语音信号高频部分的幅度,起到平衡频谱的作用;分帧加窗则是将预加重后的语音信号分成短时帧,并利用窗函数对每帧的信号进行加窗处理,即对固定长度的语音信号乘以汉明窗,使帧两端平滑地衰减,保证数据的平滑,其运算过程为:,,其中s(n)为完成预加重后的语音信号,w(n)为汉明窗函数,s’(n)为完成加窗后得到的时域信号,n为汉明窗口中信号的总长度,a取0.46;快速傅里叶变换是将分帧加窗后得到的时域信号转换为频域信号,并计算能量谱,其计算公式为:,,其中x(n)为长度n的语音信号,为旋转因子,x(k)为快速傅里叶变换后得到的频域信号,再利用公式得到能量谱p;最后在能量谱上应用mel滤波器组得到梅尔频谱特征帧,具体为利用公式,其中y(m)为得到的梅尔频谱特征帧,p为上一步得到的能量谱,hm(k)为mel滤波器组,m表示mel滤波器的编号。经过上述步骤得到连续的梅尔频谱声学特征帧。由于二值残差神经网络模型的输入层为固定帧数的声学特征,每次新的声学特征帧,可将其与之前已生成的特征帧利用代码编写软件中的拼接函数(例如python中的cat函数)进行拼接,得到新的输入。
25.其中,步骤103中构建的二值残差神经网络模型,其输入为梅尔频谱声学特征帧,输出为连续的非关键词和关键词概率。
26.本发明选取的神经网络为二值残差神经网络b-resnet8,是在经典残差网络resnet基础上对其进行改进与二值化得到的。
27.所述二值残差神经网络模型包括:卷积层、bn层、relu激活函数、6个残差块、最大池化层以及全连接层;梅尔频谱声学特征帧作为激活值输入进第一卷积层,经过卷积运算变为激活值输出,然后进入bn层,进行标准化处理,然后经过relu激活函数以增加激活值的非线性、减少过拟合,便得到残差块的激活值输入。其中第一层卷积层与最后一层全连接层为全精度层,即未对激活值与权重进行二值化,目的是在神经网络的输入端与输出端避免信息损失,防止明显的精度下降。
28.每个残差块包括:二值化卷积层、bn层、激活函数hardtanh(x-a+bias)以及一条捷径,x为所述残差块的输入,a为固定值移位,bias为可学习的偏置。
29.捷径用于连接残差块中卷积层的输入端与bn层的输出端,复制卷积层的输入,并
与bn层的输出相加得到hardtanh(x-a+bias)激活函数的输入,具体为公式:f(x) = f(x) + x;其中x、f(x)、f(x)分别为卷积层的输入(残差块的输入)、bn层的输出、hardtanh(x-a+bias)激活函数的输入。而hardtanh(x-a+bias)激活函数的输出将作为下一个残差块的输入,往复进行。其中,hardtanh(x-a+bias)激活函数是本发明提出的具有固定值移位的可学习激活函数,除了能增加输出激活值的非线性外,还可通过固定值移位a来移动激活值分布,使激活值分布趋于不平衡,这有利于提高二值化网络的准确性,最佳的固定值移位a可以通过实验获得,在本发明中取x=0.7,而bias是可学习的偏置,可以在训练过程中进一步修正激活值分布,从而获得最优激活分布。此外,残差块中的卷积层都是二值化卷积层,即在卷积运算前,对全精度激活值与全精度权重二值化为1bit数,具体为利用公式:,其中,ar代表全精度的输入激活值;ab、wb则分别代表二值化后的激活值、权重值;wr为正则化后的全精度权重值,利用公式:得到,其中w为全精度的权重值,w.mean为w的平均值,w.std为w的绝对值。得益于二值化权重和激活值的好处,输出激活值yr可通过简单的xnor运算和popcount运算得到,从而避免了卷积所需的大量浮点数乘加运算,并提高语音唤醒速度。如公式所示:,其中ab、wb分别代表二值化后的激活值、权重值,yr为输出激活值。最后一个残差块输出的激活值进入最大池化层进行降采样后,被输入到全连接层,最终输出连续的非关键词和关键词概率。
30.其中,步骤105具体包括:当所述关键词的概率值最大,且距离上次唤醒时间已超过设定时限时,按照所述关键词进行语音唤醒;当所述非关键词的概率最大时,不进行语音唤醒。
31.本发明设置了十个关键词作为唤醒词来唤醒设备,经过上述步骤后得到非关键词和关键词概率输出,选择概率值最大的关键词或非关键词当作标签,并作为输出,若该标签为关键词,且距离上次唤醒时间已超过设定时限,则按照该关键词唤醒设备。
32.本发明与传统的使用全精度神经网络作为分类器的语音唤醒系统相比,使用二值残差神经网络作为分类器,以很小的精度下降为代价,减少了数据存储的空间,大幅度降低语音唤醒系统的计算量与功耗,从而降低了硬件实现的难度。这个优点来自于对神经网络的激活值输入与权重进行二值化处理,大大减少了数据的存储量与系统的运算量,进一步降低了功耗,提供了一种便于移动端使用的轻量级语音唤醒实现方案。
33.本发明与一般的基于二值化神经网络的语音唤醒系统相比,提高了语音唤醒识别精度,大大提高了二值化网络应用于语音唤醒系统的可行性。这个优点来自于二值残差网络中残差块的引入,一方面可以避免卷积神经网络加深带来梯度消失的问题,另一方面增加了网络中的激活值的数值表示范围,减少了激活值被二值化后带来的信息损失。另外,残差块中使用的并非传统的激活函数,而是本发明提出的新型激活函数,具有固定值移位的可学习激活函数hardtanh(x-a+bias),通过手动移位a与可学习的偏置bias来优化激活值分布以减少二值化带来的信息损失。这两者大大缓解了二值化网络信息损失太大的缺陷,提高了网络的识别精度。
34.本发明还提供了一种基于二值残差神经网络的语音唤醒系统,包括:音频文件获取模块,用于获取待识别音频文件,得到待处理语音信号;特征提取模块,用于对所述待处理语音信号进行特征提取,得到梅尔频谱特征帧;模型构建模块,用于构建二值残差神经网络模型;概率值输出模块,用于将所述梅尔频谱特征帧输入至训练好的二值残差神经网络模型中,得到关键词以及非关键词的概率值;语音唤醒判断模块,用于根据所述概率值判断是否进行语音唤醒。
35.其中,所述特征提取模块具体包括:处理单元,用于对所述待处理语音信号进行预加重、分帧加窗、快速傅里叶变换以及mel滤波处理,得到梅尔频谱特征帧。
36.其中,所述语音唤醒判断模块具体包括:唤醒单元,用于当所述关键词的概率值最大,且距离上次唤醒时间已超过设定时限时,按照所述关键词进行语音唤醒。
37.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
38.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1