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

背景知识

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

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

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

该声学模型使用的输入是具有16KHZ采样率,单声道音频数据经过fbank特征提取以后的特征数据。模型整体的语音识别框架使用的是Github:https://github.com/audier/DeepSpeechRecognition。

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

  • 模型实现代码

    • 1.卷积层
    • 2.DFSMN层
    • 3.softmax层
    • 4.梯度更新部分
  • 模型调用方式
  • 已训练模型库

模型实现代码

模型的实现代码位于目录:/NlpModel/SpeechRecognition/AcousticModel/dfsmn/Model/cnn_dfsmn_ctc.py,其实现顺序从Am类开始。

首先,通过调用_model_init对模型整个数据流图进行构建。在构建数据流图的过程中,需要依次去定义模型以下几个部分:

1.卷积层

在卷积层中,根据输入的音频数据(一个4维矩阵[batch, data_len, feature_len, 1]),对其进行卷积操作,整个卷积共分为4层,其中最后一层不使用pooling操作:

# CNN-layers
self.h1 = cnn_cell(32, self.inputs)
if self.is_training:self.h1 = Dropout(self.dropout_r)(self.h1)
self.h2 = cnn_cell(64, self.h1)
if self.is_training:self.h2 = Dropout(self.dropout_r)(self.h2)
self.h3 = cnn_cell(128, self.h2)
if self.is_training:self.h3 = Dropout(self.dropout_r)(self.h3)
self.h4 = cnn_cell(128, self.h3, pool=False)
if self.is_training:self.h4 = Dropout(self.dropout_r)(self.h4)
# (200 / 8) * 128 = 3200
self.h5 = Reshape((-1, 3200))(self.h4)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在卷积层的最后,通过Reshape操作,将提取出的特征转换成一个三维矩阵[batch, data_len, 3200],以作为DFSMN层的输入。

其中,每个卷积层的实现函数是_cnn_cell,其代码如下,其中normconv2d分别为BatchNorm和卷积操作的两个函数:

def cnn_cell (size, x, pool=True):x = norm(conv2d(size)(x))x = norm(conv2d(size)(x))if pool:x = maxpool(x)return x


http://www.taodudu.cc/news/show-257090.html

相关文章:

  • transformers理论解释
  • XLNET原理详解
  • 只想安安静静的做个程序员
  • python写入csv文件的几种方法
  • Transformers2.0让你三行代码调用语言模型,兼容TF2.0和PyTorch
  • transforms预训练模型 (模块创始团队网址)
  • Pytorch-基于Transformer的情感分类
  • 从源码分析DEARGUI之添加字体
  • add_table和 add_column
  • add_combo
  • matplotlib 中将图直接从buffer中变为PIL 再到numpy
  • 魂力真的存在那么该如何提高魂力呢
  • 安装librosa遇到LLVM问题原因是numba问题
  • 为什么有人会觉得灵魂无处安放
  • 今天且明白父母为什么生死度外的让孩子们读书
  • 怎样高级文明的生活
  • 从源码分析DEARGUI之add_drag_float和4
  • 从源码分析DEARGUI之add_color_int和4
  • 从源码分析DEARGUI之add_drawing
  • 从源码分析DEARGUI之add_input_float和4
  • 从源码分析DEARGUI之add_input_text
  • 从源码分析DEARGUI之add_label_text
  • 从源码分析DEARGUI之add_listbox
  • 从源码分析DEARGUI之add_menu
  • 从源码分析DEARGUI之add_menu_items
  • 从源码分析DEARGUI之add_plot和add_line_series
  • 从源码分析DEARGUI之add_progress_bar
  • 从源码分析DEARGUI之add_radio_button
  • 从源码分析DEARGUI之add_plot和add_scatter_series
  • 从源码分析DEARGUI之add_selectable

