目录
论文地址: here
摘要
在语音识别中,CTC模型因为天然的non-autoregressive特性,深受广大研究者的青睐。为了充分利用大量的文本数据优势,CTC模型通常会和LM模型进行融合,常用的融合方法包括重打分和浅融合。然而这两种融合方法由于beam search的引入,破坏了CTC模型的non-autoregressive特性,因此造成了语音识别模型推理速度的下降。
作者提出了PC-MLM(phone-conditioned Masked LM)错误校验方法。只需要对CTC的贪婪解码算法中置信度较低的Token进行mask,然后使用PC-MLM对mask的token进行预测即可。PC-MLM模型的输入为CTC模型的phone预测序列和masked token序列。另外,作者进一步将PC-MLM扩展为Deletable PC-MLM,有效缓解了插入错误。因为CTC和PC-MLM都是non-autoregressive的,作者提出的方法实现了CTC模型和LM模型的快速融合。实验结果显示,在CSJ和TED-LIUM2上,作者提出的方法推理速度更快,并且在CSJ上取得了更高的语音识别准确率。
介绍
常见的端到端语音识别方法包括基于CTC的模型、基于Attention的序列模型和RNN-T模型。其中基于CTC的模型可以同时并行预测所有token,也称之为非自回归预测。相反,基于Attention和RNN-T的模型都需要一个token一个token的预测,也称之为回归预测。
端到端语音识别模型的训练需要成对的语音-文本 数据。然而,在某个目标领域很难获取到大量的这种成对数据。但是,另一方面目标领域可能有很多领域内的文本数据。一种普遍的做法是将语音识别模型和外部LM融合,从而可以利用这些大量的文本数据。重打分融合方法,使用LM对语音识别的n-best预测结果进行重打分,得分最高的预测结果作为最终的预测结果。浅融合方法,在语音识别的每一步解码过程中将LM模型和ASR模型进行插值得分计算。这两种融合方法简单有效,因此被广泛应用于基于CTC的语音识别模型中。然而它们破坏了推理的高效性,这种高效性是CTC模型相比其它的端到端语音识别模型的一个非常重要优势。具体地说,使用beam-search寻找n-best预测结果破坏了它的非自回归特性。
除了重打分和前融合方法,还有基于KD(知识蒸馏)的LM融合方法,主要应用于基于attention的模型。LM模型的知识(教师模型)在ASR模型训练过程中教给了ASR模型(student)。尽管KD融合方法的优势在于,在预测时没有增加任何额外步骤,但这种方法获取的收益有限,可能是因为LM不能直接作用于ASR模型的推理。
在本论文中,作者提出了ASR错误校验方法,一个MLM(masked LM)负责对CTC预测序列中低置信度的token进行纠正。这种方法不需要beam-search,就能把所有低置信度的token并行进行纠正。也就是ASR和纠错过程都是非自回归的。然而MLM的效果并不是很好,可能是因为它没有考虑声学信息。为了解决这个问题,作者提出了Phone-based Masked LM(PC-MLM),将音素信息也加入进来。在CTC模型训练中引入了多任务训练,基于encoder的中间层预测音素。PC-MLM可以同时利用单词和音素信息进行纠错。同时为了减少插入错误,作者提出了Deletable PC-MLM,该方法可以对插入错误进行预测并删除。
预备和相关工作
1. CTC-based ASR
X = ( x , . . . , x t , . . . x T ) X = (x, ..., x_t, ... x_T) X=(x,...,xt,...xT)表示输入的声学特征; y = ( y 1 , . . . , y i , . . . , y L ) y=(y_1, ..., y_i, ..., y_L) y=(y1,...,yi,...,yL)表示输入 X X X对应的文本序列。CTC的encoder网络将输入 X X X编码为高层表示,长度为 T ′ {T}' T′。基于CTC的模型可以根据encoder编码预测帧级别的输出路径 π = ( π 1 , . . , π T ′ ) \pi =(\pi_1,..,\pi_{
{T}'}) π=(π1,..,πT′)。 ν \nu ν表示单词集合, ϕ \phi ϕ表示blank。在 t t t时刻CTC输出字符 v v v的预测概率可以用以下公式表示:
P C T C ( t , v ) = p ( v ∣ X , t ) P_{CTC}^{(t,v)}=p(v|X, t) PCTC(t,v)=p(v∣X,t)
其中 v ∈ ν ∪ { ϕ } v\in \nu \cup \left \{ \phi \right \} v∈ν∪{
ϕ}。在贪婪 解码中,CTC路径 π \pi π可以通过下面的公式计算:
π t = a r g m a x v P C T C ( t , v ) \pi_t=\underset{v}{argmax}P_{CTC}^{(t,v)} πt=va