kaldi官网(https://github.com/kaldi-asr/kaldi)合并了Lookahead graph decoding #3616。look ahead的具体解释:将当前节点历史下的后继单词语言模型得分最大值加进来(提前应用语言模型得分)。这一特性其实是主流解码器的一个特性,静态的构图HCLG.fst的缺点:

1.只要H或者C或者L或者G改变了,整个构图都需要改;

2.对G的大小也有限制,kaldi的fst对内存的消耗很大,

为了动态解码,可以使用look ahead graph compose.我们在内存只构建G.fst 和HCL.fst,在解码时需要的时候边compose边解码,即采用lazy 的方式,需要时解码时需要某一state才进行compose算法展开。


kaldi的实现里面使用openGrm来做arpa,具体性能对比:



其中图的大小如下: