连续语音中音素识别的隐马尔可夫模型

Hidden markov models for phoneme recognition in continuous speech

我知道当我有一个孤立的音素时如何应用隐马尔可夫模型 (HMM)。我只需要创建几个 HMM 模型(每个模型至少有 3 个状态),每个音素一个,计算所有这些模型的前向算法,看看哪个概率最大。

但现在我有一个连续的语音数据库,每帧都标有音素 (TIMIT)。我如何训练 HMM 使其能够识别连续语音中的音素?

简而言之:对于连续语音识别,您可以使用辅助静音模型将音素模型连接到大型 HMM 中。

首先,您可以在孤立的音素上训练模型并将其应用于连续语音。例如,您可以根据现有标签对训练音频进行分块。

在识别步骤,将维特比解码(最可能的隐藏状态序列)应用于组合模型相当于识别音素序列。更多细节你可以从HTK书中学习相应的chapter

要在连续数据上训练 HMM,您也可以使用类似的技巧:将单个音素模型组合成一个用于整个基础句子的大模型。训练框架将找到模型状态和音频之间的最佳对齐方式。同样,HTK book 提供了一个很好的教程。

Phoneme Recognition on the TIMIT Database provides a complete overview of the methods with a lot of references to papers. For instance, this classical article描述了上下文无关的音素识别的基本方法。