本文共 2712 字,大约阅读时间需要 9 分钟。
LAS(Listen, Attend and Spell)是一种基于神经网络的端到端语音识别系统,能够直接将语音信号转录为文字。该系统由两个主要组件构成:收听器(Listener)和拼写器(Speller)。收听器负责将原始语音信号转换为高层次的语音表示,而拼写器则利用注意力机制进行字符解码,生成最可能的文字序列。
LAS的输入为一段语音信号,经过收听器处理后,输出一系列特征向量。拼写器则根据这些特征向量生成字符序列。具体而言:
LAS通过以下公式建模字符的条件分布:
[ P(\mathbf{y} \mid \mathbf{x}) = \prod_{i} P(y_i \mid \mathbf{x}, y_{<i}) ]
其中,$y_{<i}$ 表示前一个字符,$\mathbf{x}$ 表示输入语音信号。
收听器是一个双向长短期记忆RNN(BLSTM),通过金字塔结构降低时间分辨率。在每一层,时间分辨率减少一半,这样即使输入语音信号较长(如数百到数千帧),模型处理起来也不会显得过于繁琐。具体来说,第 $j$ 层在第 $i$ 时间步的输出为:
[ h_i^j = \text{BLSTM}(h_{i-1}^j, h_i^{j-1}) ]
为了进一步减少时间分辨率,我们采用多层金字塔BLSTM(pBLSTM),将每一层的输出连接起来,再将其送入下一层。这种方法不仅降低了计算复杂度,还使得模型能够更好地捕捉数据中的非线性特征。
在语音识别任务中,下采样是一种非常重要的预处理方法。通过降低语音信号的时间分辨率,可以显著减少模型的计算负担。传统的RNN下采样方法(如Pyramid RNN)和CNN下采样方法(如Time-delay DNN)都可以应用于LAS模型。具体来说:
对于 attention 类模型,通常会采用Truncated Self-Attention策略,以应对长语音序列中的计算复杂度问题。这种方法通过限制注意力范围(如只关注前后几帧)来加速训练和推理过程。
拼写器的核心组件是基于注意力机制的解码器。每个时间步,解码器状态 $s_i$ 和上下文向量 $c_i$ 的结合决定了下一个字符的概率分布。具体流程如下:
LAS模型中引入了两种注意力机制:
这两种注意力机制都可以应用于 LAS 模型,但具体选择哪一种取决于任务需求。
为了适应语音识别任务,LAS模型中引入了局部感知注意力机制。这种机制不仅考虑当前时间步的语音特征,还考虑前后几步的语音特征,生成更稳定的注意力权重。具体来说,时间步 $t=1$ 时的注意力权重 $\alpha_{1}^2$ 可以通过以下步骤计算:
在推理过程中,模型通过以下步骤生成最可能的字符序列:
具体来说,字符的最终概率为:
[ s(\mathbf{y} \mid \mathbf{x}) = \frac{\log P(\mathbf{y} \mid \mathbf{x})}{|\mathbf{y}|c} + \lambda \log P{\text{LM}}(\mathbf{y}) ]
其中,$|\mathbf{y}|_c$ 表示字符序列的长度,$\lambda$ 是语言模型权重。
尽管 LAS 模型在语音识别任务中表现出色,但仍有一些局限性:
转载地址:http://qfiyz.baihongyu.com/