1.本发明涉及语音识别技术领域,具体涉及一种噪声环境下在线指令词语音识别方法及系统。
背景技术:2.语音识别是一种使机器识别或者理解外界语音输入的一种技术,该技术是实现人与机器更进一步交互的基础,只有机器能够识别出输入语音才有可能进一步理解识别出来的内容并且做出相应的反馈。目前语音识别技术的发展前景非常广阔,作为智能挖掘机器人开发的一个方向,可以辅助驾驶员操控智能挖掘机器人,降低对智能挖掘机器人的操作难度,具有广泛的应用前景。
3.近年来深度学习的快速发展,吸引了许多研究者投入精力研究。相关技术被应用到语音识别领域,使得语音识别正确率和计算速度都得到了较大地提升。但是最近几年语音识别在孤立词方面所做的工作较少,且使用的方法都是基于序列推理的方式,这种方式可以应对无噪声环境下的语音识别,但是在噪声环境下效果就不太理想。在智能挖掘机器人的语音识别任务中,噪声是不平稳的,随时可能出现,且可能出现不同的噪声,比如前一时间段智能挖掘机器人在转动驾驶舱,下一时间段智能挖掘机器人开始伸缩大臂,这样的噪声干扰加入到指令词语音信号中,能够很大程度上干扰序列推理模型,如果当前帧的噪声比较大,大概率干扰当前帧的预测输出,进而使得后续的推理全部失败。
技术实现要素:4.鉴于以上问题,本发明提出一种噪声环境下在线指令词语音识别方法及系统,用以解决现有的序列推理模型对于噪声环境下的指令词语音识别效果较差的问题。
5.根据本发明一方面,提出一种噪声环境下在线指令词语音识别方法,该方法包括下述步骤:
6.步骤一、对实时输入的未知声音信号进行预处理,所述预处理包括高频补偿和分帧处理;
7.步骤二、对经过预处理的未知声音信号进行特征提取,获取mfcc特征向量;
8.步骤三、将所述mfcc特征向量输入训练好的cnn二分类网络模型,识别获得所述未知声音信号为语音还是噪音;
9.步骤四、当识别所述未知声音信号为语音时,将该语音对应的mfcc特征向量进行拼接,计算获得mfcc特征图;将mfcc特征图输入训练好的cnn多分类网络模型对该语音进行识别,获得该语音的识别结果。
10.进一步地,步骤一中利用一阶fir高通滤波器实现所述高频补偿;所述分帧处理为将未知声音信号分成多个短时的语音段,每个语音段称为一帧信号。
11.进一步地,步骤三的具体过程包括:
12.建立数据缓存区用于存储多帧信号对应的mfcc特征向量;
13.每次新的一帧信号对应的mfcc特征向量进入数据缓存区时,则舍弃最开始进入的一帧信号对应的mfcc特征向量;
14.将数据缓存区中存储的多帧信号对应的mfcc特征向量进行拼接,计算获得mfcc特征图;
15.将所述mfcc特征图输入训练好的cnn二分类网络模型,识别获得所述多帧信号为语音还是噪音,若为语音,则继续对实时输入的、经过预处理的未知声音信号对应的mfcc特征向量按照上述步骤进行处理;若为噪音,则继续等待。
16.进一步地,步骤四中所述cnn多分类网络模型训练过程中引入激活向量作为cnn多分类网络模型结构中最后一层softmax运算的输入向量,训练过程包括:在根据训练集数据训练获得cnn多分类网络模型之后,将训练集数据输入模型中计算每个类别的激活向量,对于每个类别,使用该类别的激活向量拟合出对应的gmm函数。
17.进一步地,步骤四中将mfcc特征图输入训练好的cnn多分类网络模型对该语音进行识别,获得该语音的识别结果的具体过程包括:将mfcc特征图输入训练好的cnn多分类网络模型,首先计算获得mfcc特征图所属的概率最大的已知类别k,然后计算获得所述mfcc特征图对应的激活向量,然后将所述激活向量代入已知类别k在训练过程中拟合得到的gmm函数中进行计算,判断所述mfcc特征图对应的语音属于未知类别还是已知类别k,当计算得到的函数值大于预设超参数阈值时,判断所述mfcc特征图对应的语音属于上述已知类别k,否则属于未知类别。
18.根据本发明另一方面,提出一种噪声环境下在线指令词语音识别系统,该系统包括:
19.预处理模块,用于对实时输入的未知声音信号进行预处理,所述预处理包括高频补偿和分帧处理;其中,所述分帧处理为将未知声音信号分成多个短时的语音段,每个语音段称为一帧信号;
20.特征提取模块,用于对经过预处理的未知声音信号进行特征提取,获取mfcc特征向量;
21.二分类模块,用于将所述mfcc特征向量输入训练好的cnn二分类网络模型,识别获得所述未知声音信号为语音还是噪音;
22.语音识别模块,用于当二分类模块识别所述未知声音信号为语音时,将该语音对应的mfcc特征向量进行拼接,计算获得mfcc特征图;将mfcc特征图输入训练好的cnn多分类网络模型对该语音进行识别,获得该语音的识别结果。
23.进一步地,所述预处理模块中利用一阶fir高通滤波器实现高频补偿。
24.进一步地,所述二分类模块中识别获得所述未知声音信号为语音还是噪音的具体过程包括:
25.建立数据缓存区用于存储多帧信号对应的mfcc特征向量;
26.每次新的一帧信号对应的mfcc特征向量进入数据缓存区时,则舍弃最开始进入的一帧信号对应的mfcc特征向量;
27.将数据缓存区中存储的多帧信号对应的mfcc特征向量进行拼接,计算获得mfcc特征图;
28.将所述mfcc特征图输入训练好的cnn二分类网络模型,识别获得所述多帧信号为
语音还是噪音,若为语音,则继续对实时输入的、经过预处理的未知声音信号对应的mfcc特征向量按照上述步骤进行处理;若为噪音,则继续等待。
29.进一步地,所述语音识别模块中所述cnn多分类网络模型训练过程中引入激活向量作为cnn多分类网络模型结构中最后一层softmax运算的输入向量,训练过程包括:在根据训练集数据训练获得cnn多分类网络模型之后,将训练集数据输入模型中计算每个类别的激活向量,对于每个类别,使用该类别的激活向量拟合出对应的gmm函数。
30.进一步地,所述语音识别模块中将mfcc特征图输入训练好的cnn多分类网络模型对该语音进行识别,获得该语音的识别结果的具体过程包括:将mfcc特征图输入训练好的cnn多分类网络模型,首先计算获得mfcc特征图所属的概率最大的已知类别k,然后计算获得所述mfcc特征图对应的激活向量,然后将所述激活向量代入已知类别k在训练过程中拟合得到的gmm函数中进行计算,判断所述mfcc特征图对应的语音属于未知类别还是已知类别k,当计算得到的函数值大于预设超参数阈值时,判断所述mfcc特征图对应的语音属于上述已知类别k,否则属于未知类别。
31.本发明的有益技术效果是:
32.本发明可以有效拒绝非指令词语音,实现噪声环境下指令词语音的准确识别。针对噪声环境下的指令词语音识别,本发明利用cnn分类模型,创造性地将语音识别问题转换成图像识别问题进行处理,这样就抛弃了一般语音识别方法所用的序列推理,仅识别图像的特征,有效提高了识别准确率。
33.进一步地,对于在线使用,即针对需要实时检测是否有语音输入的问题,本发明设计了一个基于cnn的二分类网络模型,有效解决了在线语音端点检测的问题,能够准确将语音信号识别出来,将其作为输入信号用于后续识别。
34.进一步地,针对开集识别问题,本发明提出了基于激活向量输入分类判断方法,该方法使用cnn网络的激活向量作为判断依据,准确地实现了未知类别语音和指令词语音的分类,很好的解决了开集识别问题。
附图说明
35.本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。
36.图1为本发明一种噪声环境下在线指令词语音识别方法的流程图;
37.图2为本发明中mfcc热度(特征)图;其中,图(a)为不同指令词语音的mfcc热度图,(a1)为前进,(a2)为后退,(a3)为左转;图(b)为相同指令词语音的mfcc热度图,(b1)为左转指令1,(b2)为左转指令2;
38.图3为本发明中在线语音端点检测流程图;
39.图4为本发明中cnn二分类网络在线语音端点检测示意图;
40.图5为本发明中基于激活向量的模型训练示意图;
41.图6为本发明中基于激活向量的输入分类判断过程图;
42.图7为本发明实施例中不同方法效果对比图;
43.图8为本发明一种噪声环境下在线指令词语音识别系统的结构示意图。
具体实施方式
44.为了使本技术领域的人员更好地理解本发明方案,在下文中将结合附图对本发明的示范性实施方式或实施例进行描述。显然,所描述的实施方式或实施例仅仅是本发明一部分的实施方式或实施例,而不是全部的。基于本发明中的实施方式或实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式或实施例,都应当属于本发明保护的范围。
45.cnn没有依赖序列推理的思想,且对噪声具有一定的容限能力。基于此特性,本发明利用cnn分类模型,将指令词语音识别问题转变成图像识别问题进行处理,有效解决了一般序列推理方式存在的弊端,实现了良好的噪声下指令词语音识别效果。此外,针对模型挖掘机器人应用,考虑在线语音端点检测和开集识别,本发明提出使用cnn建立二分类网络区分语音和噪声以及基于激活向量的分布函数来判断未知类别的拒绝,解决开集识别问题。
46.如图1所示,一种基于cnn的噪声环境下在线指令词语音识别方法的具体步骤如下:
47.步骤一:语音信号的预处理
48.语音输入到语音采集设备时,会经过空气的传输衰减高频成分,所以首先需要将语音信号进行高频补偿。其次,人类发出的语音是一种非平稳信号,但是在短时间内可以认为是平稳的,即在一个非常短的时间范围内能够保证语音信号的统计参数稳定,因此还需要对语音序列进行分帧处理。
49.对于高频补偿,本发明使用一阶fir高通滤波器实现,滤波器表达式为:
50.y(n)=x(n)-ax(n-1)
51.其中,x(n)是输入语音序列中的第n个时刻的语音采样值,y(n)是经过fir高通滤波器后的语音信号,a是预加重系数,一般选取为0.98。
52.对于分帧处理,需要将语音信号人为的分成多个短时的语音段,这些语音段称为分析帧。本发明中使用的语音信号为1秒,每一帧信号为25毫秒。
53.步骤二:语音信号的特征提取
54.对经过预处理的语音信号进行特征提取,本发明选择提取语音信号的梅尔倒谱系数(mel-scale frequency cepstral coefficient,mfcc)特征,将分帧处理后的mfcc特征向量拼接成mfcc热度图。如图2所示,图(a)为不同指令词语音的mfcc热度图;图(b)为相同指令词语音的mfcc热度图。从图2中可以看到,不同指令词语音的mfcc特征图差异很大,而相同指令词语音的mfcc特征图非常相近,可以将其理解为图片识别问题中的同种类别物体的图片,因此可以将指令词语音识别问题转换为图像识别问题。
55.步骤三:在线语音端点检测
56.由于智能挖掘机器人的指令词语音识别算法需要在线使用,在线语音识别时需要一直检测是否有语音输入,直到判断有语音输入时,然后采集语音信号,最后代入训练完成的模型中进行识别。在噪声环境下,本发明使用cnn实现的二分类网络进行识别,判断输入为语音还是噪声,如果是语音则采集接下来的信号作为语音输入,进行后续的语音识别;如果为噪声,则继续等待,直到有语音输入。实现流程如图3所示,建立数据缓存区,数据缓存区的大小能够存储4帧语音数据,对4帧数据计算mfcc特征图,然后将4帧数据计算出的mfcc特征当做图片输入cnn网络中,对应的两个输出为“语音”和“噪声”。当二分类网络训练完成
后,对于外界信号输入,将其代入到二分类网络,当判断为“语音”时,读取1秒时长的麦克风输入数据,代入训练好的模型进行识别。更加详细的过程如图4所示,数据缓存区始终存储4帧数据,每次新的一帧数据进入时,则舍弃数据缓存区中最开始的一帧,然后计算mfcc特征图代入二分类网络中进行判别是否为语音。如果是语音,则继续采集输入数据和数据缓存区的信号组成1秒时长的输入,这样做的好处是防止将数据缓存区的语音信号丢失,从而导致后续指令词语音识别不准确。需要指明的是,这里的一帧数据是25毫秒。
57.步骤四:开集识别
58.对于一个特定的识别问题,常用的识别方法是闭集识别,即假定输入的待测样本一定属于已知的数据库。但在实际中,测试样本中常常含有未知样本,如果继续使用闭集识别系统,系统将错误地将来自未知类的测试样本识别为属于已知闭合集类之一,导致正确率下降。因此,本发明在线语音识别需要引入开集识别,开集识别的目标是正确划分类别且正确拒绝其他未知类别。
59.将在线语音端点检测后的含噪声语音输入进行特征提取,得到mfcc特征图,然后把其当作图像识别问题代入到cnn网络中进行识别。为了拒绝未知指令输入,本发明引入激活向量作为判断依据,激活向量是cnn结构中最后一层softmax运算的输入向量。通过激活向量,便可判断出输入语音属于指令词还是未知输入,从而解决开集识别问题。每条指令词语音的时长为1秒,语音数据的采样频率为44100hz。
60.使用激活向量处理开集识别问题模型结构如图5所示,训练集训练模型完成后,将训练集代入训练完成后的模型计算每个类别的激活向量,然后对于每个类别,使用该类别的激活向量拟合出对应的gmm,这里相当于使用gmm拟合出每一个类别的激活向量分布的概率密度函数。其整体过程如图6所示,先计算出输入在cnn模型中属于类别k概率最大,然后再借助输入在模型中计算出来的激活向量来判断输入是否为未知类别,这里的依据是未知类别输入经过cnn模型后映射出的激活向量和已知类别的激活向量距离较远。具体做法是,将计算出的激活向量代入类别k对应的gmm中,计算出结果。这里有一个超参数需要设置,即图6中所示的阈值,当激活向量代入gmm中计算出的函数值大于阈值,判别输入是类别k,否则被判别为未知类别。
61.利用实验验证本发明的技术效果。
62.实验用到的数据集分为训练集和测试集,训练集完全由含噪声的指令词语音样本组成,有三类含噪声指令词语音样本,其对应的指令词分别为“前进”、“后退”、“左转”,每种含噪声指令词语音样本为30个,共90个:测试集同样有“前进”、“后退”、“左转”这三类含噪声指令词语音样本,每种指令词语音样本为6个,共18个,另外还有50个非上述指令词测试样本。在训练模型完成后,将训练集重新代入模型中计算激活向量,其中类别k对应的激活向量集合开始是空集,当训练数据的真实标签是k且代入模型预测也为类别k时,将该训练数据对应的激活向量加入类别k对应的激活向量集合中,这样可以计算出“前进”、“后退”、“左转”三个类别分别对应的三个激活向量集合。然后根据每个类别各自对应的激活向量集合计算出对应的gmm。训练结束后,使用测试集检测训练结果。
63.对于cnn模型中使用的参数,cnn模型的输入是指令词语音经过计算后的mfcc特征图,特征图的维度为13
×
99,第一个卷积层的通道数为16,第二个卷积层的通道数为32,两个卷积层的卷积窗口的大小都是5
×
5,这样是为了捕捉更大范围的特征,两个卷积层的卷
积窗口的移动步长为1,两个卷积层的池化窗口的大小为2
×
2,池化窗口的移动步长为1。经过两个卷积层的运算,输出再经过拼接后得到的列向量的维度为32
×
11
×
97。整个训练的损失函数是交叉熵损失函数。
64.实验结果如图7所示,对比其他方法,如阈值法和未知类法,本发明基于激活向量的方法对指令词的识别正确率达到0.94,对非指令词的拒绝率达到0.98;对于阈值法,指令词的识别正确率为0.7,非指令词的拒绝率为0.42;对于未知类法,指令词和非指令词的识别正确率均为0.96。虽然在开集识别中,未知类法同样有优异的识别率,但是该方法需要大量未知指令作为“未知类”进行训练,导致模型参数量大量增加和所用模型训练时间过长。因此本发明提出的方法效果理想,识别正确率高,能够有效实现指令词的识别和非指令词的拒绝。
65.本发明基于cnn提出了一种在噪声环境下的在线指令词语音识别方法,能够有效解决噪声环境下指令词语音识别的准确性和开集识别问题。其具有如下特点:所用设备为智能挖掘机器人;处理的噪声为智能挖掘机器人的工作时的各类噪声;所用指令词为“前进”、“后退”、“左转”、“右转”和“停止”;所解决的问题为噪声环境下的指令词语音识别和开集识别问题。
66.本发明另一实施例提供一种噪声环境下在线指令词语音识别系统,如图8所示,该系统包括:
67.预处理模块110,用于对实时输入的未知声音信号进行预处理,预处理包括高频补偿和分帧处理;其中,分帧处理为将未知声音信号分成多个短时的语音段,每个语音段称为一帧信号;
68.特征提取模块120,用于对经过预处理的未知声音信号进行特征提取,获取mfcc特征向量;
69.二分类模块130,用于将mfcc特征向量输入训练好的cnn二分类网络模型,识别获得未知声音信号为语音还是噪音;
70.语音识别模块140,用于当二分类模块识别未知声音信号为语音时,将该语音对应的mfcc特征向量进行拼接,计算获得mfcc特征图;将mfcc特征图输入训练好的cnn多分类网络模型对该语音进行识别,获得该语音的识别结果。
71.其中,预处理模块110中利用一阶fir高通滤波器实现高频补偿。二分类模块130中识别获得未知声音信号为语音还是噪音的具体过程包括:建立数据缓存区用于存储多帧信号对应的mfcc特征向量;每次新的一帧信号对应的mfcc特征向量进入数据缓存区时,则舍弃最开始进入的一帧信号对应的mfcc特征向量;将数据缓存区中存储的多帧信号对应的mfcc特征向量进行拼接,计算获得mfcc特征图;将mfcc特征图输入训练好的cnn二分类网络模型,识别获得多帧信号为语音还是噪音,若为语音,则继续对实时输入的、经过预处理的未知声音信号对应的mfcc特征向量按照上述步骤进行处理;若为噪音,则继续等待。
72.其中,语音识别模块140中cnn多分类网络模型训练过程中引入激活向量作为cnn多分类网络模型结构中最后一层softmax运算的输入向量,训练过程包括:在根据训练集数据训练获得cnn多分类网络模型之后,将训练集数据输入模型中计算每个类别的激活向量,对于每个类别,使用该类别的激活向量拟合出对应的gmm函数。
73.语音识别模块140中将mfcc特征图输入训练好的cnn多分类网络模型对该语音进
行识别,获得该语音的识别结果的具体过程包括:将mfcc特征图输入训练好的cnn多分类网络模型,首先计算获得mfcc特征图所属的概率最大的已知类别k,然后计算获得mfcc特征图对应的激活向量,然后将激活向量代入已知类别k在训练过程中拟合得到的gmm函数中进行计算,判断mfcc特征图对应的语音属于未知类别还是已知类别k,当计算得到的函数值大于预设超参数阈值时,判断mfcc特征图对应的语音属于上述已知类别k,否则属于未知类别。
74.本实施例所述一种噪声环境下在线指令词语音识别系统的功能可以由前述一种噪声环境下在线指令词语音识别方法说明,因此本实施例未详述部分可参见以上方法实施例,在此不再赘述。
75.尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。