annotate Code/Descriptors/Matlab/Common/detect_Silence.m @ 0:ea0c737c6323

first commit
author Dawn Black <dawn.black@eecs.qmul.ac.uk>
date Thu, 26 Jul 2012 14:46:25 +0100
parents
children 92ca03a8fa99
rev   line source
dawn@0 1 function [ silenceSegments ] = detect_Silence( currentSampleName, OVERWRITE );
dawn@0 2
dawn@0 3 %returns an array containing the start and end frames for non-silent segments
dawn@0 4
dawn@0 5 % open original silence calculation
dawn@0 6 fileName = [ currentSampleName '_silence.txt'];
dawn@0 7 % read pitch metrics from file
dawn@0 8 fileID = fopen( fileName );
dawn@0 9
dawn@0 10 if( (fileID <= 0) || (OVERWRITE) ) %does the file exist?
dawn@0 11 % no
dawn@0 12 disp('WARNING: MISSING SILENCE FILE');
dawn@0 13 %calculate it
dawn@0 14 [x, fs, frameLength, noOfFrames] = openFile( [ sampleFileName '.wav' ] );
dawn@0 15 limits = calculate_Silence( x, fs, frameLength );
dawn@0 16 % create voicing metrics file
dawn@0 17 fileID = fopen( fileName, 'w');
dawn@0 18 fprintf( fileID, 'non-silent start frame \t non-silent end frame \n ');
dawn@0 19 rowNum = size(limits);
dawn@0 20 rowNum = rowNum(1);
dawn@0 21 if( rowNum == 0 )
dawn@0 22 % there are no silent frames
dawn@0 23 fprintf( fileID, '%d \t %d \n', 0, 0 );
dawn@0 24 end
dawn@0 25 for i=1:rowNum
dawn@0 26 fprintf( fileID, '%d \t %d \n', limits(i,1), limits(i,2) );
dawn@0 27 end
dawn@0 28 fclose( fileID );
dawn@0 29 fileID = fopen( fileName );
dawn@0 30 end
dawn@0 31 %
dawn@0 32 % strip off header
dawn@0 33 junk = fscanf( fileID, '%s', 6 );
dawn@0 34 silence = fscanf( fileID, '%d', inf );
dawn@0 35 silenceSegments = [silence(1:2:end) silence(2:2:end)];
dawn@0 36 fclose( fileID );
dawn@0 37