1

我正在为语音认证工作。首先,我从用户那里提取语音特征作为 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');
4

0 回答 0