?? f7_5.m
字號:
%讀入語音文件
fin=fopen('DR4_MLJH0_SX334.ADC','r');
x=fread(fin,'short');
fclose(fin);
%窗長
l=300;
step=100;
e_x=frame(x,'energy');
figure(1);
plot(e_x,'LineWidth',2);
xlabel('時間 t');
ylabel('幀輸出');
s=sort(e_x);
min_e=s(ceil(5*step/64));
max_e=s(length(s)-ceil(5*step/64));
%設置閾值
threshold=min_e+0.2*(max_e-min_e);
a=e_x>threshold;
%門限檢驗
if ((length(a) < 15*64/step) | (max_e/min_e < 1.3)),
disp('No speech found');
else
figure(2);
plot(a,'LineWidth',2);
xlabel('時間 t');
ylabel('端點');
set(gca,'ylim',[0 1.5]);
end
%frame.m
function [yy] = frame(x,func,SAMP_FREQ,l,step)
[m,n]=size(x);
if m>n
n=m;
else
n=n;
x=x';
end
if nargin < 3, SAMP_FREQ=8000; end;
if nargin < 4, l=SAMP_FREQ/40; end;
if nargin < 5, step=l/2; end;
%幀的數目
num_frames=ceil(n/step);
%補零
x(n+1:n+2*l)=zeros(2*l,1);
i=[0:step:num_frames*step]';
j=i*ones(1,l);
i=j+ones(num_frames+1,1)*[1:l];
y=reshape(x(i),num_frames+1,l)';
y=(hanning(l)*ones(1,num_frames+1)).*y;
for i=1:num_frames
cmd=sprintf('yy(:,i)=%s(y(:,i));',func);
eval(cmd);
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -