rnn中文语音识别java_语音识别算法阅读之RNN-T-2018

论文:

EXPLORING ARCHITECTURES, DATA AND UNITS FOR STREAMING END-TO-END SPEECH RECOGNITION WITH RNN-TRANSDUCER,2018

CTC的一个问题在于,其假设当前帧的输出与历史输出之间的条件独立性;RNN-T引入预测网络来弥补CTC这种条件独立性假设带来的问题

c69e5ecaeddd94e5f7bc376f69601d82.png

45e9111d45d317925db1747a056a59f1.png

4e53ef817808458f1896e0e9c510367d.png

a0005349e80b5fe9d644dd4ee31c6fcf.png

思想:

1)针对CTC网络的条件独立性假设(当前时刻输出与之前的输出条件独立),引入语言模型预测网络分支,通过联合前馈神经网络将二者结合,在预测最终输出时能够同时利用声学和语言特征信息;

2)在grapheme作为建模单元基础上,引入了词组单元wordpieces,能够捕获更长的文本信息,有利于减少替换错误;

模型:

CTC网络: 采用多级任务CTC,建模单元包括音素phoneme、字母grapheme、词条wordspieces,音素CTC结构采用5层LSTM(700cell)、字母CTC采用10层LSTM(700cell)、词条CTC采用12层LSTM(700cell);此外,在字母LSTM输出时,通过时域卷积(kenel size=3)来缩短时间片长度,减少参数量,加速训练的同时对效果不造成影响

预测网络: 对于字母建模单元,预测网络采用两层LSTM(1000cell);对于词条单元,因为词条标签数目较多,在LSTM之前引入一个较短的embedding层,维度为500

联合网络:采用前馈神经网络结构,即一层全连接层(700)+softmax+CTC损失

27425aecb4ac5de707df9fb71de6da2a.png

细节:

输入特征:声学特征输入特征80logfbank+一阶差分+二阶差分=240维;语言模型特征采用词组词典对应的one-hot向量

训练数据采用[2]中的数据增强,添加噪声和混响,每个样本得到20个左右的混响或噪声增强数据

CTC网络预训练采用多级(phonemes、graphemes、wordspieces)多任务CTC目标损失/预测网络预训练采用交叉熵损失/联合网络采用词条单元wordspieces CTC目标损失

音素级CTC的输出单元个数为61个phoneme+blank;字母级CTC的输出单元个数为44grapheme+blank;词条级CTC的输出单元个数为1000~30000有效词条+blank

2e05bcf39e16002589398b37f96dee47.png

grapheme

16b28957889035f7a8807e33bfa92dc1.png

wordspiece

解码:beam search,输出单元为grapheme beam width=100;输出单元为词条时beam width=25

训练:

声学模型训练数据集:18000小时voice-search、voice-dictation+混响和噪声增强;语言模型训练数据集:10亿句文本数据,来源于voice-search、voice-dictation、匿名化google搜索等日志;测试集15000voice-search utts+15000voice-dictation utts

CTC网络和预测网络采用预训练进行初始化,联合网络随机初始化

grapheme beam width=100,wordpieces beam width=25

预测:当前步输出yu = p(y|xt,yu-1),如果yu为non-blank,那么下一步预测输出为p(y|xt,yu),否则下一步输出为p(y|xt+1,yu-1);当最后一个时间步T输出为blank时终止

实验:

论文中RNN-T取得了接近state-of-the-art的效果WER :voicesearch 8.5% voice-dictation 5.2%

CTC网络和语言模型预训练,均有助于提升效果

提升LSTM深度从5层到8层,带来10%相对提升

wordspiece RNN-T相对于grapheme RNN-T实际效果更好,原因在于wordspiece作为输出单元能够降低替换错误

grapheme LSTM输出,通过时域卷机操作(kernel size=3),在不影响实际效果的情况下,有效减少wordpiece输入的时间片维度,节省wordpiece LSTM参数训练和解码的时间

wordspiece作为输出单元时,相对于grapheme,语言模型困惑度更低

