gmmevalinttest.m

来自「一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有」· M 代码 · 共 39 行

M
39
字号
dbstop if error

fprintf('Compiling gmmEvalIntMex.cpp...\n');
mex gmmEvalIntMex.cpp -Id:/users/jang/c/lib -Id:/users/jang/c/lib/dcpr -Id:/users/jang/c/lib/tableLookUp d:/users/jang/c/lib/dcpr/dcpr.cpp d:/users/jang/c/lib/dcpr/dcprInt.cpp d:/users/jang/c/lib/utility.cpp

fprintf('Loading gmmParam.mat and speakerData.mat...\n');
load gmmParam.mat
load speakerData.mat

fprintf('Testing gmmEvalIntMex...\n');
%i=1;
%j=1;
%k=1;
%logProb=gmmEvalIntMex(speakerData1(i).sentence(j).mfcc, gmm(k).mean, gmm(k).covariance, gmm(k).weight)
%return

speakerData=speakerData1;
useIntGmm=1;
speakerNum=length(speakerData);
for i=1:speakerNum
	fprintf('%d/%d: Recognizing wave files by %s\n', i, speakerNum, speakerData(i).name);
	for j=1:length(speakerData(i).sentence),
%		fprintf('\tj=%d/%d\n', j, length(speakerData(i).sentence))
		frameNum=size(speakerData(i).sentence(j).mfcc, 2);
		logProb=zeros(speakerNum, frameNum); 
		for k=1:speakerNum,
		%	logProb(k, :)=gmmEval(speakerData(i).sentence(j).mfcc, gmm(k).mean, gmm(k).covariance, gmm(k).weight);
			if ~useIntGmm
				logProb(k, :)=gmmEvalMex(speakerData(i).sentence(j).mfcc, gmm(k).mean, gmm(k).covariance, gmm(k).weight);
			else
				logProb(k, :)=gmmEvalIntMex(speakerData(i).sentence(j).mfcc, gmm(k).mean, gmm(k).covariance, gmm(k).weight);
			end
		end
		cumLogProb=sum(logProb, 2);
		[maxProb, index]=max(cumLogProb);
		speakerData(i).sentence(j).predictedSpeaker=index;
		speakerData(i).sentence(j).logProb=logProb;
	end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?