如何在MATLAB中训练多个高斯混合模型

时间:2018-03-11 16:44:21

标签: matlab gaussian training-data mfcc gmm

我正在为语音验证工作。首先,我将用户的语音功能提取为MFCC。之后,我使用“gmm_estimate”函数来获得GMM的均值,方差和权重。

现在,假设我有来自同一用户的多个语音样本,我为每个人制作了GM模型。之后,我将把所有这些训练/装入1 GM模型,并与用户输入的测试语音进行比较。到目前为止我所做的是使用“fitgmdist”函数,但是失败了这个错误:“使用gmcluster时出错(第197行)在迭代4中创建了病态协方差。”

function MFCC_feat_inject(sig,features_mfcc_file,na)


No_of_Gaussians=12;
load(features_mfcc_file);

% no_of_fe will have the no of saved feature
% fe matrix will have the feature

no_of_fe=no_of_fe+1;
LEN=length(na);
name(no_of_fe,1:LEN)=char(na);
fe=melcepst(sig,8000);
[mu_train,sigma_train,c_train]=gmm_estimate(fe(:,5:12)',No_of_Gaussians,20);

%mean
fea{no_of_fe,1}=mu_train;
%variance
fea{no_of_fe,2}=sigma_train;
%weights
fea{no_of_fe,3}=c_train;

save(features_mfcc_file,'no_of_fe','name','fea');

0 个答案:

没有答案