声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1327|回复: 2

[综合] 谱熵的端点检测门限

[复制链接]
发表于 2009-4-8 15:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我用谱熵的方法进行端点检测,但是感觉判别门限设定的不对,该怎么设置呢,请各位高手帮忙
附上端点检测部分的程序,请大家指点,不胜感激
%T1=0.1;
%T2=0.08;
maxsilence=2;
minlen=10;
%T1 = min(T1, max(H)/2);
%T2 = min(T2, max(H)/4);

T1 = [max(H)-min(H)]/2;
T2 = max(H)/4;
status=0;
count=0;
silence=0;
%开始端点检测
x1 = 0;
x2 = 0;
xn=1;
for n=1:length(H)             %xn记录连续语音中字的段数(几个字)  
   switch status
   case {0,1}                   % 0 = 静音, 1 = 可能开始
      if H(n) > T1          % 确信进入语音段
         x1(xn) = max(n-count(xn)-1,1);
         status  = 2;
         %silence(xn) = 0;
         count(xn)   = count(xn) + 1;
      elseif H(n) > T2  % 可能处于语音段
         status = 1;
         count(xn)  = count(xn) + 1;
      else                       % 静音状态
         status  = 0;
         count(xn)= 0;
         silence(xn)=0;
         x1(xn)=0;
         x2(xn)=0;
      end
   case 2,                       % 2 = 语音段
      if H(n) > T2     % 保持在语音段
         count(xn) = count(xn) + 1;
      else                       % 语音将结束
         silence(xn)  = silence(xn) +1;
         if silence(xn) < maxsilence % 静音还不够长,尚未结束
            count(xn)  = count(xn) + 1;
         elseif count(xn) < minlen   % 语音长度太短,认为是噪声
            status  = 0;
            silence(xn)  = 0;         
         else                    % 语音结束
            status  = 3;
         end
      end
   case 3,      
        status  = 0;         
        xn=xn+1;  
        count(xn)= 0;
        silence(xn)=0;
        x1(xn)=0;
        x2(xn)=0;
   end
end
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-4-8 16:15 | 显示全部楼层

回复 楼主 jhhxl 的帖子

没有人知道吗?帮帮我呀
发表于 2010-7-14 17:12 | 显示全部楼层
看上面的程序,好像谱熵端点检测法只对语音信号的时域波形进行端点检测?不用分析其频谱吗?在仿真图中如何体现呀:@) ?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-23 18:38 , Processed in 0.048444 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表