[0001]
本发明属于基于神经网络的轻量级、低功耗的语音关键词识别方法技术领域,尤其涉及一种基于图卷积神经网络的语音关键词识别系统及方法。
背景技术:[0002]
关键词识别常常作为语音交互的第一步,被用于判断用户是否有交互意图。当用户有交互意图时,系统根据用户的指令做出相应的反应。当用户没有交互意图时,系统应一直处于待机休眠状态。关键词识别模型一般配置在端侧,为保护用户的隐私一般以离线的方式运行。端侧的计算资源和存储资源都比较有限,并且语音关键词识别系统往往在端侧一直运行,对模型的大小、准确率及进行预测时需要的操作量都有着比较严格的限制。目前基于卷积神经网络的关键词识别方法,存在两个问题:第一是网络的复杂度还比较高和计算仍然比较密集。第二是卷积神经网络难以提取全局的信息。
技术实现要素:[0003]
本发明的目的是提供一种基于图卷积神经网络的语音关键词识别系统及方法,以解决现有技术中基于卷积神经网络的关键词识别方法网络复杂度还比较高和计算仍然比较密集和卷积神经网络难以提取全局信息的问题。
[0004]
为了实现上述目的,本发明提供如下技术方案:
[0005]
一种基于图卷积神经网络的语音关键词识别系统,包括:
[0006]
一个语音数据采集模块,通过语音数据采集模块采集操作人员发出的唤醒词。
[0007]
一个带通滤波器,其能够滤除接收语音数据采集模块唤醒词中的噪声。
[0008]
一个声学特征提取模块,其能够接收语音数据采集模块采集的唤醒词,通过声学特征提取模块提取唤醒词的特征信息。
[0009]
一个神经网络分类器,其能够通过声学特征完成命令词的分类。
[0010]
一个基础网络结构,其包括一个初始区组、若干个stage和一个神经网络分类器。
[0011]
若干个stage通过不同数目的bottelneck block组成。bottelneck block的数目根据模型的复杂度调整。神经网络分类器包括全局池化层、线性层和softmax模块。
[0012]
初始区组具有一层不带偏置的3*3的卷积。bottelneck block包括三层卷积,第一层卷积和第三层卷积是1*1卷积,第二层卷积是3*3卷积。
[0013]
若干个stage通过不同数目的bottelneck block组成,bottelneck block的数目根据模型的复杂度调整。
[0014]
一个图卷积神经网络模块,其插入基础网络结构。图卷积神经网络模块能够通过图卷积神经网络对全局的上下信息建模。
[0015]
在上述技术方案的基础上,本发明还可以做如下改进:
[0016]
进一步地,图卷积神经网络将卷积的特征图看成一个全连接的图,通过图卷积神经网络的信息传播,输出的特征图编码了全局信息。
[0017]
图卷积神经网络模块将卷积神经网络的特征图看成一个全连接的图,通过图卷积的信息传播,使得特征上的各个节点之间的关联可以直接被建模。
[0018]
进一步地,带通滤波器的频率范围为20hz~4khz。
[0019]
进一步地,声学特征提取模块能够按照帧长30ms、帧移10ms对语音分帧,声学特征提取模块能够提取每一帧语音的fbank特征。
[0020]
进一步地,声学特征提取模块提取每一帧语音的fbank特征的过程包括加窗、预加重、fft和求能量取对数操作。
[0021]
fbank特征是i∈t表示时间上的帧数,f表示频域的特征维度。
[0022]
进一步地,不带偏置的3*3的卷积层能够从mfcc特征中提取特征表示,将单通道的fbank特征转换为多通道的卷积特征图。
[0023]
进一步地,ratio表示降维的比例,ratio小于1,小于1的ratio能够起到压缩网络参数和计算量的效果。
[0024]
进一步地,若干个stage的区别在于通道数不同,stage通道的深度与stage通道数的宽度成正比。通道在stage的内部,通道数是一致的。每个stage最后一个bottleneck结构是用来提升维度的。
[0025]
进一步地,全局池化层能够将卷积提取的三维特征图转化成一个一维的向量。
[0026]
一种基于图卷积神经网络的语音关键词识别方法,包括:
[0027]
s101,配置一个语音数据采集模块,通过语音数据采集模块采集操作人员发出的唤醒词。
[0028]
s102,配置一个带通滤波器,其能够滤除接收语音数据采集模块唤醒词中的噪声。
[0029]
s103,配置一个声学特征提取模块,其能够接收语音数据采集模块采集的唤醒词,通过声学特征提取模块提取唤醒词的特征信息。
[0030]
s104,配置一个基础网络结构,其包括一个初始区组、若干个stage,一个神经网络分类器。
[0031]
若干个stage通过不同数目的bottelneck block组成。bottelneck block的数目根据模型的复杂度调整。神经网络分类器包括全局池化层、线性层和softmax模块。
[0032]
初始区组具有一层不带偏置的3*3的卷积。bottelneck block包括三层卷积,第一层卷积和第三层卷积是1*1卷积,第二层卷积是3*3卷积。
[0033]
若干个stage通过不同数目的bottelneck block组成,bottelneck block的数目根据模型的复杂度调整。
[0034]
s105,一个图卷积神经网络模块,其插入基础网络结构。图卷积神经网络模块能够通过图卷积神经网络对全局的上下信息建模
[0035]
本发明具有如下优点:将bottleneck网络结构和残差连接应用到命令词识别任务中,使得比较复杂的卷积核作用在比较低的维度上,对模型的大小和运算量进行了压缩。引入了图卷积神经网络对全局的上下文信息建模。图卷积神经网络将卷积的特征图看成一个全连接的图,通过图卷积神经网络的信息传播,输出的特征图编码了全局信息。
[0036]
使用窄通道的bottleneck结构和残差连接的方式,在精度相当的情况下显著压缩了网络的复杂度,实现了高效的网络计算,更适用于低资源设备场景的应用。引入图卷积网络对卷积特征图全局上下文进行建模,提高了语音关键词识别准确率。
附图说明
[0037]
为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]
图1为语音关键词识别方法的流程图。
[0039]
图2为语音关键词识别系统的工作原理图。
[0040]
图3为语音关键词识别系统基础网络结构图。
[0041]
图4为语音关键词识别系统中图卷积网络信息传播流程图。
[0042]
图5为语音关键词识别系统中图卷积模块插入基础网络的位置示意图。
[0043]
图6为语音关键词识别系解码器和原始解码器的对比数据示意图。
[0044]
标号说明
[0045]
语音数据采集模块10,带通滤波器20,声学特征提取模块30,神经网络分类器40,全局池化层401,线性层402,softmax模块403,基础网络结构50,初始区组501,第一模块502,第二模块503,第三模块504,图卷积神经网络模块60。
具体实施方式
[0046]
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
[0047]
如图1-6所示,本发明实施方式提供了一种基于图卷积神经网络的语音关键词识别系统。包括:一个语音数据采集模块10、一个带通滤波器20、一个声学特征提取模块30、一个神经网络分类器40和一个基础网络结构50。
[0048]
基于图卷积神经网络的语音关键词识别系统使用窄通道的bottleneck结构和残差连接的方式,在精度相当的情况下显著压缩了网络的复杂度,实现了高效的网络计算,更适用于低资源设备场景的应用。引入图卷积网络对卷积特征图全局上下文进行建模,提高了语音关键词识别准确率。
[0049]
如图1所示,折线即表示残差连接,即学习网络时,不直接学习特征f(x),而是学习f(x)-x即残差。
[0050]
语音数据采集模块10,通过语音数据采集模块10采集操作人员发出的唤醒词。
[0051]
带通滤波器20,其能够滤除接收语音数据采集模块10唤醒词中的噪声。在数据预处理阶段,我们首先使用20hz-4khz的带通滤波器20,滤除语音中的噪声。
[0052]
声学特征提取模块30,其能够接收语音数据采集模块10采集的唤醒词,通过声学特征提取模块30提取唤醒词的特征信息。声学特征提取模块30对唤醒词的每一帧,分别进行维度均为的音强、响度、基频和浊音度的声学特征提取,得到40维度的特征值。
[0053]
声学特征提取模块30按照帧长30ms、帧移10ms对语音进行分帧,接着对每一帧的语音提取fbank特征。假设提取的fbank特征是i∈t表示时间上的帧数,f表示频域的特
征维度。因为数据是1秒定长的语音,并采用了40维mfcc特征,故t=101,f=40。
[0054]
mfcc是语音中常用的另一种特征,是在fbank特征上继续做了dct(离散余弦变换)得到的,40维是常用的声学特征维度之一,是个经验值。
[0055]
基础网络结构50,其包括一个初始区组501、若干个stage和一个神经网络分类器40。
[0056]
bottleneck结构作为残差连接的基本单元,ratio<1,构造了基础网络。ratio一直小于一,起到压缩网络参数和计算量的效果。bottlebeck结构将3*3卷积操作锁定在低维度,从而降低了卷积核的参数量和卷积层的操作数,提高了网络计算的效率。
[0057]
若干个stage通过不同数目的bottelneck block组成。bottelneck block的数目根据模型的复杂度调整。神经网络分类器40包括全局池化层401、线性层402和softmax模块403。
[0058]
初始区组501(initial block)具有一层不带偏置(bias)的3*3的卷积。该层能够从mfcc特征中提取特征表示,将单通道的fbank特征转换为多通道的卷积特征图。为了降低特征图的大小,去掉冗余的信息,在3*3的卷积后面紧跟了一层2*2的平均池化层(average pooling)。
[0059]
单通道的信息比较单一,通过多个卷积核的神经网络转换成多通道,更加丰富地建模信息,也是常用操作。
[0060]
bottelneck block包括三层卷积,第一层卷积和第三层卷积是1*1卷积,第一层卷积和第三层卷积分别用于降维和重建维度。通过控制卷积核的个数降维和重建纬度的。第一层卷积核数比较少,得到的特征图就是降维了。第三层卷积核数增加,重建维度。降维是为了压缩网络的大小和模型的计算量,重建维度是为了满足残差链接。因为原来的特征图通道是c,经过第一层卷积的降维可能得到的特征图就是c/4了,那为了残差链接,通道数必须与c一致,因此需要第三层卷积把通道维度重建。
[0061]
第二层卷积是3*3卷积。第二层的3*3卷积层在一个比较低的维度上进行卷积。ratio表示降维的比例(ratio<1),在第一模块502中特征图本身维度就比较低,因此我们没有选用过于小的ratio,使ratio=0.5,对于第二模块503、第三模块504,我们将ratio设置为0.25。
[0062]
若干个stage通过不同数目的bottelneck block组成,bottelneck block的数目根据模型的复杂度调整。不同stage的区别在于通道数不同,越深的stage通道数越宽,但是通道在stage的内部,通道数是一致的。每个stage最后一个bottleneck结构是用来提升维度的。
[0063]
神经网络分类器40(classification block):由全局池化层401(global average pooling)、线性层402(linear layer)和softmax模块403组成。全局池化层401的作用是将卷积提取的三维特征图转化成一个一维的向量。假设原feature map的大小为h*w*c,全局池化的作用是将每个通道的h*w个点平均,每个通道得到1个平均值,即得到1*c的vector,接线性层402分类。
[0064]
一个图卷积神经网络模块60即gcn模块(graph convolutional network模块),其插入基础网络结构50。图卷积神经网络模块60能够通过图卷积神经网络对全局的上下信息建模。
[0065]
卷积神经网络的局限在于只能提取局部的信息,本发明的语音关键词识别系统引入图卷积神经网络模块60,将卷积神经网络的特征图看成一个全连接的图,通过图卷积的信息传播,使得特征上的各个节点之间的关联可以直接被建模。引入了丰富的上下文信息,从提升而语音命令词识别的性能。
[0066]
为了评估图卷积神经网络对丰富的上下文的建模能力,对语音命令词识别的任务的影响,我们将gcn模块插入上文所提到的基础网络中,提升了语音命令词识别的准确率。
[0067]
如图6所示,原始识别网络占用空间大小为19.9kb,原始识别网络准确率为90.1%,原始识别网络一次预测乘法数为5.65m。本发明基础网络占用空间大小为16.2kb,本发明基础网络准确率为93.9%,本发明基础网络一次预测乘法数为1.95m。基础网络+图卷积模块占用空间大小为27.6kb,基础网络+图卷积模块准确率为95.2%,基础网络+图卷积模块一次预测乘法数为2.55m。
[0068]
关键词识别模型一般配置在端侧,为保护用户的隐私一般以离线的方式运行。端侧的计算资源和存储资源都比较有限,并且语音关键词识别系统往往在端侧一直运行(always-on),对模型的大小、准确率及进行预测时需要的操作量都有着比较严格的限制。
[0069]
首先,我们在命令词任务中尝试了更有效率的网络结构。受深层的残差神经网络对于训练时间、计算量的优化方法的启发,将bottleneck网络结构和残差连接应用到命令词识别任务中,使得比较复杂的卷积核作用在比较低的维度上,对模型的大小和运算量进行了压缩。
[0070]
本发明的语音关键词识别系统引入了图卷积神经网络对全局的上下文信息建模。图卷积神经网络将卷积的特征图看成一个全连接的图,通过图卷积神经网络的信息传播,输出的特征图编码了全局信息。图卷积网络可以建模任意一对节点相互关系,与节点之间的距离无关。语音信号是具有上下文依赖的序列信号,全局信息能够帮助提升语音命令词识别的性能。通过增强模型的上下文建模能力,提升了识别效果。除了在方法上论证合理性,本发明的语音关键词识别系统也通过实验验证方法的有效性。
[0071]
本发明的语音关键词识别系统设计了基于bottleneck的基础语音命令词识别基础网络。接着在基础网络中加入了图卷积神经网络模块60,网络的性能与基础网络相比有进一步的提升。
[0072]
一种基于图卷积神经网络的语音关键词识别方法,包括:
[0073]
s101,配置一个语音数据采集模块采集操作人员发出的唤醒词。
[0074]
本步骤中,配置一个语音数据采集模块10,通过语音数据采集模块10采集操作人员发出的唤醒词。
[0075]
s102,配置一个带通滤波器用来滤除接收语音数据采集模块唤醒词中的噪声。
[0076]
本步骤中,配置一个带通滤波器20,其能够滤除接收语音数据采集模块10唤醒词中的噪声。
[0077]
s103,配置一个声学特征提取模块提取唤醒词的特征信息。
[0078]
本步骤中,配置一个声学特征提取模块30,其能够接收语音数据采集模块10采集的唤醒词,通过声学特征提取模块30提取唤醒词的特征信息。
[0079]
s104,配置一个基础网络结构。
[0080]
本步骤中,配置一个基础网络结构50,其包括一个初始区组501、若干个stage,一
个神经网络分类器40。
[0081]
若干个stage通过不同数目的bottelneck block组成。bottelneck block的数目根据模型的复杂度调整。神经网络分类器40包括全局池化层401、线性层402和softmax模块403。
[0082]
初始区组501具有一层不带偏置的3*3的卷积。bottelneck block包括三层卷积,第一层卷积和第三层卷积是1*1卷积,第二层卷积是3*3卷积。
[0083]
若干个stage通过不同数目的bottelneck block组成,bottelneck block的数目根据模型的复杂度调整。
[0084]
s105,图卷积神经网络模块能够通过图卷积神经网络对全局的上下信息建模。
[0085]
本步骤中,一个图卷积神经网络模块60,其插入基础网络结构50。图卷积神经网络模块60能够通过图卷积神经网络对全局的上下信息建模。
[0086]
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。