annotate Code/Descriptors/Matlab/Common/detect_pitch.m @ 4:92ca03a8fa99 tip

Update to ICASSP 2013 benchmark
author Dawn Black
date Wed, 13 Feb 2013 11:02:39 +0000
parents ea0c737c6323
children
rev   line source
Dawn@4 1 function [ pitch ] = detect_pitch( sampleWavFileName, OVERWRITE )
dawn@0 2
dawn@0 3 % open original pitch calculation
dawn@0 4 sampleFileName = sampleWavFileName( 1 : length( sampleWavFileName ) - 4 );
dawn@0 5 fileName = [ sampleFileName '_YIN_pitch.txt'];
dawn@0 6 % read pitch metrics from file
dawn@0 7 fileID = fopen( fileName );
dawn@0 8
dawn@0 9 if( (fileID <= 0) || (OVERWRITE) ) %does the file exist?
dawn@0 10 % no
dawn@0 11 disp('WARNING: MISSING PITCH FILE');
dawn@0 12 %calculate it
dawn@0 13 [x, fs, frameLength, noOfFrames] = openFile( [ sampleFileName '.wav' ] );
dawn@0 14 % perform pitch detection
dawn@0 15 framePrd = calculate_pitchYIN( sampleFileName, x, fs, frameLength );
dawn@0 16
dawn@0 17 fileID = fopen( fileName, 'w');
dawn@0 18 for( i=1:length( framePrd ))
dawn@0 19 fprintf(fileID, '%d %f \n', framePrd(i,1), framePrd(i,2) );
dawn@0 20 end
dawn@0 21 fclose( fileID );
dawn@0 22 fileID = fopen( fileName );
dawn@0 23 end
dawn@0 24
dawn@0 25 pitch = fscanf( fileID, '%f', inf );
dawn@0 26 pitch = pitch(2:2:end);
dawn@0 27 fclose( fileID );
dawn@0 28
dawn@0 29
dawn@0 30
dawn@0 31 end
dawn@0 32