使用Matlab中的hmmtrain从MFCC训练语音HMM

3
我读了很多文章,但我仍然不明白该怎么做。我正在尝试使用MFCC特征来构建基本的语音识别系统,并将其应用于HMM,我正在使用这里提供的数据。我使用Matlab完成此操作。
到目前为止,我已经使用这个库从语音文件中提取了MFCC向量。我不明白的是如何使用这些特征进行HMM。
请问如何训练HMM?我正在使用Matlab中找到的hmm实现。请不要引用其他库,因为我实际上正在尝试理解hmm的工作原理。
以下是我的问题:
1. 如何初始化转移和发射矩阵?
2. 我认为每个状态在单词中发出特定的音素,那么为了训练HMM,我们应该如何传递MFCC向量?
3. 训练HMM应该采取哪些步骤?
HMM的Matlab实现函数可以在这里找到。
编辑:虽然已经过了很长时间,但我认为这个问题仍然很重要,因为它的浏览量很高。我已经解决了这个问题,代码可以在我的GitHub上找到。
1个回答

1
你不能使用这个HMM来训练基于MFCC向量的语音HMM。这个框架只支持数字序列,不支持特征向量。它是一个简单的离散HMM工具箱。
你必须使用像这样的面向语音的库:

http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html


谢谢你的建议,我正在转向Murphy's Toolbox。据我所知,我认为音素是HMM中每个状态的输出,但我不明白MFCC向量在这里起什么作用。你能否解释一下,我们如何使用这些特征来训练HMM? - Josyula Krishna
1
你可以阅读Rabiner的HMM教程,以获得清晰的HMM概述。 http://www.cs.ubc.ca/~murphyk/Bayes/rabiner.pdf特征是输入到HMM算法中的。你将输入特征数组并且算法会将特征分配给输出标签(电话),并且给出这种分配的概率。对齐是以无监督方式完成的。 - Nikolay Shmyrev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接