一种结合Transformer和CNN-DFSMN-CTC的中文语音识别方法与流程
本发明属于语音识别领域,特别是一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法。
背景技术:
在语音识别发展领域,研究学者们致力于将语音信息尽量完整准确地转化成文本信息。语音识别的关键在于声学模型和语言模型两部分。在深度学习兴起应用到语音识别领域之前,声学模型已经有了非常成熟的模型体系,并且也有了被成功应用到实际系统中的案例。比如经典的高斯混合模型(gaussianmixedmodel,gmm)和隐马尔可夫模型(hiddenmarkovmodel,hmm)等。神经网络和深度学习兴起以后,循环神经网络(recurrentneuralnetwork,rnn)、长短期记忆网络(longshort-termmemory,lstm)、注意力机制(attention)等基于深度学习的声学模型和语言模型将此前各项基于传统声学模型和传统语言模型的识别案例错误率降低了一个级别。
在声学模型领域,zhang,shiliang等提出了新一代语音识别模型前馈序列记忆神经网络(feedforwardsequentialmemorynetworks,fsmn),紧凑前馈序列记忆神经网络(compactfsmn,cfsmn)以及深度前馈序列记忆神经网络(deepfsmn,dfsmn)。其中fsmn是在标准的隐含层中使用类firfilter的内存块前馈神经网络,并在语言建模任务上的实验结果表明fsmn可以有效地学习长期历史;cfsmn是在fsmn基础上增加了投影矩阵,在语音识别交换机任务中,所提出的cfsmn结构可以使模型规模缩小60%,学习速度提高7倍以上,而在基于框架级交叉熵准则的训练和基于mini的序列训练方面,该模型仍能显著优于目前流行的双向lstms;而dfsmn在cfsmn的基础上增加了跳跃连接(skipconnection),在中文语音识别任务上达到了85%的识别准确率。在语言模型领域中,avaswani等提出了基于注意力机制的新模型transformer,并在英语数据集上进行了验证,结果显示比attention模型效果更好;zhoushiyu等研究了将音节和音素作为transformer模型的建模单元,在序列到序列语音识别系统上进行实验验证并得出基于音节的transformer模型优于基于ci音素的对应模型,且与基于ctc-attention的联合编解码网络的字符错误率不相上下;donglinhao等在transformer模型上针对训练速度慢提出改进方法,经wsj数据集实验验证后得到wer为10.9%,训练速度也得到了明显提升。但是transformer作为语言模型,在自然语言处理中被大量使用,却没有被应用于语音识别中。
技术实现要素:
本发明旨在解决以上现有技术的问题。提出了一种可获得较高识别率、解码速度更快的基于cnn-dfsmn-ctc为声学模型,transformer为语言模型的语音识别方法。本发明的技术方案如下:
一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,其包括以下步骤:
s1,输入语音信号,将语音信号进行预处理,结合低帧率lfr,先对语音信号预加重,再通过一个固定的10ms帧位移的25ms汉明窗口进行分析,并利用80个梅尔滤波器组提取80维的取对数后的梅尔滤波器(filterbanks,fbank)特征;
s2,将提取到的80维fbank特征用cnn卷积网络进行卷积;
s3,将特征输入到深度前馈序列记忆神经网络(deepfeedforwardsequentialmemorynetworks,dfsmn)网络结构中,该网络结构一共有6层,模型深度为512维;
s4,将联结主义时间分类(connectionisttemporalclassification,ctc)作为声学模型的损失函数,采用宽度参数设置为10的集束搜索(beamsearch)算法进行预测,使用自适应时刻估计(adaptivemomentestimation,adam)优化器进行优化,使得声学模型训练时使模型能达到更优;
s5,引入强语言模型transformer迭代训练直至达到最优模型结构;
s6,将transformer和声学模型cnn-dfsmn-ctc(卷积神经网络结合深度前馈序列神经网络及联结主义时间分类)相结合进行适配,在多数据集上进行验证,最终得到最优识别结果。
进一步的,所述步骤s1具体包括:
s11、对语音信号进行预加重处理:
x′[t]=x[t]-αx[t-1]
其中,x[t]表示音频数据的第t个数,α表示预加重系数,x′[t]表示预加重后的音频数据,α的取值范围是(0.95,0.99);
s12,对预加重的语音信号分帧加窗,采用10ms的帧移对25ms的语音信号用汉明窗进行分析:
x′[n]=w[n]x[n]
其中,x[n]是所取窗口(窗长为n)之内的第n个数,w[n]是与之对应的权重;x′[n]表示分帧加窗后的语音信号;
s13,对加窗后的语音信号做离散傅里叶变换,计算方式为:
其中,n表示傅里叶变换的点数,k表示傅里叶变换的第k个频谱,x[n]表示分帧加窗后的语音信号,x[k]表示通过频域转换后的频域信号分量;
s14,提取fbank特征,首先将一般频率转换成梅尔频率,转换方式为:
该转换由梅尔滤波器组实现完成,具体为将离散傅里叶输出的能量频谱通过三角滤波器组得到梅尔频谱,再将梅尔频谱的能量数值取对数,得到的结果就是梅尔滤波器组fbank特征。
进一步的,α的值为0.97。
进一步的,所述步骤s2将提取到的80维fbank特征用cnn卷积网络进行卷积,具体包括:
利用卷积网络cnn对输入的fbank特征进行卷积,cnn通过控制池化层的尺度来保证不同的输入转换后的维度相同,增加cnn卷积网络层后有利于解决输入和输出的不定长问题。
进一步的,所述步骤s3将特征信息输入到dfsmn结构中,dfsmn的参数公式为:
其中,
进一步的,所述步骤s4增加ctcloss作为声学模型的损失函数,对于一对输入输出(x|y)来说,ctc的损失函数定义为:
其中,p(z|x)代表给定输入x,输出序列z的概率,s为训练集,给定样本后输出正确label的概率的乘积,再取负对数后通过最小化损失函数,就可以使输出正确的label的概率达到最大;
在对模型进行预测时,采用beamsearch算法,该算法步骤为:
(1)使用广度优先策略建立搜索树,在树的每一层,按照启发代价对节点进行排序,然后仅留下预先确定的个数的节点,仅这些节点在下一层次继续扩展,其他节点就被剪掉了。
(2)将初始节点插入到list中;
(3)将给节点出堆,如果该节点是目标节点,则算法结束;否则扩展该节点,取集束宽度的节点入堆。然后到第二步继续循环。算法结束的条件是找到最优解或者堆为空。
经实验验证后,在本系统中将宽度参数设置为10时,该算法性能最优。
进一步的,所述步骤s4对于预测模型的优化器选择,使用adam优化器,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,adam经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳,其公式如下:
mt=μ*mt-1+(1-μ)*gt
其中,mt,nt分别是对梯度的一阶矩估计和二阶矩估计;μ表示一阶矩衰减系数,v表示二阶矩衰减系数,gt表示一阶梯度,
进一步的,所述步骤s5中引入强语言模型transformer,transformer包括编码和解码两个模块,编码过程为:
在输入中嵌入具有相同的模型维数的位置编码,位置编码采用不同频率的正弦和余弦函数,表示为:
其中,dmodel表示模型的维数,pos是位置,i是维数,位置编码的每一维对应一个正弦信号,波长以几何级数的形式从2π增长到10000·2π;
求解多头自注意力输出,包括以下步骤:
生成查询向量q、键向量k、值向量v,表示为:
qi=wqxi
ki=wkxi
vi=wvxi
其中,qi表示语句中第i个字的查询向量,ki表示语句中第i个字的键向量,vi表示语句中第i个字的值向量,xi表示语句中第i个字,wq、wk、wv分别表示q、k、v的权重系数。
利用softmax层计算注意力分数,再计算自注意力,自注意力计算方法为:
接着再计算多头注意力,其计算方法为:
headi=attention(qwiq,kwik,vwiv)
multihead(q,k,v)=concat(head1,head2,...,headn)wo
其中,dk表示键向量的维度,multihead(q,k,v)表示多头注意力,concat()函数表示用于连接两个或多个数组,dmodel表示模型的维度,
残差连接以及归一化,防止经过多层前向计算后数据偏差过大,造成梯度问题;连接全连接层,在该层网络中,采取矩阵变换结合relu非线性激活。
进一步的,transformer的解码过程与编码过程类似,包括以下步骤:
输入包含q,k,v,且需要嵌入位置编码,k和v来自于编码器,q来自于上一位置解码器的输出;
输出是对应i位置的输出词的概率分布;
解码器结构与编码器类似,与编码器相比多了一个maskedself-attention,解码时对于输入一个一个有序解码,最终得到解码结果。
本发明的优点及有益效果如下:
本发明提供了一种基于cnn-dfsmn-ctc为声学模型,transformer为语言模型的语音识别方法。在当前语音识别中通常采用强声学模型结合弱语言模型的组合,一般采用n-gram模型作为语言模型。然而该语言模型存在忽略词条语义相似性,参数过大导致计算量太大等问题,从而限制了字符错误率的降低。因此本发明改变了研究方法,引入transformer模型作为语言模型。transformer模型作为注意力机制模型之一,常用于自然语言处理中,并在该领域中脱颖而出,在解码速度和识别准确率上都具有优良的性能,但是并没有作为语言模型应用于语音识别中。同时,本发明在声学模型的构建中,结合了cnn网络,dfsmn网络,以及ctc损失函数构成cnn-dfsmn-ctc声学模型,利用集数搜索算法进行预测,adam优化器进行优化,提高了声学模型的训练速度和识别准确率。最后将声学模型cnn-dfsmn-ctc结合transformer联合构建语音识别系统,相较于其他语音识别方法,本发明提出的方法识别准确率更高,解码速度更快,在多个数据集上验证后字符错误率达到了11.8%,其中在aidatatang数据集上最好达到了7.8%的字符错误率。
附图说明
图1是本发明提供优选实施例基于cnn-dfsmn-ctc为声学模型,transformer为语言模型的语音识别方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
如图1所示,本发明提供了一种基于cnn-dfsmn-ctc为声学模型,transformer为语言模型的语音识别方法,其特征在于,包括以下步骤:
s1,将语音信号进行预处理,结合低帧率lfr,先对语音信号预加重,再通过一个固定的10ms帧位移的25ms汉明窗口进行分析,并利用80个mel滤波器组提取80维的取对数后的梅尔滤波器(filterbanks,fbank)特征;
s2,将提取到的80维fbank特征用cnn卷积网络进行卷积,cnn通过控制池化层的尺度来保证不同的输入转换后的维度相同,有利于解决输入和输出的不定长问题;
s3,将特征输入到深度前馈序列记忆神经网络(deepfeedforwardsequentialmemorynetworks,dfsmn)网络结构中,该网络结构一共有6层,模型深度为512维。dfsmn的参数公式为:
其中,
s4,将联结主义时间分类(connectionisttemporalclassification,ctc)作为声学模型的损失函数,该损失函数有利于loss的收敛,对于一对输入输出(x|y)来说,ctc的损失函数定义为:
其中,p(z|x)代表给定输入x,输出序列z的概率,s为训练集。给定样本后输出正确label的概率的乘积,再取负对数后通过最小化损失函数,就可以使输出正确的label的概率达到最大。
在对模型进行预测时,采用beamsearch算法,并经试验验证后,将宽度参数设置为10时,该算法性能最优。
对于预测模型的优化器选择,使用adam优化器,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。
其公式如下:
mt=μ*mt-1+(1-μ)*gt
其中mt,nt分别是对梯度的一阶矩估计和二阶矩估计;μ表示一阶矩衰减系数,v表示二阶矩衰减系数,gt表示一阶梯度,
根据以上所述构建出完整的cnn-dfsmn-ctc声学模型。
s5,引入强语言模型transformer,transformer包括编码和解码两个模块,编码过程为:
在输入中嵌入具有相同的模型维数的位置编码,位置编码采用不同频率的正弦和余弦函数,表示为:
其中,dmodel表示模型的维数,pos是位置,i是维数。位置编码的每一维对应一个正弦信号。波长以几何级数的形式从2π增长到10000·2π;
求解多头自注意力输出。包括以下步骤:
生成查询向量q、键向量k、值向量v,表示为:
qi=wqxi
ki=wkxi
vi=wvxi
其中,qi表示语句中第i个字的查询向量,ki表示语句中第i个字的键向量,vi表示语句中第i个字的值向量,xi表示语句中第i个字,wq、wk、wv分别表示q、k、v的权重系数。
利用softmax层计算注意力分数,再计算自注意力。自注意力计算方法为:
接着再计算多头注意力,其计算方法为:
headi=attention(qwiq,kwik,vwiv)
multihead(q,k,v)=concat(head1,head2,...,headn)wo
其中,dk表示键向量的维度,multihead(q,k,v)表示多头注意力,concat()函数表示用于连接两个或多个数组,dmodel表示模型的维度,
残差连接以及归一化。防止经过多层前向计算后数据偏差过大,造成梯度问题;
连接全连接层。在该层网络中,采取矩阵变换结合relu非线性激活。
transformer的解码过程与编码过程类似,包括以下步骤:
输入包含q,k,v,且需要嵌入位置编码,k和v来自于编码器,q来自于上一位置解码器的输出;
输出是对应i位置的输出词的概率分布;
解码器结构与编码器类似,与编码器相比多了一个maskedself-attention,解码时对于输入一个一个有序解码,最终得到解码结果;
s6,将transformer和声学模型cnn-dfsmn-ctc相结合进行适配,在多数据集上进行验证,证明了模型结合的可行性以及结合后模型性能的优良性。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除