一种基于神经网络模型的语音识别方法与流程
2021-01-28 12:01:03|275|起点商标网
[0001]
本发明涉及语音识别领域,具体是一种基于神经网络模型的语音识别方法。
背景技术:
[0002]
当今世界的人们已经对机器的运用与依赖已经到了一个极高的程度,在此基础上,人们也开始更渴望对机器进行更直观更简便地操作以完成自己的目的,若是能够直接采取声音传播的形式,直接控制机器来帮助自己完成想要做的事情,会使很多事情事半功倍,于是语音识别技术运营而生。语音识别技术其本质就是对声音中蕴含的信息进行处理和分类,人们可以通过语音识别,令机器获得声音中蕴含的信息。该项技术的诞生使得一些对机器的操作命令得到了简化,使得人的双手得到解放,极大地便利了我们的生活和工作。神经网络是属于机器学习的一个重要分支,它在与传统的机器学习相比,有着更深的自我学习深度。机器学习的过程,本身就是模仿人脑中神经元之间信息的传递过程,深度学习提高了机器模仿脑神经工作的相似度,大大加深了机器学习的能力。
[0003]
对于语音识别,其过程比起一般的分类更加复杂,所以简单的全连接网络配合bp算法已经无法达到要求。语音识别作为时序处理问题中的典范,语音识别更加关注时序信息的处理,导致卷积神经网络在该领域并未体现出较高的识别正确率;使用具有时序处理能力的循环神经网络具有较好的识别正确率上,但是,由于其循环计算方式较复杂,导致训练时间普遍较长,从学习效率来看该网络存在一定的不足。
技术实现要素:
[0004]
本发明的目的在于克服现有技术的神经网络语音识别性能较差的不足,提供了一种基于神经网络模型的语音识别方法,将卷积神经网络和循环神经网络有效的组合连接,能够在保证语音识别正确率的同时,增加网络整体的学习效率和鲁棒性,提高语音识别性能。
[0005]
本发明的目的主要通过以下技术方案实现:
[0006]
一种基于神经网络模型的语音识别方法,包括:获取训练样本合集,对训练样本合集进行预处理,并将训练样本合集转换为mfcc特征参数矩阵;提取训练样本合集的第一特征参数,将第一特征参数输入神经网络进行训练,比较神经网络的输出值与原信号标签的误差;不断更新神经网络内部的权重和偏置从而获得可以用于识别的神经网络模型,并建立模板库,所述模板库包括不同语音的第一特征参数;获取预测样本合集,对预测样本合集进行预处理,将预测样本合集转换为mfcc特征参数矩阵,并输入神经网络模型,通过神经网络模型对预测样本合集进行特征提取获得第二特征参数,将第二特征参数与模板库中的第一特征参数进行匹配预测,选择匹配相似度高的,获得在模板库中与第二特征参数对应的第一特征参数,获得识别结果;其中,所述神经网络包括依序设置的卷积神经网络和循环神经网络,卷积神经网络对输入的数据进行卷积,提取特征参数中的局部特征,同时减少频域变化,再将特征图送入循环神经网络中。
[0007]
循环神经网络网络具备时序信息处理的能力,非常适合语音识别的任务;卷积神经网络通过卷积计算进行特征总结,有着极高的学习效率,本技术方案将两种网络结合搭建组合网络,先利用卷积神经网络进行特征总结、简化数据,再用循环神经网络网络处理时序信息,最后再进行分类,可以在保证识别正确率的同时提高学习效率和鲁棒性。优选的,训练样本合集分批输入神经网络,神经网络训练训练样本合集100次,每经历一次完整训练保存一次神经网络模型,并记录损失值绘画损失曲线,以最后一次训练获得的神经网络模型为最终的神经网络模型。本技术方案中对训练样本合集和预测样本合集进行预处理过程包括预加重、分帧、加窗和短时傅里叶变换等处理,并根据mfcc特征参数计算原理,利用python下的第三方库将语音信号转换为26维的mfcc特征参数矩阵。需要说明的是,本技术方案的mfcc是指梅尔频率倒谱系数,梅尔频率是基于人耳听觉特性提出来的,它与hz频率成非线性对应关系。本技术方案中进行匹配预测,选择匹配相似度高的,获得在模板库中与第二特征参数对应的第一特征参数,所述选择匹配相似度高的指达到预设的匹配度的,即将模板库中与第二特征参数达到预设的匹配度的第一特征参数作为识别结果,本技术方案中将模板库中达到预设的匹配度的第一特征参数转化为识别结果为现有常规技术手段。
[0008]
进一步的,采用次词序列作为标签来源,对训练样本的翻译文件进行处理,使其成为神经网络训练的标签,具体为:将所有翻译文件中的文字集合,去除重复的词,最后根据词重复出现的次数进行排序,每个词对应的序列即为该词的对应字向量,该字向量将作为神经网络训练的标签参与训练;将字向量转换为文字获得识别结果。
[0009]
对于神经网络来说,训练的过程需要标签来进行权重和偏置的更新,所以在该部分还需要对音频的翻译文件进行处理,使其成为神经网络训练的标签。标签的选取数据集提供了两种来源,分别是音素和词序列,本技术方案采用次词序列作为标签来源。转换的基本思路是将所有翻译文件中的文字集合,去除重复的词,翻译文件内已将句子拆分为词,最后根据词重复出现的次数进行排序,每个词对应的序列即为该词的对应向量,该向量将作为神经网络训练的标签参与训练。为了使得标签更加简洁,字向量采用了稀疏表示的方式。同时,在最后的测试阶段,也需要将字向量转换为文字获得测试结果。
[0010]
进一步的,将预测样本合集分批次输入神经网络模型,每批样本数为1。
[0011]
发明人在研究过程中发现,为了减少训练时间,充分发挥计算机的gpu计算能力,数据输入是分批进行的。在计算能力满足的情况下,每批样本的个数越多,学习的效率会越高,所花的时间就越少。但正是这样的方式导致了最后识别结果出现了多字问题:假设所有样本均时长为t,梅尔频率倒谱系数为26,每批次进入网络训练的样本数为4,那么每批输入数据在形式上是一个(4,t,26)的三维输入矩阵,由于三维数据与全连接层是无法直接连接的,所以要将其转化为(4
×
t,26)的二维矩阵,这样的转换相当于将4段语音连接为1段语音进行训练,中为了控制每批数据进入网络训练时的时序长度相同,对于较短的数据进行了补零处理,这导致连接后的语音之间存在一定时长的0序列,而对神经网络来说,它在训练时是无法自主分割这四段语音的,所以在训练时这些0序列也被当做语音内容进行训练,并导致最后测试阶段4段语音之间出现了多字现象。为了解决这一问题,发明人尝试了两种方法,第一种是直接缩减训练时每批样本数为1,也就是将语音分别进行网络训练,这从本质上杜绝了多字现象的发生,但是这样的方式大大降低了学习效率,需要消耗更多的训练时间;第二种方式是不改变训练过程,而是缩减预测时每批样本数为1,虽然这种方式令多字
的情况仍然保留在模型里,但是预测时可以巧妙的避开:在预测时,主要借助的是ctc解码器,该解码器配合ctc损失函数可以解决语音序列与文字序列对齐的问题;倘若预测时每批样本数仍为4,当解码进行到第一段语与第二段语音的连接处时,对第一段语音的解码已经完成但是由于语音序列还未结束,继续解码会出现模型中保存的多字现象;但是若把预测时的每批样本数改为1,第一段语音解码完成后语音序列也结束了,解码随即结束,多字现象就被隐藏在模型中无法显示,这样就能巧妙的解决这个问题。发明人发现对循环神经网络缩减测试时的batch size可以避免多字情况的发生,对卷积神经网络缩减训练时的batch size,可以在保证学习效率的同时提高正确率。
[0012]
进一步的,所述卷积神经网络包括依序连接的第一卷积层、池化层和第二卷积层:第一卷积层为256个大小为1
×
9的过滤器,横向步长设置为2,通道设置为1;池化层为大小为1
×
3的最大池化层,步长设置为1;第二卷积层为512个大小为1
×
4的过滤器,横向步长设置为1,通道设置为128。
[0013]
发明人在研究过程中发现,卷积神经网络识别效率最低,其最主要的原因,在于卷积核的深度,即过滤器的个数;过滤器卷积后的结果称为特征图,一个过滤器卷积后对应生成一个特征图。特征图可以理解为过滤器从原始数据中提取的特征分类,所以特征图的个数越多,代表特征分类越细致,那么该网络的拟合能力就会越好。本技术方案将卷积神经网络中两层卷积的过滤器个数从128和256扩充为256和512,通过增加过滤器个数的方式从而增强特征分类能力,其他参数均不改变。通过这一改进,发明人发现,现改进后的卷积神经网络在性能指标上有着明显的提升,模型已经基本可以对句子原意进行复现,在wer和ser两项上甚至接近了现有的循环神经网络,这说明增加卷积神经网络的特征分类能够有效的提高语音识别的识别率,逐渐克服其无法关注时序信息的缺点。另外,虽然增加了卷积神经网络的网络复杂度,但是运算时间并未增加多少,这再次证明了卷积神经网络的局部特征总结方式有着更高的效率,倘若能够获得有效的卷积参数设置,该类网络一定能大大提升模型的学习效率。
[0014]
进一步的,在循环神经网络中,对每一层网络均设置droptout参数,且dropout=5%。
[0015]
神经网络的训练过程其实类似由数据拟合函数曲线的过程,容易出现过拟合现象。为了防止模型的过度拟合,本技术方案对于神经网络设置dropout参数,dropout的实质就是某一层网络在训练过程中随机的丢弃部分节点,丢弃的部分神经元在本次训练中将不参与计算,本技术方案每一层网络均设置dropout=5%,并且对每一层网络均设置droptout。
[0016]
需要说明的是,本技术方案中的droptout是指深度学习训练过程中,对于神经网络训练单元,按照一定的概率将其从网络中移除。
[0017]
进一步的,所有使用激活函数的节点均采用relu函数,截断值设置为20,其数学表达式如下:
[0018][0019]
本技术方案采用relu函数,具有缓解梯度消失、收敛速度快、防止过拟合等优点,能有效提升神经网络性能。
[0020]
进一步的,所述循环神经网络还包括一层隐藏层,所述隐藏层与卷积神经网络的隐藏层结构相同,但在时序上传播方向相反,每一个神经元的输入包括了输入层的输出和下一时刻该神经元的输出。
[0021]
本技术方案在循环神经网络设置隐藏层,使循环神经网络具有拆分双循环结构,通过拆分双循环的结构,独立计算可以避免时序前后信息相互矛盾的影响
[0022]
优选的,输入数据在原有的基础上进行扩充(未扩充的输入矩阵),一段时长为t,mel系数为26的语音将生成[t,26]的mfcc输入矩阵,现需要考虑时刻前后的影响,将t
x
时刻26个mfcc参数扩充为从t
x-9
到t
x+9
共19个时刻494个mfcc参数的总和,即输入矩阵扩充为[t/2,494]
[0023]
进一步的,在数据输入循环神经网络后拆分输入数据:将一段时长为t的数据,扩充为从t
x-9
到t
x+9
个时刻的mfcc特征参数,从t
x-9
到t
x
时刻的mfcc特征参数封装为一个输入矩阵,设其为input1,同时将t
x
时刻到t
x+9
时刻的mfcc特征参数封装为另一个输入矩阵,设其为input2。
[0024]
本技术方案通过扩充和拆分输入数据,使得输入数据在进入网络前就包含了来自“记忆”和“未来”的有效信息,进一步配合前向传播和后向传播从而提升了识别性能,使循环神经网络的前向传播只处理时刻前的数据,后向传播只处理时刻后的信息。本技术方案中的时长为t的数据,是指时长为t的语音。需要说明的是,本技术方案中数据扩充具体如下:以一段时长为t,mel系数为26的语音信号为例,其原本的特征参数矩阵为[t,26],但是为了综合考虑时刻前后中的有利信息,将tx时刻26个mfcc参数扩充为从t
x-9
到t
x+9
共19个时刻494个mfcc参数的总和;本技术方案中input1=[t/2,260
x-9~x
],input2=[t/2,260
x~x+9
]。
[0025]
进一步的,所述循环神经网络的网络层含有2048个lstm节点,其中1024个用于正向传播,另外1024个用于反向传播;循环神经网络的全连接层的节点数为2048,其中1024个只连接input1,另外1024个只连接input2;最后一层全连接层作为输出层用于分类,其节点数对应标签个数用于分类。
[0026]
循环神经网络由于存在长距离依赖问题,无法达到理想情况下的“记忆”功能。本技术方案通过改变人工神经元的结构,利用lstm长短时网络的特性增强rnn的“记忆”能力,从而增大识别成功率。本技术方案设置2048个节点,其中1024个用于正向传播,另外1024个用于反向传播,分别模拟前向和后向传播过程:将上半层的结果输入一个含有1024个lstm的循环神经网络,只进行前向传播;现要求下半层的结果只进行后向传播,由于传统的循环神经网络层均是前向传播的方式,所以不能直接输入数据。解决方式是在输入前将下半层的结果反转,以倒序的形式输入含有1024个lstm的循环神经网络中,用倒序的输入数据进行前向传播,模拟了循环网络中后向传播的过程,之后将后向传播的结果再反转,恢复其本来的时间序列顺序,再将该结果与前向传播的结果直接连接,输入全连接层进行分类。通过这一设置,使循环神经网络在wer和编辑距离上只有微弱的提升,但是在ser上有着较大提升,这说明模型整体确实得到了优化。此外,根据实验结果分析,虽然卷积循环网络受时刻前后信息的相互影响,但是鉴于双循环的优势,这种影响已经被极大的降低,这证明模型从时序中获取信息带来的效益远大于受到的影响。新的网络搭建策略通过拆分输入数据,再拆分双向循环的网络结构,使得前向传播和后向传播分别独立地处理“过去”和“未来”的信息,这有效地去除了“未来”信息对前向传播的影响,同理也去除了“过去”信息对后向传播
的影响。实验证明这样的搭建方式提高了识别的正确率,但是由于全连接层节点数翻倍,增加了网络复杂度和计算量,使得训练时间加长。不过由于全连接层计算方式较简单,训练时间只是略微增加。综合来看,这样的改进是值得的。需要说明的是,本技术方案中的lstm指长短期记忆人工神经网络。
[0027]
进一步的,对输入的第二特征参数数隔行进行一次取样,使得输入数据减小一半。
[0028]
由于加入了隐藏层的循环神经网络输出来自于前、后向结果的拼接,相当于每一个时间序列都扩大了一倍,所以为了保证总时序不变,本技术方案对输入的特征参数隔行进行一次取样,使得输入数据减小一半,这样被忽略的那个序列可以用反向rnn生成的输出来代替,维持了序列的总长度不变。
[0029]
综上所述,本发明与现有技术相比具有以下有益效果:
[0030]
1、本发明将两种网络结合搭建组合网络,先利用卷积神经网络进行特征总结、简化数据,再用循环神经网络网络处理时序信息,最后再进行分类,可以在保证识别正确率的同时提高学习效率和鲁棒性。
[0031]
2、本发明将卷积神经网络中两层卷积的过滤器个数从128和256扩充为256和512,通过增加过滤器个数的方式从而增强特征分类能力,其他参数均不改变,通过增加卷积神经网络的特征分类能够有效的提高语音识别的识别率,逐渐克服其无法关注时序信息的缺点,大大提升模型的学习效率。
[0032]
3、本发明在循环神经网络中通过扩充和拆分输入数据,使得输入数据在进入网络前就包含了来自“记忆”和“未来”的有效信息,进一步配合前向传播和后向传播从而提升了识别性能,使循环神经网络的前向传播只处理时刻前的数据,后向传播只处理时刻后的信息。
[0033]
3、本发明通过将预测样本合集分批次输入神经网络模型,并设置每批样本数为1,避免在循环神经网络中发生多字情况,在卷积神经网络中保证学习效率的同时提高正确率。
附图说明
[0034]
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
[0035]
图1为本发明的流程图。
具体实施方式
[0036]
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
[0037]
实施例1:
[0038]
如图1所示,本实施例包括:获取训练样本合集,对训练样本合集进行预处理,并将训练样本合集转换为mfcc特征参数矩阵;提取训练样本合集的第一特征参数,将第一特征参数输入神经网络进行训练,比较神经网络的输出值与原信号标签的误差;不断更新神经网络内部的权重和偏置从而获得可以用于识别的神经网络模型,并建立模板库,所述模板
库包括不同语音的第一特征参数;获取预测样本合集,对预测样本合集进行预处理,将预测样本合集转换为mfcc特征参数矩阵,并输入神经网络模型,通过神经网络模型对预测样本合集进行特征提取获得第二特征参数,将第二特征参数与模板库中的第一特征参数进行匹配预测,选择匹配相似度高的,获得在模板库中与第二特征参数对应的第一特征参数,获得识别结果;其中,所述神经网络包括依序设置的卷积神经网络和循环神经网络,卷积神经网络对输入的数据进行卷积,提取特征参数中的局部特征,同时减少频域变化,再将特征图送入循环神经网络中。本发明将两种网络结合搭建组合网络,先利用卷积神经网络进行特征总结、简化数据,再用循环神经网络网络处理时序信息,最后再进行分类,可以在保证识别正确率的同时提高学习效率和鲁棒性。优选的,训练样本合集分批输入神经网络,神经网络训练训练样本合集100次,每经历一次完整训练保存一次神经网络模型,并记录损失值绘画损失曲线,以最后一次训练获得的神经网络模型为最终的神经网络模型。本技术方案中对训练样本合集和预测样本合集进行预处理过程包括预加重、分帧、加窗和短时傅里叶变换等处理,并根据mfcc特征参数计算原理,利用python下的第三方库将语音信号转换为26维的mfcc特征参数矩阵。
[0039]
优选的,采用次词序列作为标签来源,对训练样本的翻译文件进行处理,使其成为神经网络训练的标签,具体为:将所有翻译文件中的文字集合,去除重复的词,最后根据词重复出现的次数进行排序,每个词对应的序列即为该词的对应字向量,该字向量将作为神经网络训练的标签参与训练;将字向量转换为文字获得识别结果。
[0040]
优选的,将预测样本合集分批次输入神经网络模型,每批样本数为1。将预测样本合集分批次输入神经网络模型,并设置每批样本数为1,避免在循环神经网络中发生多字情况,在卷积神经网络中保证学习效率的同时提高正确率。
[0041]
优选的,所述卷积神经网络包括依序连接的第一卷积层、池化层和第二卷积层:第一卷积层为256个大小为1
×
9的过滤器,横向步长设置为2,通道设置为1;池化层为大小为1
×
3的最大池化层,步长设置为1;第二卷积层为512个大小为1
×
4的过滤器,横向步长设置为1,通道设置为128。将卷积神经网络中两层卷积的过滤器个数从128和256扩充为256和512,通过增加过滤器个数的方式从而增强特征分类能力,其他参数均不改变。
[0042]
优选的,在循环神经网络中,对每一层网络均设置droptout参数,且dropout=5%。通过设置dropout参数,防止模型的过度拟合。
[0043]
优选的,所有使用激活函数的节点均采用relu函数,截断值设置为20,其数学表达式如下:
[0044][0045]
优选的,所述循环神经网络还包括一层隐藏层,所述隐藏层与卷积神经网络的隐藏层结构相同,但在时序上传播方向相反,每一个神经元的输入包括了输入层的输出和下一时刻该神经元的输出。在循环神经网络设置隐藏层,使循环神经网络具有拆分双循环结构,通过拆分双循环的结构,独立计算可以避免时序前后信息相互矛盾的影响。
[0046]
优选的,在数据输入循环神经网络后拆分输入数据:将一段时长为t的数据,扩充为从t
x-9
到t
x+9
个时刻的mfcc特征参数,从t
x-9
到t
x
时刻的mfcc特征参数封装为一个输入矩阵,设其为input1,同时将t
x
时刻到t
x+9
时刻的mfcc特征参数封装为另一个输入矩阵,设其
为input2。通过扩充和拆分输入数据,使得输入数据在进入网络前就包含了来自“记忆”和“未来”的有效信息,进一步配合前向传播和后向传播从而提升了识别性能,使循环神经网络的前向传播只处理时刻前的数据,后向传播只处理时刻后的信息。
[0047]
优选的,所述循环神经网络的网络层含有2048个lstm节点,其中1024个用于正向传播,另外1024个用于反向传播;循环神经网络的全连接层的节点数为2048,其中1024个只连接input1,另外1024个只连接input2;最后一层全连接层作为输出层用于分类,其节点数对应标签个数用于分类。
[0048]
优选的,对输入的第二特征参数数隔行进行一次取样,使得输入数据减小一半。对输入的特征参数隔行进行一次取样,使得输入数据减小一半,这样被忽略的那个序列可以用反向rnn生成的输出来代替,维持了序列的总长度不变。
[0049]
验证试验:
[0050]
1、卷积神经网络中过滤器个数改变对网络性能的影响
[0051][0052]
备注:上表中的未改进的卷积神经网络两层卷积的过滤器个数分别为128和256,本发明的卷积神经网络两层卷积的过滤器个数分别为256和512。
[0053]
从上表中的数据可以看出,本发明的卷积神经网络增加过滤器个数后,在性能指标上有着明显的提升,在wer和ser两项上甚至接近了现有的循环神经网络,这说明本发明增加卷积神经网络的特征分类能够有效的提高语音识别的识别率,逐渐克服其无法关注时序信息的缺点。
[0054]
2、预测样本数对网络性能的影响
[0055][0056]
备注:上表中改进前未缩减预测样本数的方法,改进后为本发明中缩减预测时每
批样本数为1的方法。
[0057]
从上表可以看出,通过缩减预测时每批样本数为1,对最后的识别效果有很大的帮助。尤其对于性能指标中的句错误率ser提升非常大。对rnn网络和bi-rnn网络分别有83%和80%的提高,从宏观上观察,bi-rnn网络对于大多数句子基本已经可以完整复现。
[0058]
3、循环神经网络进行数据扩充、增加节点对网络性能的影响
[0059][0060]
备注:上表中改进前是指未进行数据扩充、且lstm节点和全连接层节点只有1024的循环神经网络(具有隐藏层),改进后是指进行了数据扩充、且lstm节点和全连接层节点有2048的循环神经网络(具有隐藏层)。
[0061]
从上表中可以看出,进行数据扩充的循环神经网络在wer和编辑距离上只有微弱的提升,但是在ser上有着近12%的提升,这说明模型整体确实得到了优化,通过数据扩充提高了识别的正确率。虽然由于全连接层节点数翻倍,增加了网络复杂度和计算量,使得训练时间加长;不过由于全连接层计算方式较简单,训练时间只是略微增加,对网络性能影响几乎可以忽略不计。
[0062]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除
热门咨询
tips