语音识别引擎的基本系统框架如下图所示,深度学习模型中包含多层LSTM网络。
[[文件:12LSTM12.png|600px]]
LSTM通过巧妙的结构设计有效解决了RNN的上述问题,其核心在于细胞状态(Cell)的引入(如下图):细胞状态对应A中最上方的链式结构,负责保存长期信息。
[[文件:13LSTM13.png|600px]]
三个σ表示sigmoid函数;由于sigmoid函数的输出范围为[0,1],其输出向量u和其它向量v点乘的结果等效于v中的每个元素受到u中对应元素的门限作用,所以这三个sigmoid的输出向量在LSTM中被定义为门限,从左至右依次为:忘记门,输入门,输出门。
Kaldi中的LSTM模型结构及各个节点的计算公式如下图所示;整体结构和前文介绍的LSTM基本网络结构类似,主要区别在于两点:一是门限取决于当前时刻输入、前一时刻的输出及元胞状态这三项;二是为了降低LSTM输出数据维度、减少运算量,在输出门的输出状态后增加了一个projection线性变换层,用于实现输出数据降维。
[[文件:15LSTM15.png|600px]]
对于n帧的语音特征输入,单层LSTM的处理流程伪代码如下图所示:
[[文件:16LSTM16.png|600px]]
===Lucida中的实现方式===