annotate Code/Collation/get_PRAAT.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 a3d62264030c
rev   line source
dawn@0 1 function [] = get_PRAAT( dirName, statsFileID )
dawn@0 2
dawn@0 3 % this function collates the results of all values calculated using the PRAAT software
dawn@0 4
dawn@0 5 % identify the speaker in the stats file
dawn@0 6 fprintf( statsFileID, '%s ', dirName );
dawn@0 7
dawn@0 8 % -------------- get the jitter metrics -------------------
dawn@0 9 % JITTER: ddp \t local \t ppq5 \t rap \t
dawn@0 10 FileName = [ dirName '_jitter_ddp.txt'];
dawn@0 11 FileID = fopen( FileName );
dawn@0 12 if( FileID <= 0 ) %does the file exist?
dawn@0 13 % if not
dawn@0 14 disp('WARNING: MISSING JITTER DDP METRICS FILE');
dawn@0 15 fprintf( statsFileID, '\t ddp missing');
dawn@0 16 else
dawn@0 17 shimmer = fscanf( FileID, '%f', inf );
dawn@0 18 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 19 end
dawn@0 20 fclose(FileID);
dawn@0 21
dawn@0 22 FileName = [ dirName '_jitter_local.txt'];
dawn@0 23 FileID = fopen( FileName );
dawn@0 24 if( FileID <= 0 ) %does the file exist?
dawn@0 25 % if not
dawn@0 26 disp('WARNING: MISSING JITTER LOCAL METRICS FILE');
dawn@0 27 fprintf( statsFileID, '\t local missing');
dawn@0 28 else
dawn@0 29 shimmer = fscanf( FileID, '%f', inf );
dawn@0 30 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 31 end
dawn@0 32 fclose(FileID);
dawn@0 33
dawn@0 34 FileName = [ dirName '_jitter_ppq5.txt'];
dawn@0 35 FileID = fopen( FileName );
dawn@0 36 if( FileID <= 0 ) %does the file exist?
dawn@0 37 % if not
dawn@0 38 disp('WARNING: MISSING JITTER PPQ5 METRICS FILE');
dawn@0 39 fprintf( statsFileID, '\t ppq5 missing');
dawn@0 40 else
dawn@0 41 shimmer = fscanf( FileID, '%f', inf );
dawn@0 42 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 43 end
dawn@0 44 fclose(FileID);
dawn@0 45
dawn@0 46 FileName = [ dirName '_jitter_rap.txt'];
dawn@0 47 FileID = fopen( FileName );
dawn@0 48 if( FileID <= 0 ) %does the file exist?
dawn@0 49 % if not
dawn@0 50 disp('WARNING: MISSING JITTER RAP METRICS FILE');
dawn@0 51 fprintf( statsFileID, '\t rap missing');
dawn@0 52 else
dawn@0 53 shimmer = fscanf( FileID, '%f', inf );
dawn@0 54 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 55 end
dawn@0 56 fclose(FileID);
dawn@0 57
dawn@0 58
dawn@0 59
dawn@0 60 %-------------- get the shimmer metrics ----------------------
dawn@0 61 % SHIMMER: local \t dda \t apq3 \t apq5 \t apq11
dawn@0 62 FileName = [ dirName '_shimmer_local.txt'];
dawn@0 63 FileID = fopen( FileName );
dawn@0 64 if( FileID <= 0 ) %does the file exist?
dawn@0 65 % if not
dawn@0 66 disp('WARNING: MISSING SHIMMER METRICS FILE');
dawn@0 67 fprintf( statsFileID, '\t local missing');
dawn@0 68 else
dawn@0 69 shimmer = fscanf( FileID, '%f', inf );
dawn@0 70 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 71 end
dawn@0 72 fclose(FileID);
dawn@0 73
dawn@0 74 FileName = [ dirName '_shimmer_dda.txt'];
dawn@0 75 FileID = fopen( FileName );
dawn@0 76 if( FileID <= 0 ) %does the file exist?
dawn@0 77 % if not
dawn@0 78 disp('WARNING: MISSING SHIMMER METRICS FILE');
dawn@0 79 fprintf( statsFileID, '\t dda missing');
dawn@0 80 else
dawn@0 81 shimmer = fscanf( FileID, '%f', inf );
dawn@0 82 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 83 end
dawn@0 84 fclose(FileID);
dawn@0 85
dawn@0 86 FileName = [ dirName '_shimmer_apq3.txt'];
dawn@0 87 FileID = fopen( FileName );
dawn@0 88 if( FileID <= 0 ) %does the file exist?
dawn@0 89 % if not
dawn@0 90 disp('WARNING: MISSING SHIMMER METRICS FILE');
dawn@0 91 fprintf( statsFileID, '\t apq3 missing');
dawn@0 92 else
dawn@0 93 shimmer = fscanf( FileID, '%f', inf );
dawn@0 94 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 95 end
dawn@0 96 fclose(FileID);
dawn@0 97
dawn@0 98 FileName = [ dirName '_shimmer_apq5.txt'];
dawn@0 99 FileID = fopen( FileName );
dawn@0 100 if( FileID <= 0 ) %does the file exist?
dawn@0 101 % if not
dawn@0 102 disp('WARNING: MISSING SHIMMER METRICS FILE');
dawn@0 103 fprintf( statsFileID, '\t apq5 missing');
dawn@0 104 else
dawn@0 105 shimmer = fscanf( FileID, '%f', inf );
dawn@0 106 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 107 end
dawn@0 108 fclose(FileID);
dawn@0 109
dawn@0 110 FileName = [ dirName '_shimmer_apq11.txt'];
dawn@0 111 FileID = fopen( FileName );
dawn@0 112 if( FileID <= 0 ) %does the file exist?
dawn@0 113 % if not
dawn@0 114 disp('WARNING: MISSING SHIMMER METRICS FILE');
dawn@0 115 fprintf( statsFileID, '\t apq11 missing');
dawn@0 116 else
dawn@0 117 shimmer = fscanf( FileID, '%f', inf );
dawn@0 118 fprintf( statsFileID, '\t %f ', shimmer );
dawn@0 119 end
dawn@0 120 fclose(FileID);
dawn@0 121
dawn@0 122 %-------------- get the formant metrics ----------------------
dawn@0 123
dawn@0 124 % need to discard all formant information for unvoiced frames.
dawn@0 125
dawn@0 126 FileName = [ dirName '_Formant.txt'];
dawn@0 127 FileID = fopen( FileName );
dawn@0 128 if( FileID <= 0 ) %does the file exist?
dawn@0 129 % if not
dawn@0 130 disp('WARNING: MISSING FORMANT METRICS FILE');
dawn@0 131 fprintf( statsFileID, '\t formant missing');
dawn@0 132 else
dawn@0 133 % file format is not straight forward
dawn@0 134 noOfValues = 0;
dawn@0 135 formants = [];
dawn@0 136 while( ~(feof(FileID)) )
dawn@0 137
dawn@0 138 % search for numberOfFormants
dawn@0 139 thestr = fgetl(FileID);%, '%s', 1);
dawn@0 140
dawn@0 141 if( strfind( thestr , 'numberOfFormants' ) > 0 )
dawn@0 142 noOfValues = noOfValues + 1;
dawn@0 143 %numberOfFormants found
dawn@0 144 pos = find( thestr == '=' );
dawn@0 145 numberOfFormants = str2num(thestr(pos+2:end));
dawn@0 146 formants( noOfValues, 1 ) = numberOfFormants;
dawn@0 147 % discard the 'formant []' line
dawn@0 148 thestr = fgetl(FileID);
dawn@0 149 % now read the formant positions
dawn@0 150 for (i=0:numberOfFormants-1)
dawn@0 151 thestr = fgetl(FileID);
dawn@0 152 pos = find( thestr == '=' );
dawn@0 153 formants( noOfValues, i+2 ) = str2num(thestr( pos+2 : end ));
dawn@0 154 end
dawn@0 155
dawn@0 156 % discard the 'bandwidth []' line
dawn@0 157 thestr = fgetl(FileID);
dawn@0 158 % now read the formant bandwidths
dawn@0 159 for (i=0:numberOfFormants-1)
dawn@0 160 thestr = fgetl(FileID);
dawn@0 161 pos = find( thestr == '=' );
dawn@0 162 formants( noOfValues, i+2+numberOfFormants ) = str2num(thestr( pos+2 : end ));
dawn@0 163 end
dawn@0 164
dawn@0 165 end
dawn@0 166 end
dawn@0 167 fclose(FileID);
dawn@0 168 end
dawn@0 169
dawn@0 170
dawn@0 171