语音识别|基于CNN+DFSMN(完整版:向量+有步长因子)的声学模型实现及代码开源(tensorflow)

由于我主要研究问答系统,因此本博客仅更新NLP及问答相关内容,最近创了一个群,如果大家感兴趣可加q群号:376564367
github:https://github.com/makeplanetoheaven/NlpModel/tree/master/SpeechRecognition/AcousticModel/dfsmn_v2

背景知识

FSMN和DFSMN系列模型的结构及其实现原理可参考如下两篇博客:
1.FSMN结构快速解读
2.DFSMN结构快速解读

基于CNN+DFSMN的声学模型实现

本模型是在传统CNN模型的基础上,引入2018年阿里提出的声学模型DFSMN,论文地址:https://arxiv.org/pdf/1803.05030.pdf。

该声学模型使用的输入是具有16KHZ采样率,单声道音频数据经过fbank特征提取以后的特征数据。

DFSMN结构如下图,与语音识别|基于CNN+DFSMN(简化版:标量+无步长因子)的声学模型实现及代码开源(keras)相比:

在这里插入图片描述

(1)简化版

在记忆单元计算上,使用的是类似sfsmn中的标量权重来计算第 t t t时刻的隐藏状态,且没有引入步长因子 s t r i d e stride stride,即

在这里插入图片描述

其中, l l l表示dfsmn的第 l l l层, t t t表示第 t t t时刻的隐藏状态, l _ m e m _ s i z l\_mem\_siz l_mem_siz表示前向记忆单元长度, r _ m e m _ s i z r\_mem\_siz r_mem_siz表示后向记忆单元长度, m e m _ w e i g h t mem\_weight mem_weight用于存储权重,是一个长度为 l _ m e m _ s i + r _ m e m _ s i z + 1 l\_mem\_si+r\_mem\_siz+1 l_mem_si+r_mem_siz+1一维向量。

(2)完整版

在记忆单元计算上,使用的是类似vfsmn中的向量权重来计算第 t t t时刻的隐藏状态,且引入步长因子 s t r i d e stride stride,即

在这里插入图片描述

此时, m e m _ w e i g h t mem\_weight mem_weight是一个形状为 [ l _ m e m _ s i + r _ m e m _ s i z + 1 , h i d d e n _ n u m ] [l\_mem\_si+r\_mem\_siz+1,hidden\_num] [l_mem_si+r_mem_siz+1hidden_num]的二维矩阵。

在该模块中,主要包含了以下4个部分内容:

模型结构和模型调用方式和简化版基本相同,这里不再描述,主要区别在dfsmn单元的实现方式。

已训练模型库

NameWERdatelinkextraction codeps
3cnn[64-1]-6dfsmn[2048-512-20-20-2]-128916%2020.1.5点击vzk4该模型可继续训练,目前效果最好为13% WER

更新内容

2019.12.7

  • 优化fbank特征提取方式,采用80维的log mel fbank
  • 优化数据读取方式,模型训练前需要调用generate_data_set()函数
  • 优化记忆单元的计算方式

2020.1.5

  • 优化gpu模型训练方式,可指定具体的gpu核
  • 引入混合精度进行模型训练,

Bug汇总

  • 该模型由于v2版本记忆单元的计算方式,最少能够处理1.615s的音频文件,解决方案:1.在模型预测时可使用v1版本的记忆单元计算;2.对输入数据补长
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值