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
|