摘要
最近,使用连续时序分类(CTC)训练的神经网络声学模型被提出,作为传统的交叉熵训练的神经网络声学模型的替代方法,其中,交叉熵方法每10ms输出一帧。与传统模型相反,CTC联合声学模型一起学习对齐,并且除了传统声学状态单元外还输出空白符号。这允许CTC模型以低帧率运行,与传统模型中的10ms不同,其是每30ms输出一帧,从而提高了整体系统速度。在这项工作中,我们探索传统模型在低帧率下的行为。在一个大词汇量的语音搜索任务上,我们将证明,使用传统模型,与基于CTC的模型相比,我们可以将帧率降低到40ms,同时将WER相对提高3%。
1.介绍
传统的混合神经网络声学模型在每个帧(即10毫秒)上为每个内容相关(CD)状态的声学单元输出帧级预测。这些CD状态用作隐马尔可夫模型(HMM)的发射概率。当第一代使用深度神经网络(DNN)的混合系统出现时,更多的循环体系结构显示了混合系统的额外优势,这包括长短期记忆(LSTM)循环神经网络和卷积长短期记忆深度神经网络(CLDNN)。这些模型通常使用帧级交叉熵损失以及序列判别损失训练。传统模型的缺点之一是它们需要帧级对齐以进行交叉熵训练。
为了解决帧标签问题,提出了使用连续时序分类(CTC)训练的RNN架构。CTC提供了一种在将输入帧序列映射到输出标签序列时学习声学模型的机制。为了允许输出序列短于输入序列,除了常规模型中的常规声学单元之外,还使用空白输出符号。
在[1]中表明,CTC-LSTM声学模型优于常规LSTM模型。为了加快CTC训练,这些CTC-LSTM模型使用了一种状态相关的音素(CD-Phones)[8]。具有CD-Phones的CTC的好处之一是,它允许模型每30ms输出一个符号,而不是传统的10ms。 这种低帧率减少了输入和输出序列的长度,从而减少了解码期间的计算成本,并改善了等待时间。另外,在训练时,此设置减少了每个输出序列可能的不同对齐的数量,进而减少了任务的难度,从而产生了有效的训练。
尽管CTC不需要预先进行对齐,但它也有一些缺点。首先,[9]证明了CTC模型严重拟合训练数据,并且只有在训练超过40,000小时的数据后才能与传统模型的性能相匹配。其次,使用CTC损失的结果是,可以在其相应的输入事件之后任意延迟检测输出目标的时间。这意味着,经过CTC训练的模型无法对输入和输出序列进行准确的对齐。因此,由于输出延迟,可能会引入额外的延迟。为了克服等待时间问题,在[1]中,仅使用了与给定强制对齐相差不超过100毫秒的对齐。从随后的序列训练阶段中删除了此约束,并且所生成的模型的性能与未约束的模型一样好,但是与仅具有50ms延迟的常规模型相比,该系统的延迟约为150ms。第三,虽然在传统模型的[5]中显示了向LSTM体系结构中添加卷积层是有帮助的,但是[1]并未发现在使用CTC目标进行训练时附加层是有帮助的。
本文的目的是探讨在使用低帧率和CD-Phones对传统LSTM型模型进行训练时的行为。我们将此模型称为低帧率(LFR)模型。使用标准交叉熵和序列训练损失训练这些模型。我们注意到,尽管也可以使用低帧率训练CTC模型,但我们使用术语LFR来指代传统模型,因为这是本文研究的重点。在一个大词汇量的语音搜索任务上,我们将证明LSTM LFR模型可以与CTC模型的性能相匹配,两者均以30ms帧率进行训练。此外,我们通过上述CTC模型解决了许多问题。首先,我们将证明与CTC相比,使用具有LFR的CLDNN可以额外获得3%的相对改进。其次,与LTC模型相比,我们可以将帧前进增加到40ms,而只有80ms的输出延迟,而使用CTC则需要30ms的帧速率和150ms的输出延迟。最后,与CTC相比,LFR模型对较小的数据集更健壮。
本文的其余部分安排如下。在第2节中,我们描述了传统训练和CTC训练,以及在这项工作中探索的LFR模型。在第3节和第4节中,我们讨论实验和结果,最后在第5节中得出结论。
2.使用LSTM RNN的声学模型
在本节中,我们将介绍使用神经网络进行声学建模的各种方法。一旦选择了声学单元(即CD-states,CD-phones),就可以使用硬(Viterbi)或软(Baum-welch)对齐训练。此外,可以使用各种目标函数训练这些模型,包括交叉熵(CE),CTC和序列训练(ST)。我们将在以下部分描述这些不同的因素,包括我们提出的LFR模型。对于这些不同因素的更详细的总结,我们请读者参考[9]。
2.1 使用交叉熵训练的传统模型
将长度为
T
T
T发音输入序列表示为
x
=
x
1
,
…
,
x
T
\pmb x=x_1,\dots,x_T
xxx=x1,…,xT,其中
x
t
∈
R
N
x_t∈\mathbb R^N
xt∈RN是帧级特征向量(即log-mel特征),
w
\pmb w
www是输出单词序列。使用维特比可以近似将声音似然表示为:
p
(
x
∣
w
)
=
∏
t
=
1
T
p
(
x
t
∣
l
t
)
p
(
l
t
∣
l
t
−
1
)
,
p(\pmb x|\pmb w)=\prod^{T}_{t=1}p(x_t|l_t)p(l_t|l_{t-1}),
p(xxx∣www)=t=1∏Tp(xt∣lt)p(lt∣lt−1),
这里
l
1
,
…
,
l
T
l_1,\dots,l_T
l1,…,lT是通过将发音与单词序列
w
\pmb w
www强制对齐而计算出的标签序列,通常由预先存在的模型(例如GMM或神经网络)执行。在混合解码中,HMM的发射概率被定义为
p
(
x
t
∣
l
t
)
=
p
(
l
t
∣
x
t
)
p
(
x
t
)
/
p
(
l
t
)
p(x_t|l_t)=p(l_t|x_t)p(x_t)/p(l_t)
p(xt∣lt)=p(lt∣xt)p(xt)/p(lt),此处的标签后验概率由神经网络声学模型的输出给出,可以使用当前帧左边的
L
L
L帧和右边的
R
R
R帧的上下文进行计算 ,表示为
p
(
l
t
∣
x
t
)
≈
p
(
l
t
∣
x
t
−
L
:
x
t
+
R
)
p(l_t|x_t)≈p(l_t|x_{t-L}:x_{t+R})
p(lt∣xt)≈p(lt∣xt−L:xt+R),当进行
l
t
l_t
lt的帧级预测时,这允许神经网络合并声学上下文。标签先验概率
p
(
l
t
)
p(l_t)
p(lt)是通过对强制对齐产生的标签频率进行计数而获得的。数据似然性
p
(
x
t
)
p(x_t)
p(xt)不依赖于标签,因此出于训练和解码目的可以忽略。
给定输入序列
x
\pmb x
xxx和大小相等的相应帧级别对齐
l
\pmb l
lll,首先训练神经网络声学模型,以使所有声学帧上的CE损失最大化,如下所示:
L
C
E
=
−
∑
(
x
,
l
)
∑
t
=
1
∣
x
∣
l
o
g
p
(
l
t
∣
x
t
)
.
(1)
\mathcal L_{CE}=-\sum_{(x,l)}\sum^{|x|}_{t=1}log~p(l_t|x_t).\tag{1}
LCE=−(x,l)∑t=1∑∣x∣log p(lt∣xt).(1)
这里的
p
(
l
∣
x
)
p(l|x)
p(l∣x)是神经网络的softmax输出层之后的标签。该损失的缺点是每个标签是相互独立的,这可以通过使用序列判别损失进行其他训练来解决此问题,如下所述。
2.1.1 传统建模
大多数ASR系统都假设语音信号可以在10毫秒的时间尺度上近似为分段平稳过程,从而导致前端每10毫秒产生局部移位不变表示(例如 x t x_t xt是log-mel滤波器组)。随着音素以更长的时间规模出现,每个音素通常分为3个分段固定模型,其中对应的HMM拓扑是带有自环的3状态,从左到右的模型。训练无状态声学模型(例如GMM,DNN)以每10ms在HMM状态上提供分布 p ( x t ∣ s t ) p(x_t|s_t) p(xt∣st),从而匹配前端帧率。然后,使用经过训练的10ms模型提供的固定对齐方式,如上所述进行CE训练。
2.1.2 LFR建模
有状态的循环声学模型能够在发出预测之前处理更多的输入,因此无需假设信号平稳。因此,无需将音素分为多个子单元,而是HMM可以直接使用音素(例如CD-Phones)。这些修改使我们可以消除10ms的限制,并且在LFR建模中,我们以较低的帧速率或等效地以较高的帧前进(即20ms,30ms等)计算输出标签 l t l_t lt。尽管可以使用替代的前端,但在这项工作中,我们使用典型的10ms log-mel前端,但是将连续的帧堆叠在一起以弥补较低的速率,然后对帧进行二次采样以达到所需的帧速率,如[4]所示。软目标标签类后验是通过在所需帧频窗口中的10ms后验平均来创建的。
2.2 使用CTC训练的声学模型
连续时序分类(CTC)方法是诸如RNN之类的序列模型的训练标准,其中声学模型是与标签序列一起学习的。CTC模型与常规框架模型在两个方面有所不同。首先,CTC模型引入了一个额外的
b
l
a
n
k
blank
blank标签,以减轻网络在不确定时进行帧级标签预测的负担。其次,训练标准在序列级别进行操作,并优化状态序列的对数概率,而不是如等式1中那样优化独立输入帧的对数似然。
CTC损失函数定义为每个训练样例正确标签的负对数概率之和:
L
C
T
C
=
−
∑
(
x
,
l
)
l
n
p
(
z
l
∣
x
)
(2)
\mathcal L_{CTC}=-\sum_{(x,l)}lnp(z^{l}|x)\tag{2}
LCTC=−(x,l)∑lnp(zl∣x)(2)
其中
x
\pmb x
xxx是声学帧的输入序列,
l
\pmb l
lll是目标标签序列(例如说话的语音转录),
z
l
z^l
zl是
x
\pmb x
xxx与
l
\pmb l
lll的所有可能对齐的编码表示,它允许存在重复标签,以及存在
b
l
a
n
k
blank
blank标签。
可以使用以下公式估算正确标签
p
(
z
l
∣
x
)
p(z^l|x)
p(zl∣x)的概率:
p
(
z
l
∣
x
)
=
∑
π
∈
z
l
∏
t
y
π
t
t
(3)
p(z^l|x)=\sum_{\pi \in z^l}\prod_t y^t_{\pi_t}\tag{3}
p(zl∣x)=π∈zl∑t∏yπtt(3)
其中
y
s
t
y^t_s
yst是符号
s
s
s在时间
t
t
t的softmax输出,而
π
π
π枚举
z
l
z^l
zl中的所有路径。易处理的前向后向算法被用于计算路径概率的求和(有关更多详细信息,请参见[7])。从等式3可以看出,在网络内部状态给定的情况下,输出标签被认为是独立的,这阻碍了语言模型信息的合并。使用序列判别标准可以通过额外的训练来缓解这种弱点。
2.3 序列判别训练
完成CTC或CE训练后,通常使用序列级判别训练标准对模型进行再训练,该标准在目标函数上与ASR WER目标函数更加匹配。在实践中,已证明ST可以改善通过CE或CTC训练训练的神经网络模型。 在本文中,我们探索使用状态级最小贝叶斯风险(sMBR)标准训练所有模型。
3.实验设置
3.1 神经网络结构
用于所有实验的声学特征是每10毫秒在25毫秒窗口上计算的80维对数梅尔滤波器组能量。在当前帧
t
t
t处,这些特征以
l
=
7
l=7
l=7帧向左堆叠,并下采样得到所需的帧速率,以产生640维特征
x
t
−
1
:
x
t
x_{t-1}:x_t
xt−1:xt。这与本文所有NN实验所使用的特征相同,并且与[4]中使用的特征类似。
与[4]类似,用于CTC训练的LSTM模型由5个LSTM层组成,其中每层含有640个隐藏单元,并且没有投影层。总计约20M参数。用于LFR建模的CLDNN模型具有卷积层,LSTM和DNN层。首先,将
8
×
80
t
i
m
e
×
f
r
e
q
u
e
n
c
y
8\times 80~time\times frequency
8×80 time×frequency的log-mel特征带入具有
8
×
15
8×15
8×15的滤波器大小和
256
256
256个特征映射的单个卷积层中。卷积后,我们在
f
r
e
q
u
e
n
c
y
frequency
frequency上使用窗口大小为6的非重叠最大池化。卷积层的输出传递到具有256个输出的线性映射层,然后传递给3个LSTM层(具有832个隐藏单元和512个投影单元)层。最后,我们将LSTM的输出传递给具有1024个隐藏单元的完全连接的ReLU层。同样,为了减少参数的数量,将softmax层分解为两个,中间是一个具有512个单元的线性低秩层。CLDNN模型还具有约20M参数。所有声学模型都有9,287个CD-phone输出目标。
3.2 训练过程
最初使用异步随机梯度下降(ASGD)优化的CE训练LFR模型。这些模型使用由现有的10ms CD-state模型生成的现有强制对齐。特征被提取并堆叠,我们保留每第n个特征帧(例如,n = 3表示30毫秒)并将其余部分丢弃。使用相同的前端配置对CTC模型进行了训练,每30ms生成一帧(有关更多详细信息,请参见[1])。对于LFR模型,我们通过平均n个1-hot目标标签来产生软目标,从而将CD-state映射到CD-Phones和子样本。所有LFR模型均采用1-state HMM进行训练。然后使用与[6]相似的设置,使用sMBR对模型进行序列判别训练。在训练期间,循环网络将展开20个时刻,以进行截断的反向传播(BPTT)训练。所有结果均在ST后进行测试。此外,输出状态标签会延迟 k k k帧,其中实验选择 k k k可以在准确性和延迟之间取得良好的平衡,如结果所示。
3.3 解码过程
所有声学模型都使用基于WFST的单程解码器进行解码,该解码器使用1亿n元语言模型和超过500万个单词的词汇表。 解码器执行集束搜索,并且在任何时间点仅保留7,000个活动弧。