摘要

BLSTM解码时,解码器需要等待整个音频到达后才开始解码,因为时间反方向的前向传播需要末尾的历史信息。BLSTM这一延时问题使其不适用与实时语音识别。context-sensitive-chunk BLSTM(CSC-LSTM)和latency-controlled BLSTM(LC-BLSTM,延时控制-双向LSTM)都将整句切分为数个chunks。通过在每个chunk中添加左右上下文帧,并以chunk为单位进行前向计算,BLSTM的延迟可以控制为一个chunk左右的时长,并且与传统BLSTM相比,可以保持原有准确率基本不变。文本提出了两种LC-BLSTM。通过使用不同类型的神经网络拓扑以初始化BLSTM的cell状态;通过上下文帧和快速在线识别以降低计算开销。320h Swbd实验显示本文的解码速度能加速24%至61%而无识别率的损失。

 
 

在LSTM声学模型(包括其变形,比如highway LSTM网络)中,双向LSTM的识别率远远优于单向LSTM。然而双向LSTM模型的延迟极高,不适用于在线语音识别。为了克服这一限制,文献[1]、文献[2]、文献[10]和文献[11]研究了基于Chunk的训练与解码。

 
 

Chunk BPTT

文献[5]提出了Chunk BPTT。

加速BPTT训练

  • 将特征序列切分为固定长度的chunks
  • 将多个chunks组合为更大的batches

对Chunk大小的调优

使用一块NVIDIA GTX680 GPU对IAM手写数据集的训练时间如下:

能取得FER与训练时间之间的平衡。

 
 

epochwise BPTT

GPU的内存大小限制了一个mini-batch中的序列数(对于很长的序列来说),这会导致加速效果较差。

 
 

CSC BPTT

文献[6]提出CSC(Context-Sensitive-Chunk) BPTT训练方法以及基于CSCs的解码方法,并应用于手写识别中。

 
 

epochwise BPTT可表示为0-Full+0,由于此处的chunk即完整的帧序列

 
 

BPTT在BLSTM-HMM中的应用,以及提出了基于CSCs的解码方法

文献[7]将CSC-BPTT应用于语音识别中。

 
 

受到语音语句中协同发音的影响,每个音素的语音帧基本上只受之前和之后几帧影响。那么,就没有必要用BLSTM对整句话进行建模。因此,只需对一个较小的chunk建模即可。

 
 

帧或850毫秒。

 
 

基于CSC的解码

对于使用CSC-BPTT训练的BLSTM,待识别的语句也要使用与训练时相同的配置切分为多个CSCs。

若需要考虑到计算复杂度,那么解码时CSCs之间可以没有重叠;否则,CSCs之间可以有若干帧的重叠,以取得更高的识别率。比如:

 
 

LC-BLSTM

 
 

CSC-BLSTM未利用历史chunk的记忆状态信息,这带来了额外的计算。文献[8]提出了延时控制-BLSTM(LC-BLSTM)。在时间反向计算中,LC-BLSTM只使用修剪过的下文信息用作cell状态的初始化。

 
 

 
 

LC-BLSTM的改进

由于LC-BLSTM的时间反向计算中需要额外对右下文进行计算,这大大增加了计算量。为此,文献[9]提出了LC-BLSTM-FA、LC-BLSTM-FABDI与LC-BLSTM-FABSR

 
 

LC-BLSTM Without Forward approximation

 
 

LC-BLSTM-FA(With Forward approximation)

LC-BLSTM-FA去除了上述无用的计算

 
 

 
 

本节介绍两种效率改进的LC-BLSTM,用于快速实时在线语音识别

LC-BLSTM-FABDI(Forward Approximation and Backward DNN Initialization)

每个BLSTM层的前向计算步可以分解为:

时间正向:

时间反向:

 
 

 
 

 
 

LC-BLSTM-FABSR(Forward Approximation and Backward Simple RNN)

第二种结构被称为"forward approximation and back-