语音识别|基于CNN+DFSMN(简化版:标量+无步长因子)的声学模型实现及代码开源(keras)相关推荐

  1. 毕设:基于CNN卷积神经网络的猫狗识别、狗品种识别(Tensorflow、Keras、Kaggle竞赛)

    基于卷积神经网络的图像识别算法及其应用研究 毕业快一年了,拿出来分享给大家,我和网上唯一的区别就是,我能够同时实现两个方案(猫狗识别和狗品种识别),我当时也是网上各种查,花了2,3个月的时间,一个萝卜 ...

  2. Pytorch实现手写体识别(基于CNN卷积神经网络)实操详解(附完整代码free)

    手写体作为深度学习的"Hello world",几乎所有的课程都会讲到这个,今天带着大家一些看看吧. 如果对你有所帮助,点个赞给个小关注,以后一起交流学习. 前言 首先和大家讲讲我 ...

  3. 最新技术栈Vue3+TS基于唯杰地图开发的CAD云端图纸管理平台案例代码开源了

    系统介绍 唯杰地图云端图纸管理平台 利用最新技术栈Vue+TypeScript基于唯杰地图二次开发的系统. 实现了对AutoCAD格式的DWG图纸的云端管理查看功能. 大致功能如下: CAD图纸的在线 ...

  4. 语音识别——基于深度学习的中文语音识别tutorial(代码实践)

    文章目录 利用thchs30为例建立一个语音识别系统 1. 特征提取 2. 数据处理 下载数据 2.1 生成音频文件和标签文件列表 定义函数`source_get`,获取音频文件及标注文件列表 确认相 ...

  5. 12、【股票策略】使用backtrader回测升级版的狗股策略-基于股息率和市净率两个因子

    12.使用backtrader回测升级版的狗股策略-基于股息率和市净率两个因子 更进一步的回测代码可以参考版本4:[股票策略]使用backtrader测试狗股策略版本4-在版本3的基础上进行代码改进优 ...

  6. 【读论文】使用基于 CNN 的非局部滤波对光流进行无监督学习

    使用基于 CNN 的非局部滤波对光流进行无监督学习 论文原文请看这里 文章目录 使用基于 CNN 的非局部滤波对光流进行无监督学习 一.引言 二. 相关工作 A. Variational Method ...

  7. cnn 一维时序数据_蚂蚁集团智能监控的时序异常检测:基于 CNN 神经网络的异常检测...

    1 背景在蚂蚁集团智能监控领域,时序异常检测是极重要一环,异常检测落地中,业务方参考业界标准输出 Metrics 指标数据,监控不同业务.应用.接口.集群的各项指标,包含 Metrics 指标(总量. ...

  8. 基于CNN的动态手势识别:Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks

    Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks论文解读 1. 概述 2. ...

  9. 基于 CNN 的验证码破解实战项目

    ♚ 作者:沂水寒城,CSDN博客专家,个人研究方向:机器学习.深度学习.NLP.CV Blog: http://yishuihancheng.blog.csdn.net 在我们的实际生活中有很多的场景 ...

最新文章

  1. MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数
  2. Visio画大括号、花括号
  3. php中的类 对象的方法的区别,php中类和对象的区别是什么
  4. 《嵌入式设备驱动开发精解》——导读
  5. 上传html 0字节,HTML ajax 上传文件限制文件的类型和文件大小
  6. 法的详细步骤_空气能热水工程安装步骤讲解
  7. php设计要求,《PHP设计模式介绍》第十章 规范模式
  8. 2021-2025年中国电动婴儿车行业市场供需与战略研究报告
  9. python小白从哪来开始-Python爬虫小白入门(一)写在前面
  10. SQL2008-显示表大小行数
  11. ZED双目摄像头 Ubuntu18.04 + ROS melodic + opencv3.4.0 + Cuda10.2 + ZED SDK 3.5.6
  12. python 股票行情_十分钟学会用Python交易股票
  13. windows 进程之csrss.ext
  14. 科研的常用软件高效神器
  15. 小葵花妈妈课堂开课了:《Runnable、Callable、Future、RunnableFuture、FutureTask 源码分析》
  16. 免费丨永洪科技2017用户大会@北京
  17. Whitelabel Error Page 的原因分析
  18. Lonza X-VIVO 15 无血清培养基使用攻略
  19. hibernate left join fetch 出错的问题
  20. 网络安全实验室-基础关 WP

热门文章

  1. python之路 mysql 博客园_教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql...
  2. ad中电容用什么封装_干货 | 为什么单相电机要用电容,三相电机不需要电容?...
  3. aix java home_在AIX环境下安装IBM JDK 1.6的教程
  4. Linux内核系统时钟管理 感想总结 (未完待续)
  5. html5复选框样式,11种炫酷CSS3复选框checkbox样式美化效果
  6. 打开git命令窗口_用动图的形式打开 10 大 Git 命令?
  7. java中静态是什么,java中静态和非静态有什么区别
  8. python 深拷贝_python 深拷贝
  9. php substr 去掉前n位_用PHP是如何做图片防盗链的
  10. win2003系统服务器,windows 2003 server服务器蓝屏