首页> 中国专利> 一种基于精简改进的Transformer模型的语音识别方法

一种基于精简改进的Transformer模型的语音识别方法

摘要

本发明涉及一种基于精简改进的Transformer模型的语音识别方法,属于语音识别技术领域。该方法包括如下步骤:A:将语音信号进行预处理,提取多维的mfcc Fbank;B:将提取到的Fbank特征用CNN卷积网络进行卷积;C:将卷积之后的特征输入到改进之后的Transformer网络结构中;D:将CTC损失作为声学模型的损失函数,采用Beam search算法进行预测,使用Adam优化器进行优化;E:开始训练模型使模型不断迭代优化至最优模型结构;F:模型验证。本发明在保证词错率下降的大前提之下大大的减少了模型的参数量,提升原始模型的计算速度和收敛速度,缩短模型的训练时间,有效提高了语音识别的工作效率。

著录项

  • 公开/公告号CN113823322A

    专利类型发明专利

  • 公开/公告日2021-12-21

    原文格式PDF

  • 申请/专利权人 武汉芯昌科技有限公司;

    申请/专利号CN202111247379.2

  • 发明设计人 李玮;刘鑫;吕锋;罗幼喜;

    申请日2021-10-26

  • 分类号G10L25/24(20130101);G10L25/30(20130101);G10L15/06(20130101);

  • 代理机构32200 南京经纬专利商标代理有限公司;

  • 代理人曹芸

  • 地址 430000 湖北省武汉市东湖新技术开发区金融港一路7号光谷智慧园21号楼3层301

  • 入库时间 2023-06-19 13:46:35

说明书

技术领域

本发明涉及一种基于精简改进的Transformer模型的语音识别方法,属于语音识别技术领域。

背景技术

Transformer作为一种新的深度学习算法框架,得到了越来越多研究人员的关注,成为当下的一个研究热点。Transformer模型中的自注意力机制受人类只关注于重要事物的启发,只对输入序列中重要的信息进行学习。对于语音识别任务来说,重点是把输入语音序列的信息转录为对应的语音文本。过去的做法是将声学模型、发音词典和语音模型组成语音识别系统来实现语音识别任务,而Transformer可以将声学、发音和语音模型集成到单个神经网络中形成端到端语音识别系统,解决了传统语音识别系统的强制对齐和多模块训练等问题。

语音序列问题:

研究人员将Transformer作为端到端语音识别模型,缓解了RNN(循环神经网络)作为端到端语音识别模型时无法并行计算和长期依赖问题,但是Transformer在处理输入的语音序列时,会产生两个问题。其一,Transformer中的自注意力机制是对整个输入序列并行计算。对于语音序列来说,一条输入语音序列的长度约为数千帧,输入表达内容相同的语音序列比文本序列长数十倍,并且语音序列中的各个帧的信息密度低于文本序列的单词信息密度。因此输入语音序列过长,导致Transformer计算量增加的问题。这也是Transformer模型结构参数量大的原因之一,巨大的参数使得模型收敛起来更加的困难。

深层结构问题:

具有深层网络结构的Transformer模型更容易陷入局部最优的情况,使基于Transformer的端到端语音识别模型的训练变得更加困难。其次,由于Transformer中的自注意力机制在对帧与帧之间并行计算时,具有较高的复杂度。因此深层结构的Transformer具有大量的参数和需要强大的计算能力,存在模型无法在边缘设备和嵌入式设备部署中运行的问题。需要对模型的结构进行精简和优化。

发明内容

本发明提出了一种基于精简改进的Transformer模型的语音识别方法,在保证降低词错率的大前提下,减小模型的参数量,提升模型的计算速度和收敛速度,缩短模型的训练时间,有效提高了语音识别的工作效率。

本发明为解决其技术问题采用如下技术方案:

一种基于精简改进的Transformer模型的语音识别方法,包括如下步骤:

步骤A:将语音信号进行预处理,提取多维的mfcc Fbank(梅尔频率倒谱系数滤波器组);

步骤B:将提取到的Fbank(滤波器组)特征用CNN卷积网络进行卷积;

步骤C:将卷积之后的特征输入到改进之后的Transformer网络结构中;

步骤D:将CTC(联接时间分类器)损失作为声学模型的损失函数,采用Beam search(集束搜索)算法进行预测,使用Adam(自适应动量)优化器进行优化;

步骤E:开始训练模型使模型不断迭代优化至最优模型结构;

步骤F:模型验证。

步骤A中所述语音信号进行预处理的预加重的系数取0.97。

步骤B的具体过程如下:

