Mercurial > hg > emotion-detection-top-level
view 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 |
line wrap: on
line source
function [] = get_PRAAT( dirName, statsFileID ) % this function collates the results of all values calculated using the PRAAT software % identify the speaker in the stats file fprintf( statsFileID, '%s ', dirName ); % -------------- get the jitter metrics ------------------- % JITTER: ddp \t local \t ppq5 \t rap \t FileName = [ dirName '_jitter_ddp.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING JITTER DDP METRICS FILE'); fprintf( statsFileID, '\t ddp missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); FileName = [ dirName '_jitter_local.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING JITTER LOCAL METRICS FILE'); fprintf( statsFileID, '\t local missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); FileName = [ dirName '_jitter_ppq5.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING JITTER PPQ5 METRICS FILE'); fprintf( statsFileID, '\t ppq5 missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); FileName = [ dirName '_jitter_rap.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING JITTER RAP METRICS FILE'); fprintf( statsFileID, '\t rap missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); %-------------- get the shimmer metrics ---------------------- % SHIMMER: local \t dda \t apq3 \t apq5 \t apq11 FileName = [ dirName '_shimmer_local.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING SHIMMER METRICS FILE'); fprintf( statsFileID, '\t local missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); FileName = [ dirName '_shimmer_dda.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING SHIMMER METRICS FILE'); fprintf( statsFileID, '\t dda missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); FileName = [ dirName '_shimmer_apq3.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING SHIMMER METRICS FILE'); fprintf( statsFileID, '\t apq3 missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); FileName = [ dirName '_shimmer_apq5.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING SHIMMER METRICS FILE'); fprintf( statsFileID, '\t apq5 missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); FileName = [ dirName '_shimmer_apq11.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING SHIMMER METRICS FILE'); fprintf( statsFileID, '\t apq11 missing'); else shimmer = fscanf( FileID, '%f', inf ); fprintf( statsFileID, '\t %f ', shimmer ); end fclose(FileID); %-------------- get the formant metrics ---------------------- % need to discard all formant information for unvoiced frames. FileName = [ dirName '_Formant.txt']; FileID = fopen( FileName ); if( FileID <= 0 ) %does the file exist? % if not disp('WARNING: MISSING FORMANT METRICS FILE'); fprintf( statsFileID, '\t formant missing'); else % file format is not straight forward noOfValues = 0; formants = []; while( ~(feof(FileID)) ) % search for numberOfFormants thestr = fgetl(FileID);%, '%s', 1); if( strfind( thestr , 'numberOfFormants' ) > 0 ) noOfValues = noOfValues + 1; %numberOfFormants found pos = find( thestr == '=' ); numberOfFormants = str2num(thestr(pos+2:end)); formants( noOfValues, 1 ) = numberOfFormants; % discard the 'formant []' line thestr = fgetl(FileID); % now read the formant positions for (i=0:numberOfFormants-1) thestr = fgetl(FileID); pos = find( thestr == '=' ); formants( noOfValues, i+2 ) = str2num(thestr( pos+2 : end )); end % discard the 'bandwidth []' line thestr = fgetl(FileID); % now read the formant bandwidths for (i=0:numberOfFormants-1) thestr = fgetl(FileID); pos = find( thestr == '=' ); formants( noOfValues, i+2+numberOfFormants ) = str2num(thestr( pos+2 : end )); end end end fclose(FileID); end