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 |