增加wordspiece输出单元个数1k->30k,有助于进一步降低语言模型困惑度,提升实际效果,但也相应的增大了参数量

5e33fc41dfd0b56ca72600e8e51e4d4a.png

89be6b9049a656a28b080f77592b594c.png

环境:

kaldi特征提取+CMVN

pytorch模型构建及训练

数据集:aishell1 178h train/dev/test

输入:3*left-context+current frame+0*right-context=4*40=160维

模型:

CTC网络4*Bi-LSTM(320)

预测网络:1*LSTM(512)

联合网络:1*full_connect(512)+tanh+softmax(4232)

ac5e56239a37654779b8496fc4900994.png

训练:

SGD

max_gram=200

lr=0.0001

momentum=0.9

weight_ratio=0.5

c16d5ac75362c8c7caa1490a0c642bb5.png

解码:贪心搜索,每一个时间步取最大概率对应的输出

效果:aishell dev:10.13/test:11.82

a26fcf00f177ff9df3f6d6fa7a3f9317.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Storm环境搭建(分布式集群)

作为流计算的开篇,笔者首先给出storm的安装和部署,storm的第二篇,笔者将详细的介绍storm的工作原理。下边直接上干货,跟笔者的步伐一块儿安装storm。 原文链接:Storm环境搭建(分布式集群) Step1…

18.QT-QPlainEdit 信号与槽

QPlainEdit编辑功能 Public Slots void appendHtml ( const QString & html ) void appendPlainText ( const QString & text ) void centerCursor () void clear () void copy () void cut () void insertPlainText ( const QString & text ) void paste () void …

嘻嘻

今天我们来聊一下如何减肥? 其实我也不知道,嘻嘻~ 开个玩笑 好了,今天我们继续来学习新的知识。 在前两篇文章中,我们接触到了索引的概念,今天我们要对索引进行一个拓展。首先我们先来看一下下面这段代码: …

mysql :完整性约束

