dawn@1: function [vuv] = detect_VoicedUnvoiced( sampleWavFileName, OVERWRITE ) dawn@0: dawn@0: sampleFileName = sampleWavFileName( 1 : length( sampleWavFileName ) - 4 ); dawn@0: fileName = [ sampleFileName '_VUV.txt']; dawn@0: fileID = fopen( fileName ); dawn@0: % dawn@1: if( (fileID < 0) || (OVERWRITE) ) dawn@0: %---------------- GET THE SILENT FRAME VALUES ------------------- dawn@0: dawn@0: % only wish to consider pitch values from voiced frames. dawn@0: % silent and unvoiced frames will produce pitch values that dawn@0: % are random and therefore will bias our results Dawn@4: segmentFrames = detect_Silence( [sampleFileName '.wav'], 0 ); dawn@0: dawn@0: % remove the silent frames dawn@1: [x, fs, frameLength, noOfFrames] = openFile( [ sampleFileName '.wav' ] ); Dawn@4: [ silentFrames ] = getSilentDataArray( segmentFrames, noOfFrames ); dawn@0: dawn@0: % [vuv] = voicingByClustering( nonSilentAudio, fs, noOfFrames, frameLength ); dawn@0: [vuv] = calculate_VoicedUnvoicedDecision( sampleFileName, x, fs, frameLength, noOfFrames, silentFrames ); dawn@0: dawn@0: noOfValidFrames = length(vuv); dawn@0: dawn@0: % plotAudioFrameByType( nonSilentAudio, noOfValidFrames, vuv, frameLength ); dawn@0: % fclose( fileID ); dawn@0: fileID = fopen( fileName, 'w'); dawn@0: for i = 1 : length(vuv) dawn@0: fprintf(fileID,'%d %d \n', i, vuv(i)); dawn@0: end dawn@0: fclose( fileID ); dawn@0: fileID = fopen( fileName ); dawn@0: end dawn@0: dawn@0: vuv = fscanf( fileID, '%d', inf ); dawn@0: vuv = vuv( 2:2:end ); dawn@0: dawn@0: fclose( fileID );