function id_searchwindows( ref_VAD, ref_Nsamples, deg_VAD, deg_Nsamples); global MINUTTLENGTH Downsample MINUTTLENGTH SEARCHBUFFER global Crude_DelayEst Nutterances UttSearch_Start UttSearch_End Utt_num = 1; speech_flag = 0; VAD_length= floor( ref_Nsamples/ Downsample); del_deg_start= MINUTTLENGTH- Crude_DelayEst/ Downsample; del_deg_end= floor((deg_Nsamples- Crude_DelayEst)/ Downsample)-... MINUTTLENGTH; for count= 1: VAD_length VAD_value= ref_VAD(count); if( (VAD_value> 0) && (speech_flag== 0) ) speech_flag= 1; this_start= count; UttSearch_Start(Utt_num)= count- SEARCHBUFFER; if( UttSearch_Start(Utt_num)< 0 ) UttSearch_Start(Utt_num)= 0; end end if( ((VAD_value== 0) || (count == (VAD_length-1))) && ... (speech_flag == 1) ) speech_flag = 0; UttSearch_End(Utt_num) = count + SEARCHBUFFER; if( UttSearch_End(Utt_num) > VAD_length - 1 ) UttSearch_End(Utt_num) = VAD_length -1; end if( ((count - this_start) >= MINUTTLENGTH) &&... (this_start < del_deg_end) &&... (count > del_deg_start) ) Utt_num= Utt_num + 1; end end end Utt_num= Utt_num- 1; Nutterances = Utt_num; % fprintf( 1, 'Nutterances is %d\n', Nutterances); % fid= fopen( 'mat_utt.txt', 'wt'); % fprintf( fid, '%d\n', UttSearch_Start( 1: Nutterances)); % fprintf( fid, '\n'); % fprintf( fid, '%d\n', UttSearch_End( 1: Nutterances)); % fclose(fid);