www.pudn.com > DHMM_MATLAB.rar > cut_wav.m


%	by lkk@mails.tsinghua.edu.cn 
function [cut_frame]=cut_wav(data) 
 
%   输入: 
%       data        源音频数据 
% 
%   输出: 
%       cut_frame   去除静音部分 
 
 
fs =16000; 
 
%	窗长 
window_length = fs * 30 / 1000; 
 
 
%	分帧加窗 
frames = add_window(data, hamming(window_length),ceil(window_length/2)); 
frame_num = size(frames,2); 
E = zeros(1,frame_num); 
%	计算短时能量 
for i=1:frame_num 
	E(i) = mean(frames(:,i).*frames(:,i)); 
end 
 
%	分割 
esp = 0.0001; 
 
a=find(E > esp); 
index_start = ((min(a)-1)*(window_length/2)); 
index_end   = ((max(a)+1)*(window_length/2)); 
	 
cut_frame = data(index_start:index_end);