Dawn@4: function [ silenceSegments ] = detect_Silence( sampleWavFileName, OVERWRITE ); dawn@0: dawn@0: %returns an array containing the start and end frames for non-silent segments dawn@0: dawn@0: % open original silence calculation Dawn@4: sampleFileName = sampleWavFileName( 1 : length( sampleWavFileName ) - 4 ); Dawn@4: fileName = [ sampleFileName '_silence.txt']; dawn@0: % read pitch metrics from file dawn@0: fileID = fopen( fileName ); dawn@0: dawn@0: if( (fileID <= 0) || (OVERWRITE) ) %does the file exist? dawn@0: % no dawn@0: disp('WARNING: MISSING SILENCE FILE'); dawn@0: %calculate it Dawn@4: [x, fs, frameLength, noOfFrames] = openFile( sampleWavFileName ); dawn@0: limits = calculate_Silence( x, fs, frameLength ); dawn@0: % create voicing metrics file dawn@0: fileID = fopen( fileName, 'w'); dawn@0: fprintf( fileID, 'non-silent start frame \t non-silent end frame \n '); dawn@0: rowNum = size(limits); dawn@0: rowNum = rowNum(1); dawn@0: if( rowNum == 0 ) dawn@0: % there are no silent frames dawn@0: fprintf( fileID, '%d \t %d \n', 0, 0 ); dawn@0: end dawn@0: for i=1:rowNum dawn@0: fprintf( fileID, '%d \t %d \n', limits(i,1), limits(i,2) ); dawn@0: end dawn@0: fclose( fileID ); dawn@0: fileID = fopen( fileName ); dawn@0: end dawn@0: % dawn@0: % strip off header dawn@0: junk = fscanf( fileID, '%s', 6 ); dawn@0: silence = fscanf( fileID, '%d', inf ); dawn@0: silenceSegments = [silence(1:2:end) silence(2:2:end)]; dawn@0: fclose( fileID ); dawn@0: