我刚刚在这里阅读了这篇文章(第一个答案):
https://www.quora.com/What-is-a-hidden-Markov-Model-HMM-and-how-can-it-be-used-in-speech-recognition
我有点得到它,但并不完全。没有太过技术化:单词识别究竟有多少工作?
在帖子中,hmm应该识别音素/k/ /a/ /t/
所代表的“猫”这个词。
所以让我们说hmm处于/ k /的状态。这意味着,它成功识别了/ k /,对吗?
它究竟如何识别/ a /?在/ k /下一个状态是/ a /之后有一定的概率,但是,e。 G。下一个状态是/ e /,对吗?
这些概率来自于在语料库中训练模型吗?因此,如果语料库中的大多数单词是/ ka /而不是/ ke /,则从state / k /到/ a /的概率高于从state / k /到/ e /?
以何种方式确定下一步它将进入/ a /的状态而不是/ e /?
它说音素是隐藏的部分......这是否意味着,我们无法看到,模型选择了哪个音素,我们可以看到它现在处于/ k /的状态?在处理完整个单词后,我们只能看到它选择了哪个音素,结果是否正确?
这意味着它只能从/ k /转到/ a /但是你无法保证找到正确的音素......?
我并不是想了解这个模型的细节,一般来说它是如何用于语音识别的。
答案 0 :(得分:0)
最好是阅读更多信誉良好的来源,而不是随机的Quora答案,以全面了解复杂的算法。例如,Rabiner的HMM教程是个好主意。您还可以查看Spoken Language Processing之类的教科书,该教科书为该主题提供了良好的描述。
语音识别中的可观察事件序列是音频帧序列。每帧大约是20ms的声音。不可观察事件的序列大致是音素序列。实际上它更复杂,但你可以想到音素。除了作为数学对象的HMM模型之外,关于称为维特比搜索的解码算法还有一个重要的部分,即根据概率找到可观察状态和隐藏状态之间的最佳匹配。该算法有效地评估所有可能的故障并找到最佳故障。最好的一个是解码结果。
所以让我们说hmm处于/ k /的状态。这意味着,它成功识别了/ k /,对吗?
在状态k"中没有"嗯。我们考虑第1帧并说它对应于" k"然后我们考虑第2帧并决定它是否对应于" k",以及#34; a"或者" e"。为此,我们使用先前帧的先前状态以及帧2和所有三个状态之间的声学匹配。这种声学匹配通常用单独的模型估计,例如高斯混合模型,不要将它与隐马尔可夫模型混淆。两种模型都是从语料库中估算出来的。在我们为第2帧存储一些可能的决定之后,我们移动到第3帧以确定它是否属于任何预期的隐藏状态。请注意,我们没有保留1个最佳决策,但在途中有多个可能的决策,因为本地最佳决策(2对应于a)可能不是全局最佳(2对应于e)。在解码结束时,隐藏状态和可观察状态之间存在完全关系,我们可以使用HMM估计这种关系的概率。
它究竟如何识别/ a /?在/ k /下一个状态是/ a /之后有一定的概率,但是,e。 G。下一个状态是/ e /,对吧?
它将故障概率与该框架的GMM分数相结合,以更新故障概率,包括此新框架。 GMM分数表示音频与预期声音的匹配程度是多少?" a"并从数据库中接受培训。
它说音素是隐藏的部分......这是否意味着,我们无法看到,模型选择了哪个音素,我们可以看到它现在处于/ k /的状态?在处理完整个单词后,我们只能看到它选择了哪个音素,结果是否正确?
我们只能在处理完整个单词后看到音素。
这意味着它只能从/ k /转到/ a /但是你无法保证找到正确的音素......?
在本地你不能保证,你需要比较全局图片或至少在当前音素之后做一些迭代。这就是为什么你必须在搜索过程中保留多个解码结果,而不仅仅是最好的单一解码结果。