mfcc系数1.m

来自「各种SVM分类算法」· M 代码 · 共 65 行

M
65
字号
clear all
for k=1:20
  fname=sprintf('D:\\样本\\speech\\%d.wav',k);
  x=wavread(fname);
  x=x(:,1);
  [c,l]=wavedec(x,3,'db4');
  ca=appcoef(c,l,'db4',3);%近似系数
  x=ca;
  enframex=enframe(x,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
  [row,col]=size(enframex);%返回行,列,每一行代表一帧,每一列表示1到128个采样点
  c=melcepst(x,22050);
  [row,col]=size(c);
  mfcc=zeros(1,12);
  for i=1:col
      for j=1:row  
        mfcc(1,i)=mean(c(j,i));
      end
  end
mfccspeech(k,:)=mfcc;
end
mfccspeech


for k=1:20
  fname=sprintf('D:\\样本\\music\\%d.wav',k);
  x=wavread(fname);
  x=x(:,1);
  [c,l]=wavedec(x,3,'db4');
  ca=appcoef(c,l,'db4',3);%近似系数
  x=ca;
  enframex=enframe(x,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
  [row,col]=size(enframex);%返回行,列,每一行代表一帧,每一列表示1到128个采样点
  c=melcepst(x,22050);
  [row,col]=size(c);
  mfcc=zeros(1,12);
  for i=1:col
      for j=1:row  
        mfcc(1,i)=mean(c(j,i));
      end
  end
mfccmusic(k,:)=mfcc;
end
mfccmusic


for k=1:20
  fname=sprintf('D:\\样本\\speech with music\\%d.wav',k);
  x=wavread(fname);
  x=x(:,1);
  [c,l]=wavedec(x,3,'db4');
  ca=appcoef(c,l,'db4',3);%近似系数
  x=ca;
  enframex=enframe(x,128,64);%对信号x分帧处理,每帧有128个采样点,相邻帧之间有50%的叠加率
  [row,col]=size(enframex);%返回行,列,每一行代表一帧,每一列表示1到128个采样点
  c=melcepst(x,22050);
  [row,col]=size(c);
  mfcc=zeros(1,12);
  for i=1:col
      for j=1:row  
        mfcc(1,i)=mean(c(j,i));
      end
  end
mfccspeechwithmusic(k,:)=mfcc;
end
mfccspeechwithmusic

⌨️ 快捷键说明

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