这篇文章是阿里语音团队与2017年发表到ICASSP上的工作。

LSTM和BLSTM在声学建模中的应用

因为LSTM能对序列性问题进行较好的建模,而语音信号正是序列;所以语音识别的声学建模越来越多采用LSTM结构;其中比较有名的是谷歌提出的CLDNN模型了;
而BLSTM因为考虑到未来的语音信息,所以识别结果会好于单向LSTM。但标准的BLSTM很难应用到语音识别任务中,主要有以下两个原因:

  1. 训练耗时:由于需要进行逐帧计算,无法有效发挥 GPU 等并行计算工具的计算能力
  2. 解码耗时:由于需要用到整句递归(因为需要用到反向信息)计算每一帧的后验概率,解码延迟和实时率无法得到有效保证

针对上面的两个问题,提出了下面几种改进版BLSTM

一、context-sensitive- chunk (CSC) BLSTM

其基本思想就是:我们把一整句话分成一小块一小块(chunk),然后在每一小块上做BLSTM。同时为了利用过去的信息,和未来的信息。我们还会考虑当前chunk的左边chunk和右边chunk(跟LC BLSTM的那个图类似,只是多了左边的chunk)。通常我们设置当前chunk的大小为60帧,左边chunk的大小为30帧,右边chunk的大小为30帧。左边chunk用来初始化当前chunk的前向细胞层状态(memory cell states),右边chunk用来初始化后当前chunk的后向细胞层状态(memory cell states)。左边chunk和右边chunk不参与误差反向传播。

二、latency-controlled (LC) BLSTM

LC BLSM与CSC BLSTM唯一的不同是:LC BLSTM不需要计算左边chunk。具体结构如下图所示:
模型结构
当前chunk的前向细胞层状态通过前一个中心chunk的输出状态得到,这样就减少了计算量。论文原话:

latency-controlled (LC) BLSTMs are proposed in [12] which avoids the computation of left context. The memory cell states of the forward direction of the BLSTM are directly initialized by carrying over states from the previous chunk, while the memory cell states of the backward direction are still initialized using Nr future frames like CSC-BLSTM.

三、LC-BLSTM-FABDI 和 LC-BLSTM-FABSR

虽然LC BLSTM一定程度上减少了计算量,但实际上右边chunk采用BLSTM结构进行计算还是很耗时间的。于是论文作者就想说能不能用更简单的结构代替右边chunk的BLSTM结构。
通过分析,右边chunk无非就两个作用:

  1. 用于初始化当前chunk的后向细胞层状态;
  2. 用做下一层网络的输入(因为正常都会使用多层BLSTM)

那么,其实我们用简单的神经网络结构就能满足这两个作用。于是作者分别采用了两种简化的网络结构代替右边chunk的BLSTM结构(注意中心chunk还是采用BLSTM):

  1. LC-BLSTM-FABDI:采用简单的前馈神经网络代替右边chunk的BLSTM结构,如下图左边所示。
  2. LC-BLSTM-FABSR:采用简单的RNN结构代替右边chunk的BLSTM结构,但RNN会有梯度爆炸的问题,所以对其进行strict gradient-clipping。同时为了利用未来的信息,加入了target delay
    模型结构
    作者在320小时的Switchboard数据集上进行测试,在不影响wer的情况下,这个两种方法的解码速度分别相对提升40%和27%。

[1]: Training deep bidi- rectional LSTM acoustic model for LVCSR by a context- sensitive-chunk BPTT approach
[2]: High- way long short-term memory RNNs for distant speech recog- nition
[3]: IMPROVING LATENCY-CONTROLLED BLSTM ACOUSTIC MODELS FOR ONLINE SPEECH RECOGNITION

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