---恢复内容开始--- 一:介绍 约束条件与数据类型的宽度一样 ,都是可选参数 作用,用于保证数据的完整性和 一致性 主要分为: primary key (pk) 标识该字段为该表的主键, 可以唯一的标识记录 foreign key (fk…

php htts cookies,Http和Https下的cookie的写入问题

session和cookie是不一样的session存储在服务器,cookie存储在客户端设置cookie:function setcookie ($name, $value null, $expire null, $path null, $domain null, $secure null, $httponly null) {}获取cookie:$_COOKIE[$sCookieName];题主的写法只是操作了服务器端的…

java 做项目踩坑,web项目踩坑过程

sql函数设计:一开始本来是直接用Java的jdbc直接传输操作语句的。但后来学了存储过程发现存储过程可以提高不少的效率。就重构了自己对数据库的操作代码。包括:开启,查找,修改,关闭。开启:直接使用的构造函数…

matlab设计理想数字带通滤波器,基于matlab的数字带通滤波器课程设计报告

基于matlab的数字带通滤波器课程设计报告 1 西安文理学院机械电子工程系 课程设计报告 专业班级 08级电子信息工程1班 题 目 基于 MATLAB 的数字带通滤波器 学 号 学生姓名 指导教师 2011 年 12 月 西安文理学院机械电子工程系2 课程设计任务书 学生姓名 _______专业班级 _____…

xml序列号错误

xml序列号错误((XmlHelper.Deserialize))提示&#xff1a;XML 文档(1, 2)中有错误。{"不应有 <entryOrder xmlns>。"} 原因&#xff1a;1.缺少根目录&#xff08;<root>&#xff09;2.xml字段转换失败&#xff08;string->int&#xff09; ----------…

关于windows10 CMD 的一些操作

之前接触过cmd的一些操作方法&#xff0c;比如用dir、tasklist等一些方法&#xff0c;但是用了会立马忘记&#xff0c;再用到时又要重新google&#xff0c;这着实让我头痛&#xff01;&#xff01;&#xff01; 今天又碰到一个关于改变目录的问题&#xff0c;又是纠结万分&…

oracle dblink 验证,Oracle DBLINK 简单使用

oracle在进行跨库访问时&#xff0c;可以通过创建dblink实现&#xff0c;今天就简单的介绍下如果创建dblink&#xff0c;以及通过dblink完成插入、修改、删除等操作首先了解下环境&#xff1a;在tnsnames.ora中配置两个数据库别名&#xff1a;orcl(用户名&#xff1a;wangyong …

六、表达式:前缀后缀

count为运算后的值。 转载于:https://www.cnblogs.com/Strugglinggirl/p/9026856.html

ubuntu中安装hadoop集群

hadoop是由java 语言编写的主从结构分布式计算存储架构 准备工作&#xff1a; 操作系统&#xff1a; Ubuntu16.04 软件安装包&#xff1a;jdk-8u171-linux-x64.tar.gz &#xff1b; hadoop-2.6.5.tar.gz 配置环境&#xff1a;3台虚拟机 master:192.168.122.10node1 …

linux 内核3.8,[Beaglebone] BBB迁移到linux 3.8实时内核

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;动机之前使用TI SDK提供的3.2标准内核&#xff0c;在和fpga进行高速通信时出现CPU 100%中断响应延迟严重(偶尔>50ms)造成数据丢包。为达到严格的中断响应速度(&…

软考解析:2017年上半年下午试卷

软考解析&#xff1a;2017年上半年下午试卷 第一题&#xff1a;数据流图 第二题&#xff1a;数据库设计 第三题&#xff1a;面向对象开发 真题 理论 类图 状态图 解题思路 第四题&#xff1a;算法与数据结构 第五题&#xff1a;设计模式与Java转载于:https://www.cnblogs.com/…

PHP配置开发环境

PHP配置开发环境 1.建3个文件夹&#xff1a; 2&#xff1a;找到apache的安装包 3&#xff1a;可以随意写 4&#xff1a; 5&#xff1a;找到你的apache的路径 6&#xff1a;注意&#xff1a;不要解压到当前文件夹 7&#xff1a;剪切替换名字修改为php 8&#xff1a;在apache >…

linux下tar包安装sudo命令,ubuntu12.04LTS安装gv-412-Linux-x86.tar.gz方法

折腾了2天多&#xff0c;终于装好了。操作系统Ubuntu 12.04 LTS (在win7系统下用ubuntu的windows安装工具安装的&#xff0c;有点类似双系统)gaussian view程序gv-412-Linux-x86.tar.gz(软件可以从这里找到一些Linux&WinGaussian&gview下载地址)特别提示下面的设计到的…

6章 Models

传统的MVC结构中&#xff0c;有模型这么一个概念。Django中&#xff0c;Models又是怎么一回事呢? 刚才生成的这些乱七八糟的数据迁移就是Django自带的一些应用 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessio…

android activity之间传递对象,Android Activity之间的数据传递

一、通过startActivity来进行Activity的传值在Android中&#xff0c;如果我们要通过一个Activity来启动另一个Activity&#xff0c;可以使用 startActivity(Intent intent)方法来传入一个Intent对象&#xff0c;这个Intent对象我们可以精确的指定我们需要跳转的Activity上&…

[UE4]更新UI的三种方式

一、函数绑定 二、属性绑定 只会列出匹配的数据类型。 三、事件驱动更新 啦啦啦啦啦 结论&#xff1a;函数和属性绑定的原理都是每帧都去调用绑定的函数/属性&#xff0c;效率比较低下&#xff0c;一般不推荐使用。事件驱动更新的效率最好&#xff0c;性能最好。 在正式的产品开…

使用handler倒计时

点击button暂停 public class MainActivity extends AppCompatActivity {BindView(R.id.button)Button button;BindView(R.id.first_textview)TextView textView;Handler mHandler;volatile boolean flagtrue;Object objectnew Object();MThread mThread;Overrideprotected voi…