transition-model这个类定义在./src/hmm/transition-model.h中。先介绍一下相关的概念:
- 每一个phone会有一个HMM topology,它会包含若干个hmmstate。
- 每一个hmmstate上会有一个相关的pdf_class.这个pdf_class 在经过决策树聚类后,会被一个pdf_id代替。
- 先定义了一个transition state=(phone,hmmstate,pdf_id),这是一个三元组,对应到某个phone的某个状态的pdf。
- 上一篇关于hmm-topology.h的介绍中,定义了transition的概念,它对应一个transition-index。
- 定义transition-id =(transition-state, transition-index)。
那么transition-model.h 实际上定义了上述的对应关系:
(phone, HMM-state, forward-pdf-id, self-loop-pdf-id) -> transition-state
(transition-state, transition-index) -> transition-id
涉及到的几个概念:
- phone: a phone index (1, 2, 3 …)
- hmmstate: a number (0, 1, 2…) that indexes TopologyEntry (see hmm-topology.h)
- pdf-id: a number output by the Compute function of ContextDependency. Zero-based.
- transition-state: the states for which we estimate transition probabilities for transitions out of them. In some topologies, will map one-to-one with pdf-ids. One-based, since it appears on FSTs.
- transition-index: identifier of a transition (or final-prob) in the HMM. Zero-based.
- transition-id: identifier of a unique parameter of the TransitionModel. =(transition-state, transition-index) pair. One-based, since it appears on FSTs.