用CNN(卷积神经网络)进行卷积,在每一个batch_size(批尺寸)的语音数据当中选择最长的语音数据作为标准,较短的语音数据采用MASK(掩码)的操作进行补齐,统一输入到模型当中,使得输入和输出数据的语音数据长度一致。

步骤C中所述对Transformer模型进行改进具体为:

改进Transformer中残差连接的结构,用一个固定配比的系数取去替代Encoder(编码层)中残差连接F(X)+X,在选择a*F(X)+b*X合适配比中锁定在1:2到1:3之间,即2*F(X)+1*X或者3*F(X)+1*X。

步骤D中所述beam search的超参数beam size(束宽),设为k,K值确定为5;

所述Adam优化器选用的参数为:

learning_rate(学习速率)=0.001,

beta1(第一次估计的指数衰减率)=0.9,

beta2(第二次估计的指数衰减率)=0.98,

epsilon=1.0e-9。

本发明的有益效果如下:

1.降低了原始模型的词错率。

2.减少了原始模型的参数量。

3.提升原始模型的计算速度和收敛速度,缩短模型的训练时间,有效提高了语音识别的工作效率。

4.降低了模型训练的设备需求。

附图说明

图1是本发明基于精简改进的Transformer语音识别模型输入的语音特征提取流程图。

图2是Transformer模型的模型结构示意图。

图3是本发明基于精简原始的Transformer语音识别模型Add&Normalize(求和与归一化)模块中的残差链接示意图。

图4是本发明基于精简改进之后的Transformer语音识别模型Add&Normalize模块中的残差链接示意图。

图5是本发明基于精简改进的Transformer模型的语音识别模型语音识别流程图。

具体实施方式

为了更充分的解释本发明,下面结合附图和具体实施方式对本发明进行详细说明。以下实施仅用于更加清楚说明本发明的技术方案,而不能以此来限制本发明的保护范围。

本发明为了解决上述技术问题采用以下技术方案:设计了一种基于精简改进的Transformer模型的语音识别方法,用于实现对语音特征进行识别,包括如下步骤:

步骤A:将语音信号进行预处理,提取40维的mfcc Fbank(梅尔频率倒谱系数滤波器组);

步骤B:将提取到的40维Fbank(滤波器组)特征用CNN(卷积神经网络)卷积网络进行卷积;

步骤C:将卷积之后的特征输入到改进之后的Transformer网络结构中;

步骤D:将CTC(联接时间分类器)损失作为声学模型的损失函数,采用Beam search(集束搜索)算法进行预测,使用Adam(自适应动量)优化器进行优化;

步骤E:开始训练模型使模型不断迭代优化至最优模型结构;

步骤F:模型验证。

具体实施步骤如下:

步骤A:提取语音的步骤和传统提取方法并无差异,预加重的系数取0.97。梅尔滤波器的个数选择40,也就是将传统格式的wav语音数据转化成了40维度的数字特征,提取40维的mfcc Fbank,然后进入步骤B,具体语音特征提取过程参考图1(语音特征提取流程图)。

步骤B:将提取到的40维Fbank特征用CNN卷积网络进行卷积;这里选用两层卷积,第一层卷积为64组3*3步长为2的卷积核,用各卷积核组分别针对语音数据特征进行卷积处理,并针对各卷积核组所获卷积结果数据,分别加上卷积核组所对应的偏置数据,以此完成对语音数据卷积处理,第二层卷积为128组3*3步长为2的卷积核,最后卷积之后的数据,通过一个全连接层,因为在实验过程中,确定的最佳模型维度为256,全连接输出的特征为256维度,保证了输入模型的语音数据在维度上的一致性,并且在减少参数量的同时还保证了词错率没有上升,然后进入步骤C。

步骤C:本发明所做的一切改进都是在保证词错率下降这一大前提的条件下进行的。

在这一大前提下,对传统的Transformer网络结构进行改进,首先考虑对模型的参数量进行缩减,影响参数量较大的几个超参数有:模型维度,Encoder(编码层)和Decoder(解码层)的层数,注意力头数;在一个千万参数级别的模型当中,这几个超参数造成的参数量影响程度都是百万级别,在本发明中没有沿用Transformer模型中常用的6层编码层6层解码层的结构,使用的参数设置为模型维度=256,Encoder,Decoder和注意力头数=4,这一参数设置使原始模型的参数下降了近一倍,使得原始千万级别的参数变成了百万级别,更少的参数意味着本发明在端对端部署模型的情况下更占据优势。

除了修改超参数之外,我们主要是针对Transformer模型的本身结构进行了一定的改进,在保证词错率下降的大前提下,改进之后的模型在收敛速度有明显的上升,训练时长缩短,缩短了超参数修改之后模型验证需要的时间,是一种简单易用的调优技巧与手段。

拿Transformer来说,模型越深,底层收到的梯度就越低更加容易出现梯度消失和梯度爆炸的现象,在传统的方法上我们可以用Normalization(标准化)和残差连接,通过对数据的规范化和原始数据的信息增强来很好的减少这一类情况的发生,事实上,Transformer本身就包含了残差连接,其中编码器和解码器中的每一个子模块都包含了残差连接,并使用了Layer Normalization(层归一化),很好的解决了深度学习模型梯度消失和梯度爆炸的问题。

在修改模型的残差连接系数的过程中我们尝试了可调节系数和固定配比系数,单可调节系数和双可调节系数,扩大残差系数和扩大X的系数等等一系列的方法,发现残差链接中使用固定配比系数的效果是最好的,在模型的改进过程中改变了Encoder中残差链接的系数权重。

将原始的残差连接F(X)+X修改为2*F(X)+X,和3*F(X)+X,且这两者在模型收敛速度和词错率的表现上比原始的模型都有一定的提升,调节的最佳配比应该锁定在1:2到1:3之间,修改的位置在模型整体结构中的求和与归一化层,模型的整体结构如图2所示。具体修改的部位可以参考图3(原始模型残差连接图)和图4(修改模型的残差连接图)。

将经过卷积之后的特征分批次输入到模型当中,由于显存的限制,本发明在实验的过程中选择的批次较小batch_size(批尺寸)=8,这也是导致训练时长较长的主要影响因素之一。数据进入模型然后进入步骤D。

步骤D:将CTC(联接时间分类器)损失作为声学模型的损失函数,采用Beam search(集束搜索)算法进行预测,使用Adam(自适应动量)优化器进行优化;在模型训练的过程中输出打印每次迭代具体的损失,并且在训练模型的时候设置训练轮次为200个epochs,将每四十轮的模型保存下来作为验证模型是否收敛(模型能够准确预测出大部分特征,并且词错率和最终词错率相差不大时认为此时的模型达到收敛),开始训练模型进入步骤E。

选用CTC(联接时间分类器)损失函数:

与传统的声学模型训练相比,采用CTC损失函数作为损失函数的声学模型训练,是一种完全端到端的声学模型训练,不需要预先对数据对齐,只需要一个输入序列和一个输出序列即可以训练。这样就不需要对数据对齐和一一标注,输入输出之间的对准不再那么重要。因为语音数据相邻的帧与帧之间存在大量的重复帧,语音数据帧与其对应之间的标签也不算清晰明确,CTC损失函数扩展了标签集合,添加空元素。在使用扩展标签集合对序列进行标注后,所有可以通过映射函数转换为真实序列的预测序列,都是正确的预测结果。也就是在无需数据对齐处理,即可得到预测序列。其目标函数就是最大化所有正确的预测序列的概率和,这样CTC直接输出序列预测的概率,不需要外部的后处理。

采用Beam search(集束搜索)算法进行预测:

beam search是相对于greedy search(贪心算法)而言的,在翻译每个字的时候,直接选择条件概率最大的候选值作为当前最优beam search是greedy search的一个改进算法。相对greedy search扩大了搜索空间,但远远不及穷举搜索指数级的搜索空间,是二者的一个折中方案。

beam search有一个超参数beam size(束宽),设为k。在第一次搜索的时候,选取当前条件概率最大的k个词,当做候选输出序列的第一个词。之后的每一次搜索,基于上个步长的输出序列,挑选出所有组合中条件概率最大的k个,作为下一次搜索的候选输出序列。始终保持k个候选。最后从k个候选中挑出最优的。

在经过参数的修改验证,本方法中最优的K值确定为5。

步骤E:模型迭代优化,在优化的过程中选择Adam(自适应动量)优化器:

Adam(Adaptive momentum)是一种自适应动量的随机优化方法(A method forstochastic optimization),是一种较为常见的深度学习中的优化器算法,Adam与经典的随机梯度下降法是不同的。随机梯度下降保持一个单一的学习速率,用于所有的权重更新,并且在训练过程中学习速率不会改变。每一个网络权重(参数)都保持一个学习速率,并随着学习的展开而单独地进行调整。该方法从梯度的第一次和第二次矩的预算来计算不同参数的自适应学习速率在本方法中选用的参数为:

learning_rate(学习速率)=0.001

beta1(第一次估计的指数衰减率)=0.9

beta2(第二次估计的指数衰次减率)=0.98在稀疏梯度问题上,这个值应该接近1.0。

epsilon=1.0e-9是一个非常小的数字,可以防止任何在实施中被0划分。

使用该优化器的好处在于,当这一次迭代梯度与上一次相差不大时,学习速率会扩大,当这一次迭代梯度与上一次相差较远的时候,学习速率会下降,该方法保证了模型在梯度一致的情况下,模型的收敛速度会大大增加,在梯度存在差异的时候,模型的学习速率会下降,防止出现局部最优的情况,在模型迭代训练达到收敛之后开始进行模型的验证,进入步骤F。

步骤F:整理验证上述方法所得到的多个模型,记录的模型实验结果如下:

表1 实验模型与相对应的词错率表

(1)对比原始模型和修改超参数之后的模型,修改超参数并没有明显的提升模型的收敛速度(因为选取的保存模型轮次相差较大)每四十轮保存一次,但是参数量的减少和词错率的下降能够很直观的在模型的结构和模型的词错率上表现出来。

(2)对修改超参数之后的模型在所有的Encoder层,即在Transformer本身就包含的残差连接对残差连接部分加入一个可以迭代的参数能够在深层网络的结构中加快模型的收敛和有效的处理梯度消失和梯度爆炸的情况,但是本发明所做的一切改进都是在保证词错率下降这一大前提的条件下进行的,而词错率下降在做这一修改的模型当中160轮之后的模型表现的不算明显,对比四十轮的模型,模型收敛速度相较于原始模型和修改超参数之后的模型,模型在四十轮的时候已经收敛,实验数据表明其收敛速度确实得到了提高。

(3)在残差动态权重模型,我们还引入了双动态权重模型,即残差部分和原始X(数据特征)前都引入一个可迭代的权重,观测记录模型的表现效果,双动态权重模型在表现上相比于残差动态权重模型并没有表现出明显的优势。

(4)因为在验证动态可调节权重模型中没有取得词错率下降的这一预想的效果,我们在接下来的模型验证中采用固定权重配比的方式作为Transformer中的残差连接,在固定配比的实验中,首先选取的是1*F(X)+2*X,即扩大原始X(数据特征)在模型训练中的权重,强调在模型的训练当中原始X(数据特征)在模型训练当中的重要性要比残差连接中的残差部分的更大,此处用加权的权重来衡量数据在模型当中的重要性,然而事实却与我们的预期相反,扩大原始特征x的权重(2x)使得每一轮的模型相比于原来的模型在词错率的表现上都有所上升,因此我们在接下来的模型中放弃这一改动选择在原始模型的基础上扩大残差项的系数(2F(x))来观测模型最终的表现。

(5)扩大残差项的系数(2F(x))模型观察其在每一个轮次上的表现,发现无论是在收敛速度还是在准确率上,都比修改了超参数之后的模型表现更加优异,继续扩大残差项的系数(3F(x))其表现差异变化和2F(x)不存在显著性的差异,继续扩大残差项的系数(4F(x)),发现此时的词错率开始上升,本发明的残差连接系数调节的最佳配比应该锁定在1:2到1:3之间,即2*F(X)+1*X或者3*F(X)+1*X,模型的表现最佳。

在对比所有的模型实验结果后,在本发明中固定配比的模型显然要优于调节系数的模型,而在固定配比的模型当中,残差连接系数调节的最佳配比应该锁定在1:2到1:3之间,即2*F(X)+1*X或者3*F(X)+1*X,模型的表现最佳,此时的模型收敛速度较原有模型得到提升的同时,词错率降到最低,相对应的最低词错率分别为7.92%和7.956%。

本发明设计了一种基于精简改进的Transformer模型的语音识别方法,所做的一切改进都是在保证词错率下降这一大前提的条件下进行的,针对现有Transformer模型进行修改设计,通过对原有模型的Encoder部分中残差链接的系数进行修改,在保证词错率下降的同时,使得原始模型的收敛速度得到提升。

此外对模型的一些超参数进行合理的调整,使得所精简Transformer的参数量大大减少,在网络的训练阶段,由于参数的减少,提高了训练的速度;在网络的推理阶段,运算量的减少,使得模型更加精简,模型训练时间和验证时间的缩短,是一个比原始的Transformer模型结构更加优异的模型结构。整个模型的验证过程如图5(模型语音识别流程图)所示。

上面结合附图对本发明的模型改进过程和模型实施流程作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化,这些等效的变化和修饰同样落入本发明权利要求所限定的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号