matlab hmm工具箱怎么用,MATLAB Murphy的HMM工具箱

我正在尝试学习HMM GMM实现并创建一个简单的模型来检测某些声音(动物调用等)

我试图在MATLAB中用GMM(高斯混合)训练HMM(隐马尔可夫模型)网络.

我有几个问题,我无法找到任何有关的信息.

1)是否应该在每个HMM状态的循环中调用mhmm_em()函数,否则它会自动完成?

如:

for each state

Initialize GMM’s and get parameters (use mixgauss_init.m)

end

Train HMM with EM (use mhmm_em.m)

2)

[LL, prior1, transmat1, mu1, Sigma1, mixmat1] = ...

mhmm_em(MFCCs, prior0, transmat0, mu0, Sigma0, mixmat0, 'max_iter', M);

最后一个参数,应该是高斯数还是number_of_states-1?

3)如果我们正在寻找最大可能性,那么维特比在哪里发挥作用?

如果我想用我提取的声学特征向量训练我的模型后想要检测某种类型的动物/人类呼叫,我是否还需要在测试模式下使用维特比算法?

这有点令我困惑,我非常感谢这部分的解释.

根据HMM GMM逻辑对代码的任何评论也将受到赞赏.

谢谢

这是我的MATLAB例程;

O = 21; % Number of coefficients in a vector(coefficient)

M = 10; % Number of Gaussian mixtures

Q = 3; % Number of states (left to right)

% MFCC Parameters

Tw = 128; % analysis frame duration (ms)

Ts = 64; % analysis frame shift (ms)

alpha = 0.95; % preemphasis coefficient

R = [ 1 1000 ]; % frequency range to consider

f_bank = 20; % number of filterbank channels

C = 21; % number of cepstral coefficients

L = 22; % cepstral sine lifter parameter(?)

%Training

[speech, fs, nbits ] = wavread('Train.wav');

[MFCCs, FBEs, frames ] = mfcc( speech, fs, Tw, Ts, alpha, hamming, R, f_bank, C, L );

cov_type = 'full'; %the covariance type that is chosen as ҦullҠfor gaussians.

prior0 = normalise(rand(Q,1));

transmat0 = mk_stochastic(rand(Q,Q));

[mu0, Sigma0] = mixgauss_init(Q*M, dat, cov_type, 'kmeans');

mu0 = reshape(mu0, [O Q M]);

Sigma0 = reshape(Sigma0, [O O Q M]);

mixmat0 = mk_stochastic(rand(Q,M));

[LL, prior1, transmat1, mu1, Sigma1, mixmat1] = ...

mhmm_em(MFCCs, prior0, transmat0, mu0, Sigma0, mixmat0, 'max_iter', M);

%Testing

for i = 1:length(filelist)

fprintf('Processing %s\n', filelist(i).name);

[speech_tst, fs, nbits ] = wavread(filelist(i).name);

[MFCCs, FBEs, frames ] = ...

mfcc( speech_tst, fs, Tw, Ts, alpha, hamming, R, f_bank, C, L);

loglik(i) = mhmm_logprob( MFCCs,prior1, transmat1, mu1, Sigma1, mixmat1);

end;

[Winner, Winner_idx] = max(loglik);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值