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

📄 mfxx新.txt

📁 各种SVM分类算法
💻 TXT
字号:
 clear all
for g=1:30
  fname=sprintf('D:\\study\\音频采样\\speech\\%d.wav',g);
  x=wavread(fname);
  x=x(:,1);
  [c,l]=wavedec(x,3,'db4');
  ca=appcoef(c,l,'db4',3);%近似系数
  x=ca;
%规一化mel滤波器组系数
bank=melbankm(24,128,22050);
bank=full(bank);
bank=bank/max(bank(:));
%DCT系数,12×24
for k=1:12
    n=0:23;
    dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24));
end
%规一化倒谱提升窗口
w=1+6*sin(pi*[1:12]./12);
w=w/max(w);
%预加重滤波器
xx=double(x);
xx=filter([1-0.9375],1,xx);
%音频信号分帧
xx=enframe(xx,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
%计算每帧的MFCC参数
for i=1:size(xx,1)
    y=xx(i,:);
    s=y'.*hamming(128);
    t=abs(fft(s));
    t=t.^2;
    c1=dctcoef*log(bank*t(1:65));
    c2=c1.*w';
    m(i,:)=c2';
end
%差分参数
dtm=zeros(size(m));
for i=3:size(m,1)-2
    dtm(i,:)=-2*m(i-2,:)-m(i-1,:)+m(i+1,:)+2*m(i+2,:);
end
dtm=dtm/3;
%合并mfcc参数和一阶差分mfcc参数
ccc=[m dtm];
%去除首尾两帧,因为这两帧的一阶差分系数为0
ccc=ccc(3:size(m,1)-2,:);
[row col]=size(ccc);
mfcc=zeros(1,24);
  for i=1:col
      for j=1:row  
        mfcc(1,i)=mean(ccc(j,i));
      end
  end
mfccspeech(g,:)=mfcc;
end
mfccspeech



for g=1:30
  fname=sprintf('D:\\study\\音频采样\\music\\%d.wav',g);
  x=wavread(fname);
  x=x(:,1);
  [c,l]=wavedec(x,3,'db4');
  ca=appcoef(c,l,'db4',3);%近似系数
  x=ca;
%规一化mel滤波器组系数
bank=melbankm(24,128,22050);
bank=full(bank);
bank=bank/max(bank(:));
%DCT系数,12×24
for k=1:12
    n=0:23;
    dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24));
end
%规一化倒谱提升窗口
w=1+6*sin(pi*[1:12]./12);
w=w/max(w);
%预加重滤波器
xx=double(x);
xx=filter([1-0.9375],1,xx);
%音频信号分帧
xx=enframe(xx,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
%计算每帧的MFCC参数
for i=1:size(xx,1)
    y=xx(i,:);
    s=y'.*hamming(128);
    t=abs(fft(s));
    t=t.^2;
    c1=dctcoef*log(bank*t(1:65));
    c2=c1.*w';
    m(i,:)=c2';
end
%差分参数
dtm=zeros(size(m));
for i=3:size(m,1)-2
    dtm(i,:)=-2*m(i-2,:)-m(i-1,:)+m(i+1,:)+2*m(i+2,:);
end
dtm=dtm/3;
%合并mfcc参数和一阶差分mfcc参数
ccc=[m dtm];
%去除首尾两帧,因为这两帧的一阶差分系数为0
ccc=ccc(3:size(m,1)-2,:);
[row col]=size(ccc);
mfcc=zeros(1,24);
  for i=1:col
      for j=1:row  
        mfcc(1,i)=mean(ccc(j,i));
      end
  end
mfccmusic(g,:)=mfcc;
end
mfccmusic



for g=1:30
  fname=sprintf('D:\\study\\音频采样\\speechwithmusic\\%d.wav\\%d.wav',g);
  x=wavread(fname);
  x=x(:,1);
  [c,l]=wavedec(x,3,'db4');
  ca=appcoef(c,l,'db4',3);%近似系数
  x=ca;
%规一化mel滤波器组系数
bank=melbankm(24,128,22050);
bank=full(bank);
bank=bank/max(bank(:));
%DCT系数,12×24
for k=1:12
    n=0:23;
    dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24));
end
%规一化倒谱提升窗口
w=1+6*sin(pi*[1:12]./12);
w=w/max(w);
%预加重滤波器
xx=double(x);
xx=filter([1-0.9375],1,xx);
%音频信号分帧
xx=enframe(xx,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
%计算每帧的MFCC参数
for i=1:size(xx,1)
    y=xx(i,:);
    s=y'.*hamming(128);
    t=abs(fft(s));
    t=t.^2;
    c1=dctcoef*log(bank*t(1:65));
    c2=c1.*w';
    m(i,:)=c2';
end
%差分参数
dtm=zeros(size(m));
for i=3:size(m,1)-2
    dtm(i,:)=-2*m(i-2,:)-m(i-1,:)+m(i+1,:)+2*m(i+2,:);
end
dtm=dtm/3;
%合并mfcc参数和一阶差分mfcc参数
ccc=[m dtm];
%去除首尾两帧,因为这两帧的一阶差分系数为0
ccc=ccc(3:size(m,1)-2,:);
[row col]=size(ccc);
mfcc=zeros(1,24);
  for i=1:col
      for j=1:row  
        mfcc(1,i)=mean(ccc(j,i));
      end
  end
mfccswm(g,:)=mfcc;
end
mfccswm

⌨️ 快捷键说明

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