美文网首页
kaldi 源码分析(七) - HCLG 分析

kaldi 源码分析(七) - HCLG 分析

作者: 走在成长的道路上 | 来源:发表于2018-08-17 18:00 被阅读0次

    Kaldi 语音识别主流程:


    语音识别过程

    解码网络使用 HCLG.fst 的方式, 它由 4 个 fst 经过一系列算法组合而成。分别是 H.fst、C.fst、L.fst 和 G.fst 4 个 fst 文件:

    1. G:语言模型,输入输出类型相同,实际是一个WFSA(acceptor接受机),为了方便与其它三个WFST进行操作,将其视为一个输入输出相同的WFST。
    
    2. L:发音词典,输入:monophone,输出:词;
    
    3. C:上下文相关,输入:triphone(上下文相关),输出:monophnoe;
    
    4. H:HMM声学模型,输入:HMM transitions-ids (对 pdf-id 和 其它信息编码后的 id),输出:triphone。
    

    通过如下组合方式来计算最终输出结果:

    HCLG = asl(min(rds(det(H' o min(det(C o min(det(Lo G))))))))
    

    上面的o表示组合,det表示确定化,min表示最小化,rds表示去除消岐符号,asl表示增加自环。

    其训练顺序为 G -> L -> C -> H (因 G 语法模型基于统计生成,L 则是在 G 生成过程中使用的基础,而 C 则是基于 L 生成的 phone 上下文关系依据决策树生成的结果)

    解码过程中使用 Lattice 来保存识别的候选序列,通过遍历得到得分最靠前的多条候选路径,即 N-best,即为输出文本。Lattice 本质是一个有向无环图( directed acyclic graph )。 图上的每个节点代表一个词的结束时间点,每条边代表一个可能的词,以及该词发生的声学得分和语言模型得分。

    参考

    语音识别中的lattice与confusion network
    kaldi lattice

    相关文章

      网友评论

          本文标题:kaldi 源码分析(七) - HCLG 分析

          本文链接:https://www.haomeiwen.com/subject/sxetiftx.html