📄 pushang222.m
字号:
%读入语音
[x,fs]=wavread('e:\语音\da.wav');
%分帧,预处理
%% 常数设置
L=length(x);
N=fix(0.02*fs);
M=fix(0.02*0.67*fs);
F=fix((L-N)/M)+1;
detx=x';
Y=[];
Xn=[];
P=[];
H=[];
% 求能量
for k=1:F
up=1+(k-1)*M;
down=up+N-1;
temp1=detx(up:down);
Y=[Y,temp1];
y=fft(temp1,256);
Xn=[Xn,y];
for n=1:N;
Pn=y(n)/sum(x(n));
P=[P,Pn];
end
for i=1:N
sum2=sum(Pn(i).*log2(Pn(i)));
H=[ H,sum2];
end
end
%
amp1=-0.0015;
N1=0;
N2=0;
for i=1:N
if H(i)>amp1
N1=min(i);;
for j=1:F
if H(j)<amp1
break
else
N2=j;
end
end
end
end
subplot(311)
plot(x)
axis([1 length(x) -1 1])
ylabel('Speech');
line([N1*M N1*M], [-1 1], 'Color', 'red');
line([N2*M N2*M], [-1 1], 'Color', 'red');
subplot(312)
plot(H);
axis([1 N -0.2 0.1])
ylabel('Energy');
line([N1 N1], [min(H),max(H)], 'Color', 'red');
line([N2 N2], [min(H),max(H)], 'Color', 'red');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -