基于轻量级深度学习的语音短指令识别方法及系统

文档序号:29127935发布日期:2022-03-05 00:39阅读:155来源:国知局
基于轻量级深度学习的语音短指令识别方法及系统

1.本发明涉及语音信号识别技术领域,尤其是指基于轻量级深度学习的语音短指令识别方法及系统。


背景技术:

2.作为语音识别的分支,语音短指令识别被应用到众多领域中,例如机器人控制、智能汽车、智能家居等等。其中,智能家居更有效地为人们服务,因为用户可以基于物联网技术直接使用自然语言实现对家用设备控制,提升了用户的居住体验。
3.在语音短指令识别中,传统的机器学习的方法通常包括三个步骤:

由降噪和语音活动检测两部分组成的预处理过程;

经过特征提取过程找到一个特征集代表语音短指令特征提取;

使用机器学习算法对语音短指令进行分类。但是,这种传统机器学习方法对于短指令的分类效果高度依赖于特征提取集的好坏,而特征提取方法又通常会对特征类型做一定的限制,并且因为机器学习需要人工提取特征,所以只有专业人员来参与完成特征提取过程模型才能得到较好的分类效果。
4.综上所述,传统的机器学习方法需要手工设计特征,其识别准确率较低、灵活性弱。


技术实现要素:

5.为此,本发明所要解决的技术问题在于克服现有技术中传统的机器学习方法需要手工设计特征所导致的识别准确率较低、灵活性弱的问题。
6.为解决上述技术问题,本发明提供了基于轻量级深度学习的语音短指令识别方法,包括如下步骤:
7.步骤s1:采集连续不同的短指令数据并进行预处理,得到采样率一致的短指令数据;
8.步骤s2:对采样率一致的短指令数据进行分段,得到多条短指令片段;
9.步骤s3:根据多条短指令片段得到每条短指令片段的语谱图,根据语谱图得到梅尔语谱图,根据梅尔语谱图得到梅尔倒频谱系数;
10.步骤s4:将梅尔语谱图与梅尔倒频谱系数分别作为卷积神经网络模型的输入并进行训练,得到利用梅尔语谱图作为输入训练得到的第一模型、与利用梅尔倒频谱系数作为输入训练得到的第二模型,并选取第一模型、第二模型中识别准确率较高的模型进行语音短指令识别。
11.在本发明的一个实施例中,步骤s1中,所述采集连续不同的短指令数据并进行预处理,得到采样率一致的短指令数据的方法为:对连续不同的短指令数据转换为统一格式,并通过audacity软件更改为统一的采样率数值。
12.在本发明的一个实施例中,步骤s2中,所述对采样率一致的短指令数据进行分段,得到多条短指令片段的方法为:
13.步骤s21、通过人耳对采样率一致的短指令数据进行短指令片段选择;
14.步骤s22、记录每条短指令片段选区的起始和终止采样点数据;
15.步骤s23、根据起始和终止采样点依次截取每条短指令片段,得到多条短指令片段。
16.在本发明的一个实施例中,步骤s3中,所述根据多条短指令片段得到每条短指令片段的语谱图的方法为:对多条短指令片段中的每条短指令片段进行分帧、加窗后再对每一帧进行短时傅里叶变换,得到功率谱,根据功率谱得到语谱图。
17.在本发明的一个实施例中,所述加窗的窗口为汉明窗,所述汉明窗的大小为40ms、重叠部分为50%。
18.在本发明的一个实施例中,步骤s3中,所述根据语谱图得到梅尔语谱图的方法为:将语谱图通过梅尔滤波器组进行过滤,得到梅尔语谱图。
19.在本发明的一个实施例中,步骤s3中,所述根据梅尔语谱图得到梅尔倒频谱系数的方法为:计算梅尔语谱图的对数功率谱的平方,得到对数梅尔幅度谱,对对数梅尔幅度谱进行逆离散傅里叶变换,得到梅尔倒频谱系数。
20.在本发明的一个实施例中,步骤s4中,所述卷积神经网络模型包括三个vgg块、一个全局平均池化层、一个全连接层、一个概率为0.5的丢弃层和一个softmax回归,每个vgg块由第一部分、第二部分和第三部分组成,所述第一部分、第二部分均包括:一个大小为3*3、填充为1、步长为2的卷积层、一个批量归一化层和一个激活函数为relu的激活层,所述第三部分包括一个2*2的最大池化层和一个概率为0.2的丢弃层。
21.在本发明的一个实施例中,步骤s4中,所述并选取两种模型识别准确率较高的作为语音短指令识别模型的方法为:通过分别计算两种模型的精确度或f1度量,选取精确度或f1度量较高的模型作为语音短指令识别模型的方法,所述精确度计算如下:
[0022][0023]
所述f1度量计算如下:
[0024][0025][0026][0027]
式中,n为测试集数目,tp和fp分别表示测试集中该类所有正例被正确和错误分类的数目,而tn和fn分别表示测试集中该类所有负例被正确和错误分类的数目。
[0028]
本发明还提供一种基于轻量级深度学习的语音短指令识别系统,包括:
[0029]
短指令数据采集模块,用于采集连续不同的短指令数据并进行预处理,得到采样率一致的短指令数据;
[0030]
短指令数据分段模块,用于对采样率一致的短指令数据进行分段,得到多条短指令片段;
[0031]
梅尔语谱图及梅尔倒频谱系数获取模块,用于根据多条短指令片段得到每条短指
令片段的语谱图,根据语谱图得到梅尔语谱图,根据梅尔语谱图得到梅尔倒频谱系数;
[0032]
识别模型获取模块,用于将梅尔语谱图与梅尔倒频谱系数分别作为卷积神经网络模型的输入并进行训练,得到利用梅尔语谱图作为输入训练得到的第一模型、与利用梅尔倒频谱系数作为输入训练得到的第二模型,并选取第一模型、第二模型中识别准确率较高的模型进行语音短指令识别。
[0033]
本发明的上述技术方案相比现有技术具有以下优点:
[0034]
本发明所述的基于轻量级深度学习的语音短指令识别方法及系统,以手机实测的数据为基础,采用audacity软件将连续短指令数据手动分段为短指令片段;其次根据分帧、加窗、短时傅里叶变换得到梅尔语谱图,使用梅尔滤波器、取对数后平方、离散余弦变换操作得到梅尔倒频谱系数特征;最后将梅尔语谱图和梅尔倒频谱系数作为输入,使用卷积神经网络进行分类识别。通过本发明的方法,不需要进行降噪操作便可以对短指令做到自动识别的效果,本发明可用来实现智能家居的声控功能,具有应用价值,使用vgg卷积神经网络可减少频谱变化,并且模拟信号中存在的频谱相关性,不再需要人工进行特征机器学习,而是模型自主学习合适的特征,易于实现、操作简单、效果较好。
附图说明
[0035]
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
[0036]
图1是本发明基于轻量级深度学习的语音短指令识别方法的流程图。
[0037]
图2是本发明使用的轻量级深度学习中vgg模型的具体框架。
具体实施方式
[0038]
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0039]
实施例一
[0040]
参照图1所示,本发明的基于轻量级深度学习的语音短指令识别方法,步骤如下:
[0041]
步骤s1:采集连续不同的短指令数据并进行预处理,得到采样率一致的短指令数据。
[0042]
在一个实施例中,所述采集连续不同的短指令数据并进行预处理,得到采样率一致的短指令数据的方法为:对连续不同的短指令数据转换为统一格式,并通过audacity软件更改为统一的采样率数值,audacity是一款免费的音频处理软件。它是在linux下发展起来的,一款遵循gnu协议的免费软件。
[0043]
步骤s2:对采样率一致的短指令数据进行分段,得到多条短指令片段。
[0044]
在一个实施例中,所述对采样率一致的短指令数据进行分段,得到多条短指令片段的方法为:
[0045]
步骤s21、通过人耳对采样率一致的短指令数据进行短指令片段选择;
[0046]
步骤s22、记录每条短指令片段选区的起始和终止采样点数据;
[0047]
步骤s23、根据起始和终止采样点依次截取每条短指令片段,得到多条短指令片段。
[0048]
步骤s3:根据多条短指令片段得到每条短指令片段的语谱图,根据语谱图得到梅尔语谱图,根据梅尔语谱图得到梅尔倒频谱系数。
[0049]
在一个实施例中,所述根据多条短指令片段得到每条短指令片段的语谱图的方法为:对多条短指令片段中的每条短指令片段进行分帧、加窗后再对每一帧进行短时傅里叶变换,得到功率谱,根据功率谱得到语谱图。
[0050]
在一个实施例中,所述加窗的窗口为汉明窗,所述汉明窗的大小为40ms、重叠部分为50%。
[0051]
在一个实施例中,所述根据语谱图得到梅尔语谱图的方法为:将语谱图通过梅尔滤波器组(mel-scale filterbanks)进行过滤,得到梅尔语谱图。
[0052]
在一个实施例中,所述根据梅尔语谱图得到梅尔倒频谱系数的方法为:计算梅尔语谱图的对数功率谱的平方,得到对数梅尔幅度谱,对对数梅尔幅度谱进行逆离散傅里叶变换,得到梅尔倒频谱系数(mel-frequency cepstral coefficients,mfccs)。
[0053]
步骤s4:选取合适的卷积神经网络作为轻量级深度学习语音短指令识别的模型,将梅尔语谱图与梅尔倒频谱系数分别作为卷积神经网络模型的输入并进行训练,分别得到利用梅尔语谱图作为输入训练得到的模型与利用卷积神经网络模型作为输入训练得到的模型,并选取两种模型识别准确率较高的作为语音短指令识别模型。
[0054]
在一个实施例中,所述卷积神经网络模型如图2所示,其为vgg神经网络,具有5层网络,分别如下:
[0055]
3个vgg块,每个vgg块组成为:1)大小为3*3,填充为1,步长为2的卷积层,2)批量归一化层,3)激活函数为relu的激活层,4)大小为3*3,填充为1,步长为2的卷积层,5)批量归一化层,6)激活函数为relu的激活层,7)2*2的最大池化层,8)概率为0.2的丢弃层;
[0056]
1个全局平均池化层;
[0057]
1个全连接层和1个概率为0.5的丢弃层;
[0058]
1个softmax回归。
[0059]
使用上述vgg卷积神经网络可减少频谱变化,并且模拟信号中存在的频谱相关性,不再需要人工进行特征机器学习,而是模型自主学习合适的特征,易于实现、操作简单、效果较好,不需要进行降噪操作便可以对短指令做到自动识别的效果。
[0060]
在一个实施例中,所述并选取两种模型识别准确率较高的作为语音短指令识别模型的方法为:通过分别计算两种模型的精确度或f1度量,选取精确度或f1度量较高的模型作为语音短指令识别模型的方法,所述精确度计算如下:
[0061][0062]
所述f1度量计算如下:
[0063][0064][0065]
[0066]
式中,n为测试集数目,tp和fp分别表示测试集中该类所有正例被正确和错误分类的数目,而tn和fn分别表示测试集中该类所有负例被正确和错误分类的数目。
[0067]
实施例二
[0068]
本实施例针对智能家居下对于电子设备的声音控制问题,提出了一种基于轻量级深度学习相结合的语音短指令识别方法。该方法使用于各种类型的语音短指令识别问题。具体过程为针对不同手机实测连续短指令数据进行手动分割短指令片段,基于语音信号预处理流程得到每个短指令片段的梅尔语谱图和梅尔倒频谱系数特征,最后将梅尔语谱图和梅尔倒频谱系数作为输入,使用5层的vgg网络进行分类识别。具体如下:
[0069]
步骤s1:对不同手机设备连续采集的短指令数据进行预处理。首先对连续短指令数据均转换为wav格式,再更改其采样率为48khz。实施例的数据来自身边40个不同年龄、不同省份的中国人,他们采用不同的手机设备录制的12种短指令的连续语音数据进行实验,分别为:开灯、关灯、打开电视、关闭电视、提高音量、降低音量、打开空调、关闭空调、制冷、制热、降低温度、提升温度。
[0070]
步骤s2:对预处理后的连续采集数据根据进行手动分段,提取每条短指令片段。首先,通过人耳对连续短指令采集数据进行短指令片段选择,再记录每条短指令片段选区的起始和终止采样点数据,最后根据起始和终止采样点依次截取每条短指令片段。实施例分割后的每个短指令片段的时长在1.0~1.3s左右。
[0071]
步骤s3:对得到的短指令片段提取参数化特征。首先对多条短指令片段中的每条短指令片段进行分帧、加窗后再对每一帧进行短时傅里叶变换,得到功率谱,其中使用窗口大小为40ms,重叠部分为50%的汉明窗加权;根据功率谱得到语谱图,将语谱图通过梅尔滤波器组(mel-scale filterbanks)进行过滤,实例中选取40个带通滤波器的梅尔滤波器组以得到满足人耳特性的梅尔语谱图,计算梅尔语谱图的对数功率谱的平方,得到对数梅尔幅度谱,对对数梅尔幅度谱进行逆离散傅里叶变换,得到梅尔倒频谱系数(mel-frequency cepstral coefficients,mfccs),实例中梅尔频率维度为128。上述得到的梅尔语谱图和梅尔倒频谱系数就是能描述不同语音短指令信号时频特征的参数化特征。具体内容为:
[0072]
步骤s4:将梅尔倒频谱系数及梅尔语谱图分别作为输入使用轻量级深度学习方法进行短指令的分类识别。首先选取合适的网络作为轻量级深度学习语音短指令识别的模型,最终选定vgg网络;其次设计好vgg框架、损失函数及优化学习算法,设置好批量大小、模型迭代次数等参数;最后将每个短指令片段的梅尔倒频谱系数向量和梅尔语谱图分别作为输入加入到vgg模型中进行训练,分别得到利用梅尔语谱图作为输入训练得到的模型与利用卷积神经网络模型作为输入训练得到的模型,并选取两种模型识别准确率较高的作为语音短指令识别模型。
[0073]
具体地,vgg架构为一个5层网络,输入是一个40*k*1的矩阵,其中k表示每个短指令片段的帧数;
[0074]
3个vgg块,每个vgg块组成为:1)大小为3*3,填充为1,步长为2的卷积层,2)批量归一化层,3)激活函数为relu的激活层,4)大小为3*3,填充为1,步长为2的卷积层,5)批量归一化层,6)激活函数为relu的激活层,7)2*2的最大池化层,8)概率为0.2的丢弃层;
[0075]
1个全局平均池化层;
[0076]
1个全连接层和1个概率为0.5的丢弃层;
[0077]
1个softmax回归。
[0078]
采用精确度accuracy、f1度量进行评估,定义分别如下:
[0079][0080][0081]
式中,precision和recall分别定义如下:
[0082][0083][0084]
式中,n为测试集数目,tp和fp分别表示测试集中该类所有正例被正确和错误分类的数目,而tn和fn分别表示测试集中该类所有负例被正确和错误分类的数目。
[0085]
本实例进行了40次语音分类实验,每次实验将39个测试者的指令样本作为训练集,剩余1个测试者作为测试集,并对测试集的分类结果进行性能评估。表1和2分别给出了基于传统机器学习和轻量级深度学习的短指令识别结果,由表可知,基于轻量级深度学习的短指令识别性能优于传统机器学习。与梅尔倒频谱系数相比,梅尔语谱图作为特征输入vgg网络的识别效果更好,其中最高的准确率和f1度量分别为0.84
±
0.157和0.84
±
0.157,说明本发明方法性能良好,适用于语音短指令识别分析。
[0086]
表1基于传统机器学习的短指令识别准确率和f1度量
[0087][0088]
表2基于轻量级深度学习的短指令识别准确率和f1度量
[0089][0090]
综上所述,本发明的方法以手机实测的数据为基础,采用audacity软件将连续短指令数据手动分段为短指令片段;其次根据分帧、加窗、短时傅里叶变换得到梅尔语谱图,使用梅尔滤波器、取对数后平方、离散余弦变换操作得到梅尔倒频谱系数特征;最后将梅尔语谱图和梅尔倒频谱系数作为输入,使用卷积神经网络进行分类识别。通过本发明的方法,不需要进行降噪操作便可以对短指令做到自动识别的效果。因此,本发明可用来实现智能
家居的声控功能,具有应用价值。
[0091]
实施例三
[0092]
基于同一发明构思,本实施例提供了一种基于轻量级深度学习的语音短指令识别系统,其解决问题的原理与所述基于轻量级深度学习的语音短指令识别方法类似,重复之处不再赘述。
[0093]
本实施例提供了一种基于轻量级深度学习的语音短指令识别系统,包括:
[0094]
短指令数据采集模块,用于采集连续不同的短指令数据并进行预处理,得到采样率一致的短指令数据;
[0095]
短指令数据分段模块,用于对采样率一致的短指令数据进行分段,得到多条短指令片段;
[0096]
梅尔语谱图及梅尔倒频谱系数获取模块,用于根据多条短指令片段得到每条短指令片段的语谱图,根据语谱图得到梅尔语谱图,根据梅尔语谱图得到梅尔倒频谱系数;
[0097]
识别模型获取模块,用于将梅尔语谱图与梅尔倒频谱系数分别作为卷积神经网络模型的输入并进行训练,得到利用梅尔语谱图作为输入训练得到的第一模型、与利用梅尔倒频谱系数作为输入训练得到的第二模型,并选取第一模型、第二模型中识别准确率较高的模型进行语音短指令识别。
[0098]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0099]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0100]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0101]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0102]
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1