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

📄 enddect.m

📁 语音端点检测实验程序
💻 M
字号:
%%%语音信号的端点检测过程,采用单一门限解决 
function yendpoint=enddect(y)
a=0.95;
y1=filter([1 -a],1,y);
len=256;inc=100;
yframe=enframe(y1,len,inc);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
w=hamming(len);
N=size(yframe,1);  
w1=ones(N,1)*w';
yw=yframe.*w1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   对信号进行的预处理
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  分帧加窗信号有问题
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
p=zeros(1,N);
t=0;
for k=1:N
    amp1=0;
    for n=1:len
        amp1=amp1+sum(yw(k,n).*yw(k,n),2);
    end
  t=t+1;
  p(t)=amp1;         % 短时幅度
end 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  短时幅度
z=zeros(1,N);
m=0;
for k=1:N
    zer=0;
    for n=1:len-1
        if (yw(k,n).*yw(k,n+1)<0) & (abs(yw(k,n)-yw(k,n+1))>0.02)
        zer=zer+1;
        end
    end
 m=m+1;
z(m)=zer;              %短时过零率
end 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   短时过零率
    t=1:N;
    EZn(t)=p(t).*z(t);                %短时能零积
    EZ=max(EZn(t)).*0.01;             %平均短时能零积              %%平均短时能零积的确定有待改进
    d=1.0;         %经验值                                         %% d值的确定有待改进
    NH=d.*EZ;      %门限值
 for t=1:N;
     if  (EZn(t)> NH)
         y(t)=1;
     else 
         y(t)=0;
     end
 end   
 t=1:N;
 n=0;
 for t=1:N
      while y(t)>0
          n=n+1;
          ys(n)=t;
       break,
      end
 end
 ys1=ys(1);
 ysend=ys(end);
 yendpoint=yw(ys1:ysend,:);

⌨️ 快捷键说明

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