一种结合Transformer和CNN-DFSMN-CTC的中文语音识别方法与流程

文档序号:23007830发布日期:2020-11-20 12:02阅读:来源:国知局

技术特征:

1.一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,其特征在于,包括以下步骤:

s1,输入语音信号,将语音信号进行预处理,结合低帧率lfr,先对语音信号预加重,再通过一个固定的10ms帧位移的25ms汉明窗口进行分析,并利用80个梅尔滤波器组提取80维的取对数后的梅尔滤波器fbank特征;

s2,将提取到的80维fbank特征用cnn卷积网络进行卷积;

s3,将特征输入到深度前馈序列记忆神经网络dfsmn网络结构中,该网络结构一共有6层,模型深度为512维;

s4,将联结主义时间分类ctc作为声学模型的损失函数,采用宽度参数设置为10的集束搜索beamsearch算法进行预测,使用自适应时刻估计adam优化器进行优化,使得声学模型训练时使模型能达到更优;

s5,引入强语言模型transformer迭代训练直至达到最优模型结构;

s6,将transformer和声学模型cnn-dfsmn-ctc卷积神经网络结合深度前馈序列神经网络及联结主义时间分类相结合进行适配,在多数据集上进行验证,最终得到最优识别结果。

2.根据权利要求1所述的一种结合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特征。

3.根据权利要求2所述的一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,其特征在于,α的值为0.97。

4.根据权利要求1所述的一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,其特征在于,所述步骤s2将提取到的80维fbank特征用cnn卷积网络进行卷积,具体包括:

利用卷积网络cnn对输入的fbank特征进行卷积,cnn通过控制池化层的尺度来保证不同的输入转换后的维度相同,增加cnn卷积网络层后有利于解决输入和输出的不定长问题。

5.根据权利要求4所述的一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,其特征在于,所述步骤s3将特征信息输入到dfsmn结构中,dfsmn的参数公式为:

其中,ptl表示投影层t时刻l层的特征、vl表示向ptl转换系数,表示更新后的ptl为对应的时不变系数,⊙表示为点乘,表示降维后的投影层特征,为对应的时不变系数,表示降维后的投影层特征,表示为t时刻l+1层的特征,ul表示转向的系数,bl+1表示第l+1层的参数系数,f表示函数,表示低层memoryblock与高层memoryblock的连接形式,若将低层的memory直接添加到高层的memoryblock中,则

6.根据权利要求5所述的一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,其特征在于,所述步骤s4增加ctcloss作为声学模型的损失函数,对于一对输入输出(x|y)来说,ctc的损失函数定义为:

其中,p(z|x)代表给定输入x,输出序列z的概率,s为训练集,给定样本后输出正确label的概率的乘积,再取负对数后通过最小化损失函数,就可以使输出正确的label的概率达到最大;

在对模型进行预测时,采用beamsearch算法,该算法步骤为:

(1)使用广度优先策略建立搜索树,在树的每一层,按照启发代价对节点进行排序,然后仅留下预先确定的个数的节点,仅这些节点在下一层次继续扩展,其他节点就被剪掉了。

(2)将初始节点插入到list中;

(3)将给节点出堆,如果该节点是目标节点,则算法结束;否则扩展该节点,取集束宽度的节点入堆。然后到第二步继续循环。算法结束的条件是找到最优解或者堆为空;

经实验验证后,在本系统中将宽度参数设置为10时,该算法性能最优。

7.根据权利要求6所述的一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,其特征在于,所述步骤s4对于预测模型的优化器选择,使用adam优化器,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,adam经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳,其公式如下:

mt=μ*mt-1+(1-μ)*gt

其中,mt,nt分别是对梯度的一阶矩估计和二阶矩估计;μ表示一阶矩衰减系数,v表示二阶矩衰减系数,gt表示一阶梯度,表示二阶梯度,是对mt,nt的校正;根据以上所述构建出完整的cnn-dfsmn-ctc声学模型。

8.根据权利要求7所述的一种结合transformer和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非线性激活。

9.根据权利要求8所述的一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,其特征在于,transformer的解码过程与编码过程类似,包括以下步骤:

输入包含q,k,v,且需要嵌入位置编码,k和v来自于编码器,q来自于上一位置解码器的输出;

输出是对应i位置的输出词的概率分布;

解码器结构与编码器类似,与编码器相比多了一个maskedself-attention,解码时对于输入一个一个有序解码,最终得到解码结果。


技术总结
本发明请求保护一种结合Transformer和CNN‑DFSMN‑CTC的中文语音识别方法,该方法包括步骤:S1,将语音信号进行预处理,提取80维的log mel Fbank特征;S2,将提取到的80维Fbank特征用CNN卷积网络进行卷积;S3,将特征输入到DFSMN网络结构中;S4,将CTC loss作为声学模型的损失函数,采用Beam search算法进行预测,使用Adam优化器进行优化;S5,引入强语言模型Transformer迭代训练直至达到最优模型结构;S6,将Transformer和声学模型CNN‑DFSMN‑CTC相结合进行适配,在多数据集上进行验证,最终得到最优识别结果。本发明识别准确率更高,解码速度更快,在多个数据集上验证后字符错误率达到了11.8%,其中在Aidatatang数据集上最好达到了7.8%的字符错误率。

技术研发人员:胡章芳;蹇芳;唐珊珊;明子平;姜博文
受保护的技术使用者:重庆邮电大学
技术研发日:2020.07.08
技术公布日:2020.11.20
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1