📄 语音程序.txt
字号:
sf=1000;
nfft=1000;
x=0:1/sf:1;
y=5*cos(2*pi*5*x).^2+3*cos(2*pi*100*x)+randn(size(x));
t=0:1/sf:(nfft-1)/sf;
nn=1:nfft/4;
subplot(3,1,1)
z=rceps(y);
plot(t(nn),abs(z(nn)));
title('z=rceps(y)')
ylabel('幅值');
grid on;
subplot(3,1,2)
yy= real(ifft(log(abs(fft(y)))));
plot(t(nn),abs(yy(nn)));
title('real(ifft(log(abs(fft(x)))))')
xlabel('时间(s)');
ylabel('幅值');
grid on;
subplot(3,1,3)
w=hanning(nfft);
zw=psd(y,nfft,sf,w,nfft/2);
zzw= real(ifft(log(abs(zw))));
plot(t(nn),zzw(nn));
grid on
% MFCC,即倒谱系数,也是语音的一个特征之一,能够充分利用人耳的特性
% 具体的求法就是预处理,然后加窗,进行傅立叶变换,再求出功率普
% 然后得出其自然对数,最后进行dct变换
% 代码是用matlab写的,用到的一个语音工具箱,可以从网络上下载。
function mfcoef=mfcccoef(filename);
x=wavread(filename);
%归一化mel filter cof
bank=melbankm(24,256,8000,0,0.5,'m');
bank=full(bank);
bank=bank/max(bank(:));
% dct 系数
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);
% 一阶高通滤波器 1-0.9375z(-1)
xx=double(x);
xx=filter([1 -0.9375],1,xx);
% 分帧
y=enframe(xx,256,80);
[NumFrame,FrameLen]=size(y);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -