⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 featurecluster.m

📁 在语音信号处理中
💻 M
字号:
% wavdate
% 用HMM模型进行孤立词的语音识别

function featurecluster
load wavdate         %调入wavda
for T00=2:2:16
    T00
for fg=1:37
    fg
    alpha=(fg-1)/36;
% train
M=36;       %语音信号0-9,A-Z
N=10;       %说话人1-10
for i = 1:M   
    i
	sample1= [];
	for k = 1:N  
        a=wavdate((k-1)*72+2*i-1).endPoint(1);
        b=wavdate((k-1)*72+2*i-1).endPoint(2);
        x = filter([1 -0.9375], 1, double(wavdate((k-1)*72+2*i-1).y(a:b)));
		%sample1(k).data = melcepst(x,16000,'M',12,29,256,80); %提取mel频率倒谱系数12阶
        %sample1(k).data = lpcc(x);                            %提取lpcc12阶及差分
        %sample1(k).data=gbfenmfccfeature(x,alpha);
        %sample1(k).data=gbfcosmelcepst(alpha,x,16000,'M',12,29,256,80,0,0.5);%效果好
        %sample1(k).data=gbfenlpccfeature(x,alpha);
        sample1(k).data=gbfcosmelcepstzhouqi(T00,alpha,x,16000,'M',12,29,256,80,0,0.5);%效果好
    end
end
D0(fg)=Dratio(sample1)
end
figure(T00+10);plot([0:1/36:1],D0,'k');hold on;
clear D0
end


%%%%%%%%%%%%%%5
function D=Dratio(x)
% input--- x is a struct array variable, cluding m persons feature matrix f(n*k), x(i).f
%thereinto, n indicate speech number, k indicate feature vector dimension
[n,m]=size(x);% n is equal to "1", and m indicate the speakers number
%calculate W
n
m
for i=1:m
    [n,k]=size(x(i).data);
    u(i,:)=mean(x(i).data);
    for j=1:n
        xu=x(i).data(j,:)-u(i,:);
        y(i).z(j).a=xu'*xu;
    end
    summ=0;
    for j=1:n
        summ=summ+y(i).z(j).a;
    end
    y(i).b=summ/n;
end
sumb=0;
for i=1:m
    sumb=sumb+y(i).b;
end
W=sumb/m;
%calculate B
Bv=cov(u);
uu=mean(u);
for i=1:m
    ud=u(i,:)-uu;
    y(i).c=ud'*ud;
end
sumc=0;
for i=1:m
    sumc=sumc+y(i).c;
end
B=sumc/m;
%calculate D
D=trace(W^(-1)*Bv);

⌨️ 快捷键说明

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