用外行术语解释 Kaldi 的对象

Kaldi's objects explained in layman's term

我想了解 Kaldi 的内部工作原理,但是在理解 kaldi's doc 的技术细节时遇到了困难。

我想先对各种对象有一个高层次的理解,以帮助消化所呈现的内容。我特别想知道 .tree、fina.mdl 和 HCLG.fst 文件是什么,生成它们需要什么以及如何使用它们。

依稀明白(如有错误请指正):

我知道有很多内容要讲,但我们非常感谢您的帮助!

你最好一次问一个问题。还有,最好先看书理解理论,而不是一下子就掌握。

final.mdl is the acoustic model and contains the probability of transitioning from one phone to another

声学模型模型 final.mdl 的主要组成部分是声学检测器,而不是转换概率。它要么是一组 phones 的 GMM,要么是一个神经网络。声学模型还包含从一个 hmm 状态到另一个 hmm 状态的转换概率,这是为单个 phone 构建 HMM 模型的原因。 phones 之间的转移概率在图 HCLG.fst

中编码

HCLG.fst is a graph that given a sequence of phones it will generate the most likely word sequence based on the lexicon, grammar and language model.

不完全是,HCLG fst 是一个有限状态转换器,它可以根据词典和语言模型为您提供状态序列的概率。 Phone 序列在图形中并没有真正使用,它们在图形构造中被考虑到。

not quite sure what adding a self-loop is, is it similar to the Kleene operator?

语音HMM对每个状态都有自循环,它允许状态持续几个输入帧。可以在书上找HMM拓扑看看环路。

lattice contain alternative word-sequence for an utterance.

这是正确的,但它还包含时间以及声学和语言模型分数。

但是 HCLG(即“H”和“C”中的)的转移概率是如何估计的?我明白了,因为 G 只是一个语言模型,所以可以从语料库中估计单词之间的转换概率,但我不明白“H”(将 HMM 状态转换为上下文相关音素的转换器)的转换概率是如何计算的估计我是否有一个用于声学模型的 DNN 并使用 GMM-HMM 的对齐方式对其进行训练,因为 DNN 的输出是具有发射概率的 softmax。转换概率是简单地从 GMM-HMM 模型中获取,还是像发射概率一样在训练期间更新?