HMM中的初始状态识别

信息处理 Python 语音识别
2022-02-04 11:37:30

我正在使用 python 中的隐马尔可夫模型构建语音识别系统。我提到了这个这个问题及其答案,它们非常有帮助。

在我的方法中,我将连续的语音分成单独的单词。我正在考虑使用 HMM 来检测每个单词。所以我的 HMM 状态将是电话。

到目前为止我所理解的是,HMM 根据当前状态(电话)估计下一个状态。但我不知道如何估计 HMM 的第一个状态(即单词的第一个音素)。

你能建议使用 HMM 实现这一目标的最佳方法吗?

HMM 的状态也将是电话,但我没有得到什么可以观察到的问题?一个电话有多个帧,每个帧都有一个特征向量。我应该用什么作为观察?

2个回答

Baum-Welch 算法使用EM(期望最大化)算法来估计模型参数(T,E,π), 在哪里:

T: 转移概率
E: 发射概率
π: 状态的概率分布

几年前,我针对离散情况进行了以下快速而简单的实现(现在可能已经相当糟糕了)。

希望这可以帮助。

这是我的理解,可能不完整:手机通常使用多个(~3)状态建模。观测值是特征向量,通常是梅尔频率倒谱系数 (MFCC) 的一些变体。然后可以通过将几个电话模型连接在一起来构建单词模型。可以在描述 HMM 在语音识别中的应用的 PDF中找到更详细的信息