edge_detect2.m
上传用户:ay_070428
上传日期:2014-12-04
资源大小:11427k
文件大小:1k
源码类别:

语音合成与识别

开发平台:

Matlab

  1. function [region_set ,legal_frame] = edge_detect(energy)
  2. %EDGE_DETECT : edge detection or endpoint detection.
  3. %     format : [region_set legal_frame] = edge_detect(energy) ,
  4. %              region_set is a scalar or a vector. If as a scalar,
  5. %              it means start and end of one pattern, if as a vector,
  6. %              it means starts and ends of one more patterns.
  7. eng1   = find(energy==1);
  8. temp   = diff([-100 eng1]);
  9. index  = find(temp>10);
  10. index2 = find(temp>10)-1;
  11. start  = eng1(index);
  12. if eng1(index2(2:end)) ~= eng1(end),
  13.    ending = [eng1(index2(2:end)) eng1(end)];
  14. else
  15.    ending = eng1(end);
  16. end;
  17. %legal_frame = [];
  18. legal_frame = eng1;
  19. region_set  = [];
  20. for i = 1 : length(start),
  21.    %legal_frame = [legal_frame start(i):ending(i)];
  22.    region_set  = [region_set ending(i)-start(i)+1];
  23. end;