一种用于语音命令词识别的深度神经网络构建方法和识别方法及装置与流程

文档序号:20911880发布日期:2020-05-29 13:05阅读:338来源:国知局
一种用于语音命令词识别的深度神经网络构建方法和识别方法及装置与流程
本发明属于语音识别(speechrecognition)、人工智能(artificialintelligence)、深度神经网络(deepneuralnetwork)、卷积神经网络(cnn,convolutionneuralnetwork)算法领域,具体涉及一种用于语音命令词识别的深度卷积神经网络构建方法和基于该神经网络进行语音命令识别的方及装置。
背景技术
:语音命令词识别是智能设备人机语音交互功能的重要组成部分。它需要实时响应、高精度和良好的用户体验。传统的语音识别技术使用隐含马尔可夫模型(hmms)和维特比译码,虽然达到了合理的精度,但模型训练的复杂度高,推理(识别)过程的计算量大,识别延时也较大。近年来,采用深度神经网络进行语音的复杂语句识别和命令词识别已成为一种有吸引力的选择,其比传统的语音识别算法有更高的准确性和更少的识别延时。智能设备实现语音命令识别可以有两种方式,一种是将语音命令送到云端进行识别,一种是本地识别。云端识别可以使用复杂的神经网络,精度高,但是由于网络延时的存在,识别延时大,用户体验不好。所以很多情况下,智能设备更需要本地离线的语音命令识别功能,以实现快速的响应。对于智能设备,出于功耗方面的考虑,用于离线语音命令识别的神经网络不能过于复杂,以降低计算功耗。但同时要能提供足够高的识别精度,给用户以良好的使用体验。在一个典型的语音命令词识别系统中,一段输入语音首先被分成多个语音帧,相邻的两个语音帧一般会有部分交叠。对于每帧语音,会进行语音特征参数的提取。常用的语音特征有对数梅尔子带能量(lfbe,log-melfilterbankenergies),和梅尔频率倒谱系数(mfcc,mel-frequencycepstralcoefficients)。提取过程首先将一帧语音通过傅里叶变换转换成频率域的一组频谱系数,然后用频谱系数计算语音特征。如果一段语音被分成n个语音帧,每个语音帧提取出k个特征参数,那么一个语音命令识别神经网络的输入数据个数为n*k个。用于语音识别的神经网络可以用深度神经网络(dnn,deepneuralnetwork)结构,也可用卷积神经网络(cnn,convolutionneuralnetwork)结构。dnn网络由多个全连接层级联组成,n*k个特征作为一组一维数据输入给dnn网络,最后一级全连接层的计算结果输入到输出层得到识别结果。dnn网络的缺点在于采用全连接层,很难提高识别精度。如果要取得较高的识别精度,计算量将非常大。dnn网络将n*k个特征看做一组一维数据,并没有考虑到n个语音帧特征参数之间具有相关性,实际是可以通过卷积操作提取这种相关性,来提高识别精度,或者降低计算量。cnn网络将n*k个特征看做一幅长为n、宽为k的图像,如下面公式所示,其中u表示特征矩阵,u表示矩阵中的元素即某个特征参数。cnn网络由多个卷积层和全连接层级联组成,最后一级全连接层的计算结果输入到输出层得到识别结果。cnn网络将多帧特征看做图像,因此采用了对图像常用的二维卷积操作,而二维卷积的计算量比较大。上述用于语音识别的神经网络的结构比较复杂,计算量大,用于智能设备本地离线的语音命令识别功能时,计算功耗高,不适合移动智能设备或对功耗有要求的智能设备的使用。技术实现要素:本发明解决的技术问题在于,降低语音命令识别网络的复杂度和计算量,同时提供足够高的识别精度,从而使智能设备实现本地离线的、能够快速响应的语音命令识别功能。本发明采用的技术方案如下:一种用于语音命令词识别的深度神经网络构建方法,包括以下步骤:由语音命令集和干扰语音集构成训练数据,对训练数据中的每条语音进行分帧,对每帧语音提取特征参数,得到多通道的一维特征向量;将所有多通道的一维特征向量输入cnn网络进行训练,cnn网络中部分或者全部卷积层使用一维卷积内核进行卷积操作,最终得到训练完成的用于语音命令词识别的cnn网络。进一步地,所述cnn网络中部分或者全部卷积层使用一维卷积内核进行卷积操作,以及激活、池化操作,生成新的多通道的一维特征向量,输入给下一层。进一步地,所述的对训练数据中的每条语音进行分帧,对每帧语音提取特征参数,得到多通道的一维特征向量,包括:将一段语音分成n个语音帧,每个语音帧提取出k个特征参数,从而得到n*k个语音特征,将n*k个语音特征作为k个通道的一维特征向量,每个通道的一维向量含有n个数据。进一步地,定义识别集合={{语音命令集},“干扰语音”,“无声”},所述cnn网络的识别结果对应所述识别集合中“无声”、“干扰语音”、或者某个语音命令之一。基于同一发明构思,本发明还提供一种用于语音命令词识别的深度神经网络构建装置,其包括:特征提取模块,负责对由语音命令集和干扰语音集构成的训练数据中的每条语音进行分帧,对每帧语音提取特征参数,得到多通道的一维特征向量;网络训练模块,负责将所有多通道的一维特征向量输入cnn网络进行训练,cnn网络中部分或者全部卷积层使用一维卷积内核进行卷积操作,最终得到训练完成的用于语音命令词识别的cnn网络。基于同一发明构思,本发明还提供一种语音命令识别方法,包括以下步骤:将待识别的语音分成n个语音帧,每个语音帧提取出k个特征参数,从而得到n*k个语音特征;将提取的n*k个语音特征输入至本发明构建的cnn网络,得到语音命令词识别标签。基于同一发明构思,本发明还提供一种语音命令识别装置,其包括:特征提取模块,负责将待识别的语音分成n个语音帧,每个语音帧提取出k个特征参数,从而得到n*k个语音特征;识别模块,负责将提取的n*k个语音特征输入至本发明构建的cnn网络,得到语音命令词识别标签。本发明的有益效果如下:本发明将语音特征看作多通道一维特征向量,而不是二维图像,采用一维卷积操作来代替二维卷积操作,能够有效的降低卷积操作的计算量,并达到与二维卷积同样级别的识别精度,从而使智能设备实现本地离线的、能够快速响应的语音命令识别功能,降低了识别的功耗,给用户以良好的使用体验。本发明与现有的基于卷积神经网络的语音命令识别算法的区别在于:现有的基于卷积神经网络的语音命令识别算法要么是基于dnn模型,要么是基于二维卷积神经网络,还未有人提出用一维卷积神经网络算法进行语音命令识别。附图说明图1是实施例中一维cnn网络的结构示意图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。目前普遍使用的语音命令识别cnn网络,可以称为二维卷积cnn网络,它将语音特征看作一幅图像,输入给第一个卷积层,通过二维卷积核对输入图像进行卷积,生成多通道特征图像。之后的每一个卷积层都使用多通道二维卷积核对输入的多通道特征图像进行卷积、池化(pooling)、激活(activation)等操作,生成新的多通道特征图像,输入给下一层网络。cnn网络中二维卷积的计算量比较大。实际上多帧特征图并不是实际存在的图像,那么将不同帧同一位置的特征作为一个特征通道可能更合适。即将
背景技术
中的特征矩阵u中的[u0,k,u1,k,…,un-1,k],k∈[0,k-1]看作一个特征通道向量。这样可以用一维卷积来处理。与目前普遍使用的二维cnn网络不同,本发明提出的语音命令识别网络,可以称为一维cnn网络。该一维cnn网络,将输入的n*k个语音特征,看作有k个通道的一维特征向量组,每个通道的一维特征向量含有n个数据。部分或者全部卷积层使用一维卷积内核,对多通道一维特征向量进行卷积操作,以及激活、池化操作,生成新的多通道一维特征向量,输入给下一层。一个示例的一维cnn网络的结构如图1所示。将语音特征看作多通道一维特征向量,而不是二维图像,这样就可以采用一维卷积操作来代替二维卷积操作。这种方法可以有效的降低卷积操作的计算量,并达到同样级别的识别精度。一个示例的一维卷积公式如下:其中:zl是l层的输出特征向量组,也是l+1层的输入特征向量组;是zl的第k个通道的一维特征向量,k∈[0,kl-1],kl是zl的通道数目;i表示一个通道的一维特征向量中的第i个值;是zl的第k个通道的一维特征向量的第i个值;tl+1是l+1层的卷积结果;是tl+1的第j个通道的一维特征向量,j∈[0,kl+1-1],kl+1是tl+1的通道数目;wl+1是一维卷积内核;是卷积内核wl+1的系数,对应第l+1层第k个输入通道,第j个输出通道;b是偏移值;x∈[-x0,x1];x0,x1决定了卷积操作的范围,对于输入的第k个通道的一维特征向量中的第i个值卷积操作的范围是从位置(i-x0)到位置(i+x1),也就是从到卷积结果tl+1计算出来之后,可以进行激活(activation)和池化(pooling)操作,最终得到l+1层的多通道特征向量zl+1,输入给下一级。如图1所示,经过m层卷积层后,进入全连接层1~l,全连接层的作用是用于生成识别结果。定义识别集合={{语音命令集},“干扰语音”,“无声”}。网络的识别输出实际是识别集合里每种结果对应的标签,也就是说最终识别出来的结果对应“无声”、“干扰语音”、或者某个语音命令之一。上述一维cnn网络的训练过程包括以下步骤:1)首先准备语音命令集,和干扰语音集,每条语音命令和干扰语音都处理成具有相同的时间长度。通常干扰语音集的语音条数是语音命令集的数倍以上。2)对每条语音进行分帧,对每帧语音提取特征参数,得到多通道特征参数。3)定义损失函数,用于度量真实命令标签和预测概率之间的差异,例如交叉熵。4)将所有多通道语音特征参数作为cnn网络的输入用于网络参数训练。5)通过梯度下降法和反向传播方式更新网络参数,多次迭代以后得到比较稳定的网络参数,作为最终的网络参数。采用训练完成的一维cnn网络进行语音命令词识别的方法,包括以下步骤:1)对待识别的语音提取语音特征。将一段语音分成n个语音帧,每个语音帧提取出k个特征参数,从而得到n*k个语音特征。2)将提取的n*k个语音特征输入至训练完成的一维cnn网络,得到语音命令词识别标签,也就是识别集合里对应结果的标签。下面提供一个具体应用实例。输入层:语音命令的长度为1秒,20毫秒一帧,相邻帧之间交叠区间为10毫秒,最终分成99帧语音。每帧语音提取40个梅尔频率倒谱系数(mfcc)作为语音特征。这样网络输入是99x40的语音特征参数向量组,也就是40个特征通道,每个通道向量的长度是99。第1个卷积层:卷积操作采用96个大小为5x40的卷积核,以步长1对输入的99x40语音特征向量组进行卷积操作,卷积结果为大小为99x96的向量组,也就是96个特征通道,每个通道向量的长度是99。卷积结果进行激活操作,激活函数采用修正线性单元relu。本层不进行池化操作,激活结果直接送入第2个卷积层。第2个卷积层:卷积操作采用96个大小为7x96的卷积核,以步长1对输入的99x96语音特征向量组进行卷积操作,卷积结果为大小为99x96的向量组,也就是96个特征通道,每个通道向量的长度是99。卷积数据进行激活操作,激活函数采用修正线性单元relu。本层进行池化操作,以步长2做最大池化操作,得到50x96的向量组,也就是96个特征通道,每个通道向量的长度是50。池化之后的数据送入第3个卷积层。第3个卷积层:卷积操作采用96个大小为7x96的卷积核,以步长1对输入的50x96语音特征向量组进行卷积操作,卷积结果为大小为50x96的向量组,也就是96个特征通道,每个通道向量的长度是50。卷积数据进行激活操作,激活函数采用修正线性单元relu。本层进行池化操作,以步长2做最大池化操作,得到25x96的向量组,也就是96个特征通道,每个通道向量的长度是25。池化之后的数据送入第4个卷积层第4个卷积层:卷积操作采用96个大小为7x96的卷积核,以步长1对输入的25x96语音特征向量组进行卷积操作,卷积结果为大小为25x96的向量组,也就是96个特征通道,每个通道向量的长度是25。卷积数据进行激活操作,激活函数采用修正线性单元relu。本层不进行池化操作,激活结果直接送入全连接层。全连接层:全连接层将25x96的向量组展成长度为2400的一维数据。全连接层有32个神经元,每个神经元与一维数据的每个数据连接。全连接层的输出为32个数据。输出层:将全连接层的32个数据送入softmax()函数,得到每个标签的识别概率。将概率最高的标签作为本次识别的结果。本发明的上述示例的神经网络的识别准确率为95.3%,与参考文献“helloedge:keywordspottingonmicrocontrollers”,yundongzhang,naveensuda,liangzhenlai,vikaschandra,https://arxiv.org/abs/1711.07128”的对比如下面表1所示。表1.本发明和现有方法的实验结果对比准确率单次识别的计算操作个数说明ds-cnn95.4%56.9m文献中准确率最高的算法crnn95.0%19.2m文献中准确率第二最高的算法本发明95.3%13.2m可以看出,采用本发明的方法,在操作次数大大减少的情况下,仍然取得了和上述参考文献准确率最高的算法十分接近的准确率。在本发明的实际实施过程中,语音命令的时间长度,语音帧长度,语音帧交叠区间的大小,每帧语音提取特征参数的类型和数目,均可以根据需要改变。在本发明的实际实施过程中,卷积层和全连接层的个数可以根据需要改变。在本发明的实际实施过程中,卷积层输入和输出的特征通道的数目,特征通道向量的长度,卷积核的尺寸,激活操作选用的函数,是否进行pooling操作,pooling操作的步长,均可以根据需要改变。在本发明的实际实施过程中,全连接层的输入和输出数据数目,可以根据需要改变。在本发明的实际实施过程中,输出层生成识别结果的函数,可以根据需要选用其它函数。基于同一发明构思,本发明另一实施例提供一种用于语音命令词识别的深度神经网络构建装置,其包括:特征提取模块,负责对由语音命令集和干扰语音集构成的训练数据中的每条语音进行分帧,对每帧语音提取特征参数,得到多通道的一维特征向量;网络训练模块,负责将所有多通道的一维特征向量输入cnn网络进行训练,cnn网络中部分或者全部卷积层使用一维卷积内核进行卷积操作,最终得到训练完成的用于语音命令词识别的cnn网络。基于同一发明构思,本发明另一实施例提供一种语音命令识别装置,其包括:特征提取模块,负责将待识别的语音分成n个语音帧,每个语音帧提取出k个特征参数,从而得到n*k个语音特征;识别模块,负责将提取的n*k个语音特征输入至本发明构建的cnn网络,得到语音命令词识别标签。基于同一发明构思,本发明的另一个实施例提供一种电子设备(如智能手机等智能设备),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明的语音命令识别方法中各步骤的指令。基于同一发明构思,本发明的另一个实施例提供一种计算机可读存储介质(如rom/ram、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明的语音命令识别方法的各个步骤。以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的原理和范围,本发明的保护范围应以权利要求书所述为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1