Speech Decoding Using Lattice Rescoring

语音识别可以看成语音的解码过程。为了实现实时语音识别,可以采用lattice rescoring.语音识别框架包括声学模型,词典模型和语言模型。现在也可以通过加权有限状态转换器weighted finite-state transducer(WFST)构建语音识别框架。可以通过单次传输或者多次传输实现语音解码。lattice rescore是一种多次传输解码,先通过一个简单的低级知识进行首次传输解码,在通过高级别知识二次传输rescoring进行解码。

WFST:

对于已经存在的解码算法,(如Viterbi算法),使用WFST将语音知识集成为一个解码图。每一个WFST包含一个状态集合和转换集合。转移集合包含一个输入(如上下文独立的音素), 输出(如词)以及一个权重(如语言模型概率的自然对数)。当我们在WFST上使用Viterbi算法时,可以输出一个最优结果或者N-best结果。将N个最好的结果,放在一个图中,称之为lattice。使用Viterbi剪枝算法产生最好的几个结果。如下图所示。解码网络可以看成token(圆框)传播过程,每一个点都计算声学模型分数和语言模型分数,并累加到对应的token中。语音解码的过程中,每一次转换都对应一个token用于保存到该状态的解码分数,直到最后,选择N个最好的token组合为N-best识别结果。为了产生解码过程中的lattice,使用一个separate数据结构存储token转换集合。

Lattice Form

一个lattice可以看成使用简单知识单词传输解码产生的具有权重和标签的有向无环图。在束剪枝算法产生的搜索空间限制下,lattice应该包含N-best所以单词的路径,每一单词都是唯一的。如上图所示。尽管语音识别的结果可能包含多余的重复路径,应该使用剪枝等算法去除。

Lattice generation approaches

对于基于WFST的语音解码需要特定的产生lattice的方法。下列文献提出了不同的算法

“Efficient general lattice generation and rescoring,” (EuroSpeech), 1999, 该方法在解码图中加入音素,保存Viterbi back pointers,然后使用剪枝,去除空符号等产生lattice。

“Generating exact lattices in the WFST frameworks,” (ICASSP), 2012,该方法引入了HMM声学模型。如下图所示:

Lattice rescoring approaches

lattice rescoring属于在上述lattice的基础上,使用更高级的知识(如4元模型)二次解码的过程。在重新打分之前,要把转换集合的声学模型分数和语言模型分数分离。换句话说,原来的lattice中只保留声学模型分数,然后使用更高级的语言模型对语言模型分数重新打分。

猜你喜欢

转载自blog.csdn.net/yang_daxia/article/details/84781070