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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,355评论 19 139
  • PMP第五版考点汇总冲刺版 第一章引论 P2:《PMI道德与专业行为规范》详细描述从业者在责任、尊重、公正、诚实方...
    文小梦阅读 23,470评论 5 102
  • 一早醒来,看到“写手圈第五期30天连续写作训练营”的李喆队长在群里艾特大家的信息:亲爱的伙伴们,今天是写手圈最后一...
    葛芳阅读 3,593评论 4 4
  • 独胆9 二胆19 三胆129 定位百:1369 十位:1459 个位:0278 4码1279 5码1...
    fedb3226e1a3阅读 3,203评论 0 0
  • 在图书馆趴了一会,醒来随手抓起眼镜戴上,迷迷糊糊中听到有个小东西掉在地上 然后 这已经不是第一次了,所以...
    大大郡阅读 3,902评论 0 0