SRNN的训练需要处理长程依赖,因此容易发生梯度爆炸。为此在LC-BLSTM-FABSR的训练中,需要使用更为严格的梯度修剪以促进收敛。

实验表明,LC-BLSTM-FA的WER优于LC-BLSTM-FABDI、LC-BLSTM-FABSR,但LC-BLSTM-FABDI和LC-BLSTM-FABSR的解码速度比前者快。

参考文献

  1. A. Zeyer, R. Schluter, and H. Ney, "Towards online-recognition with deep bidirectional LSTM acoustic models," Proceedings of Interspeech, vol. 08-12-Sept, pp. 3424–3428, 2016.
  2. P. Doetsch, M. Kozielski, and H. Ney, "Fast and Robust Training of Recurrent Neural Networks for Offline Handwriting Recognition," Proceedings of International Conference on Frontiers in Handwriting Recognition, ICFHR, vol. 2014-Decem, pp. 279–284, 2014.
  3. K. Chen, Z.-J. Yan, and Q. Huo, "Training Deep Bidirectional LSTM Acoustic Model for LVCSR by a Context-Sensitive-Chunk BPTT Approach," in Proceedings of the Interspeech, 2015.
  4. A.-r. Mohamed, F. Seide, D. Yu, J. Droppo, A. Stoicke, G. Zweig, and G. Penn, "Deep bi-directional recurrent networks over spectral windows," in Automatic Speech Recognition and Understanding (ASRU), 2015 IEEE Workshop on. IEEE, 2015, pp. 78–83.
  5. P. Doetsch, M. Kozielski, and H. Ney, "Fast and Robust Training of Recurrent Neural Networks for Offline Handwriting Recognition," Proceedings of International Conference on Frontiers in Handwriting Recognition, ICFHR, vol. 2014-Decem, pp. 279–284, 2014.
  6. K. Chen, Z.-J. Yan, and Q. Huo, "A context-sensitive-chunk BPTT approach to training deep LSTM/BLSTM recurrent neural networks for offline handwriting recognition," Proc. ICDAR-2015.
  7. K. Chen, Z.-J. Yan, and Q. Huo, "Training Deep Bidirectional LSTM Acoustic Model for LVCSR by a Context-Sensitive-Chunk BPTT Approach," in Proceedings of the Interspeech, 2015.
  8. Yu Zhang, Guoguo Chen, Dong Yu, and Kaisheng Yao, "High- way long short-term memory RNNs for distant speech recog- nition," in IEEE International Conference of Acoustics,Speech and Signal Processing (ICASSP), 2016, pp. 5755–5759.
  9. IMPROVING LATENCY-CONTROLLED BLSTM ACOUSTIC MODELS FOR ONLINE SPEECH RECOGNITION. Shaofei Xue, Zhijie Yan, Alibaba Inc, China

BLSTM的训练算法、解码算法以及模型的改进的更多相关文章

  1. 条件随机场CRF(三) 模型学习与维特比算法解码

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在CRF系列的前两篇,我们总结了CRF的模型基 ...

  2. 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态 ...

  3. 程序员训练机器学习 SVM算法分享

    http://www.csdn.net/article/2012-12-28/2813275-Support-Vector-Machine 摘要:支持向量机(SVM)已经成为一种非常受欢迎的算法.本文 ...

  4. h.264并行解码算法3D-Wave实现(基于多核共享内存系统)

    3D-Wave算法是2D-Wave的扩展.3D-Wave相对于只在帧内并行的2D-Wave来说,多了帧间并行,不用等待前一帧完成解码后才开始下一帧的解码,而是只要宏块的帧间参考部分以及帧内依赖宏块解码 ...

  5. h.264并行解码算法2D-Wave实现(基于多核共享内存系统)

    cache-coherent shared-memory system 我们最平常使用的很多x86.arm芯片都属于多核共享内存系统,这种系统表现为多个核心能直接对同一内存进行读写访问.尽管内存的存取 ...

  6. h.264并行解码算法2D-Wave实现(基于多核非共享内存系统)

    在<Scalable Parallel Programming Applied to H.264/AVC Decoding>书中,作者基于双芯片18核的Cell BE系统实现了2D-Wav ...

  7. Base64编码和解码算法

    Base64么新鲜的算法了.只是假设你没从事过页面开发(或者说动态页面开发.尤其是邮箱服务),你都不怎么了解过,仅仅是听起来非常熟悉. 对于黑客来说,Base64与MD5算法有着相同的位置.由于电子邮 ...

  8. 记录:EM 算法估计混合高斯模型参数

    当概率模型依赖于无法观测的隐性变量时,使用普通的极大似然估计法无法估计出概率模型中参数.此时需要利用优化的极大似然估计:EM算法. 在这里我只是想要使用这个EM算法估计混合高斯模型中的参数.由于直观原 ...

  9. Linux同步互斥(Peterson算法,生产者消费者模型)

    同步 两个或两个以上随时间变化的量在变化过程中保持一定的相对关系. 互斥 对一组并发进程,一次只有一个进程能够访问一个给定的资源或执行一个给定的功能. 互斥技术可以用于解决诸如资源争用之类的冲突,还可 ...

随机推荐

  1. 苹果手机对网页上样式为position:fixed的弹窗支持不好的解决办法

    在Web页面上,如果想模拟对话框效果,一般会给div元素添加position:fixed的样式来实现,然后给背景添加一个半透明的遮罩.如: .fixedDiv { position: fixed; t ...

  2. jquery字符串操作

    目的:把自己常用到的jquery操作字符串总结一下 w3cSchool关于js字符串的整理:有需要的时候可以查 http://www.w3school.com.cn/js/jsref_obj_stri ...

  3. Django学习笔记(2)--视图函数

    用pycharm打开FDJ项目 URL分发器 视图: 视图一般都写在app的view,py中.并且视图的第一个参数永远都是request(一个HttpRequest)对象.这个对象存储了请求过来的所有 ...

  4. AppCan移动开发技巧:3步走,获取移动APP签名信息

    大家知道,在移动APP开发里,与应用包名一样,应用的签名信息需是唯一的,否则将会出现应用冒领.重复安装等问题.之前分享过安卓应用的签名如何获取(点击查看),这里将继续以AppCan平台为例,分享如何获 ...

  5. commons-lang3之StringUtils

    字符串是一种在开发中经常使用到的数据类型,对字符串的处理也变得非常重要,字符串本身有一些方法,但都没有对null做处理,而且有时可能还需要做一些额外处理才能满足我们的需求,比如,要判断某个字符串中是否 ...

  6. visual studio中各文件的输出路径

    dll或exe输出路径一般在 配置属性->链接器->常规->输出文件 中 若该路径与 配置属性->常规 中的输出目录+目标文件名+目标文件扩展名不一致,可能会有提示,建议保持一 ...

  7. 使用redis可能出现的问题

    1)缓存与数据库双写不一致 2)缓存雪崩 3)缓存穿透 由于缓存中不存在某个key,所有的请求都会落到数据库上,会对数据库造成很大压力,甚至崩溃 一个简单的方案是将不存在的数据也缓存起来(value值 ...

  8. 转: 通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号

    最近由于项目的需要,需要在程序中获取机器的硬盘序列号和MAC地址等信息,在C#下,可以很容易的获得这些信息,但是在C++程序中感觉比较麻烦.经过百度,发现很多大虾都是通过WMI来获取这些硬件信息的,网 ...

  9. MySQL中的用户与授权

    grant all on *.* to root@'192.168.20.49'; grant select on *.* to root@192.168.20.49 ; -- dba 可以查询 My ...

  10. jQuery的事件处理

    一.页面加载响应事件 $(document).ready()方法,获取文档就绪的时候.他极大地提高了Web相应速度.虽然该方法可以代替传统的window.onload()方法,但是两者之间仍然有差别. ...