全序列卷积神经网络+连接时序分类语音识别
全序列卷积神经网络
DFCNN:deep fully convolutional neural network 全序列卷积神经网络
DFCNN对时域信号进行分帧、加窗、傅里叶变换、取对数得到语谱图。
语谱图的x是时间,y轴是频率,z轴是幅度。幅度用亮色如红色表示高,用深色表示低。利用语谱图可以查看指定频率端的能量分布。
DFCNN直接将一句语音作为输入,输出单元则直接与最终的识别结果相对应(音节或汉字),DFCNN的结构中把时间和频率作为图像的两个维度,通过较多的卷积层和池化层的组合,实现对整个语句的建模。
首先对音频文件的每帧进行傅里叶变换,将时间和频率做为图像的两个维度,然后使用3*3的卷积核对时频图进行卷积,卷积层(convolution layer)输出32特征,然后使用最大池化Maxpooling提取最大参数,来降低参数数量,池化层(pooling layer)输出64特征,此时数据的另两个维度减半,然后再通过一次cnn_cell,此时数据的维度减半,特征值变为128,最后接入全连接层(fully connected layers)。
卷积层的卷积核(kernel_size)大小为(3,3),提取32个特征,扩充padding为1,卷积步长为1,则经过一次卷积层后,图像的尺寸为(n+2p-f+1) x (n+2p-f+1)=(n,n)。
池化层(pooling)来减少尺寸,提高运算速度,降低噪声,这里使用的是Maxpooling方法,pool_size大小为(2,2),取pool_size中最大的数字,当图片经过池化层后,维度减半。
全连接层的每个神经元与前一池化层的所有神经元进行连接,全连接层整合卷积和池化层的分类特征并加以区分。每个神经元的激励函数使用ReLU函数,最后一层的输出值被传递到sotfmax逻辑回归进行分类。
更新全连接层的参数使用两种方式:前向传播和反向传播。
前向传播:
L:层数
Ni:除了偏置单元之外的第 i 层中的神经元数,其中i = 1,2,…,L
Ai(j):第 i 层中第 j 个神经元的输出,其中i = 1,2 … L | j = 0,1,2 … .N
第i+1层输入:
从第i层到第i+1层的权重矩阵:
全连接层的输出:
反向传播:确定输出端的损耗(或误差),然后将其传播回网络。更新权重以最小化每个神经元产生的误差。最小化误差的第一步是确定每个节点的梯度。
错误:
反向传播错误进入网络:
更新权重以最小化梯度:
连接时序分类
CTC:connectionist temporal classification 连接时序分类
传统的语音识别的声学模型训练,每一帧数据必须知道label才能进行训练,语音对齐需要进行反复迭代,来确保对齐,耗费时间。
CTC使用的是端到端,只需要输入输出序列,CTC会输出序列预测的概率,只关心输出序列是否接近,不关心是否对齐。
CTC引入blank(无预测值),每个预测值的分类对应一段语音中的一个尖峰(spike)其他不是尖峰的默认为blank,输出尖峰的序列,无持续时间。
序列问题可以形式化为函数:
序列目标为字符串(词表大小为n)即Nw输出为n维多项式概率分布(softmax)。
网络输出为:
1.序列建模
没有限定Nw的具体形式,假设某种神经网络(RNN)。
2.align-free变长映射
CTC引入一个特殊的blank字符(%),扩展原始词表L为L’=L U {blank},对输出字符串,定义操作B:(1)合并连续的相同符号,(2)去掉blank字符
例如:aa%bb%%cc 应用B,实际上代表abc
通过引入blank和B,可以实现映射:
注意:只能建模长度小于输入长度
3.似然计算
CTC使用最大似然标准进行计算,给定输入x,输出l的条件概率为:
CTC假设输出的概率(相对输入)条件独立的:
#4.前向算法
对音频的数字化处理
wav文件是微软公司研发的一种音频文件,支持多种压缩运算法。
此次实验中使用的音频文件被保存为wav格式,使用16kHz,单声道,8bit的形式。
在音频文件读取的过程中,使用python中的Scipy包,Scipy是数学、工程中常用包,主要用来处理一些积分、方程求解、信号处理等问题。在此次实验中,使用数据输入输出的Scipy.io模块。在画图的过程中,使用python中的matplotlib包,matplotlib是python中的图形绘制包。
然后构造汉明窗函数。原因:语音信号一般在10ms到30ms之间,为了处理语音信号,我们需要构造汉明窗,也就是一次仅处理窗内的数据,因此,构造一个函数,在一段区间内有非零值,其他区间都为零,加上窗之后,只有中间的数据体现出来,其他数据丢失,等到窗移动的时候,后面丢失的又体现出来。
汉明窗函数:
当0<n<N-1时:
当N>>1时,N-1≈N,其频谱近似为:
三部分矩形窗频谱相加,使旁瓣互相抵消,能量集中在主瓣,旁瓣大大减小,主瓣宽度增加1倍。
对数据进行分帧加窗,确定采样个数。
对处理完的数据进行快速傅里叶变换,将时域信号转到频域上来,此处使用Scipy.fftpack。
获取语谱图,对语音文件的数字化处理完成。
全序列卷积神经网络+连接时序分类语音识别相关推荐
- 语音识别框架最新进展——深度全序列卷积神经网络登场
干货|语音识别框架最新进展--深度全序列卷积神经网络登场 2016-08-05 17:03 转载 陈杨英杰 1条评论 导读:目前最好的语音识别系统采用双向长短时记忆网络(LSTM,LongShort ...
- 干货|详解最新语音识别框架 深度全序列卷积神经网络
原标题:干货|详解最新语音识别框架 深度全序列卷积神经网络 导读:目前最好的语音识别系统采用双向长短时记忆网络(LSTM,LongShort Term Memory),但是,这一系统存在训练复杂度高. ...
- 干货|语音识别框架最新进展——深度全序列卷积神经网络登场
干货|语音识别框架最新进展--深度全序列卷积神经网络登场 2016-08-05 17:03 转载 陈杨英杰 1条评论 导读:目前最好的语音识别系统采用双向长短时记忆网络(LSTM,LongShort ...
- 使用卷积神经网络进行文本分类textCNN
使用卷积神经网络进行文本分类textCNN 一维卷积层 我们可以将文本当作一维图像,从而可以用一维卷积神经网络来捕捉临近词之间的关联.与二维卷积层一样,一维卷积层使用一维的互相关运算.在一维互相关运算 ...
- 卷积神经网络在句子分类上的应用[翻译]
最近翻译几篇paper,也算逼着自己多看看文章.对于一些概念的理解不够透彻可能导致翻译不准确,以及某些术语实在也是找不到合适的中文词,可能会有些别扭或索性没翻.大家将就着看.哪位大神看到了,如有不足还 ...
- 论文阅读:Convolutional Neural Networks for Sentence Classification 卷积神经网络的句子分类
Convolutional Neural Networks for Sentence Classification 卷积神经网络的句子分类 目录 Convolutional Neural Networ ...
- cnn 预测过程代码_代码实践 | CNN卷积神经网络之文本分类
学习目录阿力阿哩哩:深度学习 | 学习目录zhuanlan.zhihu.com 前面我们介绍了:阿力阿哩哩:一文掌握CNN卷积神经网络zhuanlan.zhihu.com阿力阿哩哩:代码实践|全连 ...
- 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像
文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...
- 卷积神经网络对图片分类-中
接上篇:卷积神经网络对图片分类-上 5 池层(Pooling Layers) 池层通常用在卷积层之后,池层的作用就是简化卷积层里输出的信息, 减少数据维度,降低计算开销,控制过拟合. 如之前所说,一 ...
最新文章
- 朴素贝叶斯(NaïveBayes)
- Codeforces Global Round 9 A-D题解
- RAC 实例不能启动 ORA-1589 signalled during ALTER DATABASE OPEN
- 回流,重绘的概念,以及他们的区别?
- Python学习日记(六) 浅深copy
- pytorch查看模型的可训练参数
- Python: PyCharm中导入matplotlib时报错:“Backend Qt5Agg is interactive backend”的解决方案...
- 敏捷开发日常跟进系列之四:跟进表
- atr netty长连接_基于Netty实现Web容器Netty版Tomcat(三)
- 常见熟知端口号的记忆技巧
- eslint 保存自动修复_ESLint 自动修复问题之如何保留最后修改人信息
- LCD1602中文资料
- 0x80070057复制从服务器复制文件,0x80070057各种错误解决方法教程
- 代码审查(Code Review)
- Win32:INI文件读写结构体/Int/String/遍历
- REDSHIFT学习笔记-渲染设置2_AOVOpt
- 小白入门计算机视觉系列——ReID(一):什么是ReID?如何做ReID?ReID数据集?ReID评测指标?
- 文摘_怀念曾戏叱咤风云的大侠 一位黑客转型的心路历程
- 汇川H5U走EtherCat控制伺服带HMI程序,轴控制和气缸控制有做功能块
- 商品分类列表功能实现php,【图片】B2B2C系统如何实现商品分类功能【thinkphp吧】_百度贴吧...