dawn@0
|
1 function [] = ProcessDatabase( databaseName, functionName, sampleStartNum, OVERWRITE )
|
dawn@0
|
2 % run from D:\Dropbox\BUPTResearch2011\EmotionDetectionCode\Code
|
dawn@0
|
3 machineName = getenv('COMPUTERNAME');
|
dawn@0
|
4
|
dawn@0
|
5 switch machineName
|
dawn@0
|
6 case 'LAPTOP'
|
dawn@0
|
7 % for Dawn's laptop
|
dawn@0
|
8 root = 'D:\Dropbox\'
|
dawn@0
|
9 case 'SLATE1'
|
dawn@0
|
10 % for Dawn's Slate
|
dawn@0
|
11 root = 'E:\Dropbox\'
|
dawn@0
|
12 case 'DAWNBLACK-PC'
|
dawn@0
|
13 % for Dawn's work PC
|
dawn@0
|
14 root = 'C:\Users\dawn\Dropbox\'
|
dawn@0
|
15 end
|
dawn@0
|
16
|
dawn@0
|
17 addpath ([root 'BUPTResearch2011\emotionDetectionCode\Code'])
|
dawn@0
|
18 addpath ([root 'BUPTResearch2011\emotionDetectionCode\Code\Descriptors\Matlab\MPEG7'])
|
dawn@0
|
19 addpath ([root 'BUPTResearch2011\emotionDetectionCode\Code\Descriptors\Matlab\Common'])
|
dawn@0
|
20 addpath ([root 'BUPTResearch2011\emotionDetectionCode\Code\Descriptors\Matlab\MPEG7\FromWeb'])
|
dawn@0
|
21 addpath ([root 'BUPTResearch2011\emotionDetectionCode\Code\Descriptors\PRAAT'])
|
dawn@0
|
22 addpath ([root 'BUPTResearch2011\emotionDetectionCode\Code\Collation'])
|
dawn@0
|
23 addpath ([root 'BUPTResearch2011\emotionDetectionCode\Code\General'])
|
dawn@0
|
24
|
dawn@0
|
25 switch databaseName
|
dawn@0
|
26 case 'ChineseOpera'
|
dawn@0
|
27 cd([root 'BUPTResearch2011/Data/Opera/TestDatabase'])
|
dawn@0
|
28 startEmotion = 4;
|
dawn@0
|
29 case 'MandarinSpeech'
|
dawn@0
|
30 cd([root 'BUPTResearch2011/Data/Database/EditedRecording'])
|
dawn@0
|
31 startEmotion = 3;
|
dawn@0
|
32 case 'SpeechTestFiles'
|
dawn@0
|
33 cd([root 'BUPTResearch2011\Data\SpeechTestFiles\MyAnnotatedFiles'])
|
dawn@0
|
34 startEmotion = 3;
|
dawn@0
|
35 end
|
dawn@0
|
36
|
dawn@0
|
37 fileStructure = dir;
|
dawn@0
|
38
|
dawn@0
|
39 % how many samples do we have?
|
dawn@0
|
40 noOfSamples = size( fileStructure );
|
dawn@0
|
41 firstfileOpen = 1;
|
dawn@0
|
42
|
dawn@0
|
43 if( sampleStartNum < 3 )
|
dawn@0
|
44 sampleStartNum = 3;
|
dawn@0
|
45 end
|
dawn@0
|
46
|
dawn@0
|
47 for sampleNum = sampleStartNum : noOfSamples(1)
|
dawn@0
|
48 sampleDirName = fileStructure(sampleNum).name
|
dawn@0
|
49 if( fileStructure(sampleNum).isdir == 1 ) % only directories
|
dawn@0
|
50 cd( sampleDirName );
|
dawn@0
|
51 % how many emotions for that sample?
|
dawn@0
|
52 validEmotionList = dir;
|
dawn@0
|
53 noOfEmotions = size( validEmotionList );
|
dawn@0
|
54
|
dawn@0
|
55 for emotionNum = startEmotion : noOfEmotions(1)
|
dawn@0
|
56 emotionName = validEmotionList(emotionNum).name;
|
dawn@0
|
57 cd( emotionName );
|
dawn@0
|
58 % how many samples for that emotion?
|
dawn@0
|
59 sampleNames = dir;
|
dawn@0
|
60 noOfSamples = size( sampleNames );
|
dawn@0
|
61
|
dawn@0
|
62 for sampleNumber = 3 : noOfSamples(1)
|
dawn@0
|
63 if( sampleNames(sampleNumber).isdir == 0 ) % skip directories
|
dawn@0
|
64 currentSampleName = sampleNames(sampleNumber).name
|
dawn@0
|
65 % get the file type
|
dawn@0
|
66 extName = currentSampleName(length( currentSampleName ) - 3: end);
|
dawn@0
|
67 % is it a .wav file?
|
dawn@0
|
68 if strcmp( extName, '.wav' )
|
dawn@0
|
69 newDirName = currentSampleName( 1 : length( currentSampleName ) - 4 );
|
dawn@0
|
70 % if none exists, make a new directory for all the results of
|
dawn@0
|
71 % our calculations.
|
dawn@0
|
72 mkdir( [ newDirName '_metrics'] );
|
dawn@0
|
73 cd ( [ newDirName '_metrics'] );
|
dawn@0
|
74
|
dawn@0
|
75 % call your function here
|
dawn@0
|
76 switch functionName
|
dawn@0
|
77 % functions that start with 'get' simply read
|
dawn@0
|
78 % from existing text files
|
dawn@0
|
79 % functions that start with 'detect' check if
|
dawn@0
|
80 % the results file already exists, if they do
|
dawn@0
|
81 % not (or the OVERWRITE flag is true) then the
|
dawn@0
|
82 % results are calculated afresh.
|
dawn@0
|
83
|
dawn@0
|
84 % case 'getsampleDependantThresholds'
|
dawn@0
|
85 % statsFileName = '../../../../FeatureSets/singingsampleDependantThresholds.txt';
|
dawn@0
|
86 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
87 % % is this the first sample in this emotion for
|
dawn@0
|
88 % % this sample?
|
dawn@0
|
89 % if( sampleNumber == 3 )
|
dawn@0
|
90 % if ( firstfileOpen == 0 )
|
dawn@0
|
91 % if(strfind( oldDirName , 'fem') > 0 )
|
dawn@0
|
92 % sampleName = oldDirName( 6 : end );
|
dawn@0
|
93 % meanET = mean( energyThreshold );
|
dawn@0
|
94 % meanSCT = mean( spectralCentroidThreshold );
|
dawn@0
|
95 % fprintf( statsFileID, '%s \t %f \t %f \n', sampleName, meanET, meanSCT );
|
dawn@0
|
96 % elseif(strfind( oldDirName , 'male') > 0 )
|
dawn@0
|
97 % sampleName = oldDirName( 6 : end );
|
dawn@0
|
98 % meanET = mean( energyThreshold );
|
dawn@0
|
99 % meanSCT = mean( spectralCentroidThreshold );
|
dawn@0
|
100 % fprintf( statsFileID, '%s \t %f \t %f \n', sampleName, meanET, meanSCT );
|
dawn@0
|
101 % end
|
dawn@0
|
102 % end
|
dawn@0
|
103 %
|
dawn@0
|
104 % spectralCentroidThreshold = [];
|
dawn@0
|
105 % energyThreshold = [];
|
dawn@0
|
106 % firstfileOpen = 0;
|
dawn@0
|
107 % end
|
dawn@0
|
108 %
|
dawn@0
|
109 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
110 % [st , et] = getsampleDependantThresholds( newDirName, x, fs, statsFileID, frameLength, noOfFrames );
|
dawn@0
|
111 % spectralCentroidThreshold = [spectralCentroidThreshold st];
|
dawn@0
|
112 % energyThreshold = [energyThreshold et];
|
dawn@0
|
113 % oldDirName = newDirName;
|
dawn@0
|
114 %
|
dawn@0
|
115 % fclose( statsFileID );
|
dawn@0
|
116 % case 'getPitchStatistics'
|
dawn@0
|
117 % statsHeaderFileName = '../../../../FeatureSets/singingHeaderPitchStats.txt';
|
dawn@0
|
118 % statsHeaderFileID = fopen( statsHeaderFileName, 'w' );
|
dawn@0
|
119 % if( firstfileOpen == 1 )
|
dawn@0
|
120 % fprintf( statsHeaderFileID, 'name \t unvoiced to voiced frame ratio \t mean voiced pitch \t median voiced pitch \t stdev voiced pitch \t variance voiced pitch \t min voiced pitch \t max voiced pitch \t range voiced pitch \t mean voiced pitch grad \t median voiced pitch grad \t stdev pitch grad \t variance voiced pitch grad \t min voiced pitch grad \t max voiced pitch grad \t range voiced pitch grad \n');
|
dawn@0
|
121 % firstfileOpen = 0;
|
dawn@0
|
122 % end
|
dawn@0
|
123 % fclose(statsHeaderFileID);
|
dawn@0
|
124 %
|
dawn@0
|
125 % statsFileName = '../../../../FeatureSets/singingPitchStats.txt';
|
dawn@0
|
126 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
127 %
|
dawn@0
|
128 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
129 % getPitchStatistics( newDirName, x, fs, statsFileID, frameLength, noOfFrames );
|
dawn@0
|
130 % fclose( statsFileID );
|
dawn@0
|
131 %
|
dawn@0
|
132 %
|
dawn@0
|
133 %
|
dawn@0
|
134 %
|
dawn@0
|
135 %
|
dawn@0
|
136 % %%%%%%%%%%%%%%% careful %%%%%%%%%%%%%%%
|
dawn@0
|
137 % case 'getHNRStatistics'
|
dawn@0
|
138 % statsHeaderFileName = '../../../../FeatureSets/singingHeaderHNRStats.txt';
|
dawn@0
|
139 % statsHeaderFileID = fopen( statsHeaderFileName, 'w' );
|
dawn@0
|
140 % if( firstfileOpen == 1 )
|
dawn@0
|
141 % fprintf( statsHeaderFileID, 'name \t \t \t \t \t \n');
|
dawn@0
|
142 % firstfileOpen = 0;
|
dawn@0
|
143 % end
|
dawn@0
|
144 % fclose(statsHeaderFileID);
|
dawn@0
|
145 %
|
dawn@0
|
146 % statsFileName = '../../../../FeatureSets/singingHNRStats.txt';
|
dawn@0
|
147 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
148 %
|
dawn@0
|
149 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
150 % getHNRStatistics( newDirName, x, fs, statsFileID, frameLength, noOfFrames );
|
dawn@0
|
151 % fclose( statsFileID );
|
dawn@0
|
152 %
|
dawn@0
|
153 %
|
dawn@0
|
154 %
|
dawn@0
|
155 %
|
dawn@0
|
156 % case 'getEnergyStatistics'
|
dawn@0
|
157 % statsFileName = '../../../../FeatureSets/singingEnergyStats.txt';
|
dawn@0
|
158 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
159 % if( firstfileOpen == 1 )
|
dawn@0
|
160 % fprintf( statsFileID, 'name \t mean energy \t mean voiced energy \t mean unvoiced energy \n');
|
dawn@0
|
161 % firstfileOpen = 0;
|
dawn@0
|
162 % end
|
dawn@0
|
163 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
164 % getEnergyStatistics( newDirName, x, fs, statsFileID, frameLength, noOfFrames );
|
dawn@0
|
165 % fclose( statsFileID );
|
dawn@0
|
166 %
|
dawn@0
|
167 %
|
dawn@0
|
168 % % %%%%% for energy-related features %%%%%
|
dawn@0
|
169 % % case 'getOtherEnergyStatistics'
|
dawn@0
|
170 % % statsFileName = '../../../../FeatureSets/singingOtherEnergyStats.txt';
|
dawn@0
|
171 % % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
172 % % if( firstfileOpen == 1 )
|
dawn@0
|
173 % % fprintf( statsFileID, 'name \t derivation of non silent energy \t derivation of voiced energy \t derivation of unvoiced energy \n');
|
dawn@0
|
174 % % firstfileOpen = 0;
|
dawn@0
|
175 % % end
|
dawn@0
|
176 % % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
177 % % getOtherEnergyStatistics( newDirName, x, fs, statsFileID, frameLength, noOfFrames );
|
dawn@0
|
178 % % fclose( statsFileID );
|
dawn@0
|
179 %
|
dawn@0
|
180 %
|
dawn@0
|
181 %
|
dawn@0
|
182 % case 'getBasicDescriptors'
|
dawn@0
|
183 % % includes audio waveform and audio power
|
dawn@0
|
184 % statsFileName = '../../../../FeatureSets/singingbasicDescriptors.txt';
|
dawn@0
|
185 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
186 % if( firstfileOpen == 1 )
|
dawn@0
|
187 % fprintf( statsFileID, 'name \t meanAWF \t STDAWF \t minAWF \t maxAWF \t rangeAWF \t meanAP \t STDAP \t minAP \t maxAP \t rangeAP \t meanHR \t STDHR \t minHR \t maxHR \t rangeHR \n');
|
dawn@0
|
188 % firstfileOpen = 0;
|
dawn@0
|
189 % end
|
dawn@0
|
190 %
|
dawn@0
|
191 % getBasicDescriptors( newDirName, statsFileID );
|
dawn@0
|
192 % fclose( statsFileID );
|
dawn@0
|
193 % case 'getBasicSpectralDescriptors'
|
dawn@0
|
194 % % includes audio spectrum envelope, audio spectrum
|
dawn@0
|
195 % % centroid, audio spectrum spread, audio spectrum flatness
|
dawn@0
|
196 % statsFileName = '../../../../FeatureSets/singingbasicSpectralDescriptors.txt';
|
dawn@0
|
197 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
198 % % Add a header column
|
dawn@0
|
199 % if( firstfileOpen == 1 )
|
dawn@0
|
200 % fprintf( statsFileID, ' name \t meanASE \t STDASE \t minASE \t maxASE \t rangeASE \t meanASC \t STDASC \t minASC \t maxASC \t rangeASC \t meanASS \t STDASS \t minASS \t maxASS \t rangeASS \t meanASF \t STDASF \t minASF \t maxASF \t rangeASF \n');
|
dawn@0
|
201 % % fprintf( statsFileID, ' name \t meanAWE \t STDAWE \t minAWE \t maxAWE \t rangeAWE \t meanAP \t STDAP \t minAP \t maxAP \t rangeAP \n');
|
dawn@0
|
202 % firstfileOpen = 0;
|
dawn@0
|
203 % end
|
dawn@0
|
204 %
|
dawn@0
|
205 % getBasicSpectralDescriptors1( newDirName, statsFileID );
|
dawn@0
|
206 % fclose( statsFileID );
|
dawn@0
|
207 % disp('NOT FINISHED');
|
dawn@0
|
208 % case 'getTemporalTimbralDescriptors'
|
dawn@0
|
209 %
|
dawn@0
|
210 % % includes log attack time and temporal
|
dawn@0
|
211 % % centroid
|
dawn@0
|
212 % statsFileName = '../../../../FeatureSets/singingtemporalTimbralDescriptors.txt';
|
dawn@0
|
213 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
214 % % Add a header column
|
dawn@0
|
215 % if( firstfileOpen == 1)
|
dawn@0
|
216 % fprintf( statsFileID, ' name \t temporal centriod \t log attack time \n');
|
dawn@0
|
217 % firstfileOpen = 0;
|
dawn@0
|
218 % end
|
dawn@0
|
219 %
|
dawn@0
|
220 % getTemporalTimbralDescriptors( newDirName, statsFileID );
|
dawn@0
|
221 % fclose( statsFileID );
|
dawn@0
|
222 % case 'getSpectralTimbralDescriptors'
|
dawn@0
|
223 % % collate the Harmonic Spectral Centroid,
|
dawn@0
|
224 % % Harmonmic Spectral Deviation, Harmonic
|
dawn@0
|
225 % % Spectral Spread, Harmonic Spectral Variation
|
dawn@0
|
226 % % and Spectral Centroid
|
dawn@0
|
227 %
|
dawn@0
|
228 % statsFileName = '../../../../FeatureSets/singingspectralTimbralDescriptors.txt';
|
dawn@0
|
229 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
230 % % Add a header column
|
dawn@0
|
231 % if( firstfileOpen == 1)
|
dawn@0
|
232 % fprintf( statsFileID, ' name \t HSC \t HSD \t HSS \t HSV \t SC \n');
|
dawn@0
|
233 % firstfileOpen = 0;
|
dawn@0
|
234 % end
|
dawn@0
|
235 %
|
dawn@0
|
236 % getSpectralTimbralDescriptors( newDirName, statsFileID );
|
dawn@0
|
237 % fclose( statsFileID );
|
dawn@0
|
238 % case 'getMFCCs'
|
dawn@0
|
239 % if( firstfileOpen )
|
dawn@0
|
240 % statsFileName = '../../../../FeatureSets/singingMFCCDescriptorsHeader.txt';
|
dawn@0
|
241 % statsFileID = fopen( statsFileName, 'w' );
|
dawn@0
|
242 %
|
dawn@0
|
243 % % Add a header file
|
dawn@0
|
244 % % putMFCCHeader( statsFileID );
|
dawn@0
|
245 % fclose( statsFileID );
|
dawn@0
|
246 % end
|
dawn@0
|
247 %
|
dawn@0
|
248 % statsFileName = '../../../../FeatureSets/singingMFCCDescriptors.txt';
|
dawn@0
|
249 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
250 %
|
dawn@0
|
251 % getMFCCStatistics( newDirName, statsFileID );
|
dawn@0
|
252 % fclose( statsFileID );
|
dawn@0
|
253 %
|
dawn@0
|
254 % %lin
|
dawn@0
|
255 case 'getPRAAT'
|
dawn@0
|
256 % collate all Shimmer values
|
dawn@0
|
257 statsFileName = '../../../../../../../TestResults/singingPRAATStats.txt';
|
dawn@1
|
258
|
dawn@0
|
259 % Add a header row
|
dawn@0
|
260 if( firstfileOpen == 1 )
|
dawn@1
|
261 statsFileID = fopen( statsFileName, 'w' );
|
dawn@0
|
262 fprintf( statsFileID, 'Metrics calculated using the PRAAT software. \n' );
|
dawn@1
|
263 fprintf( statsFileID, ' name \t JITTER: ddp \t local \t ppq5 \t rap \t SHIMMER: local \t dda \t apq3 \t apq5 \t apq11 \n');
|
dawn@1
|
264 fprintf( statsFileID, 'For each of the BURG FORMANTS: numberOfFormants \t meanFrequency \t varFrequency \t minFrequency \t maxFrequency \n');
|
dawn@1
|
265 fprintf( statsFileID, 'meanFrequencyDerivative \t varienceFrequencyDerivative \t minFrequencyDerivative \t max FrequencyDerivative \n');
|
dawn@1
|
266 fprintf( statsFileID, 'meanFrequency2ndDerivative \t varienceFrequency2ndDerivative \t minFrequency2ndDerivative \t max Frequency2ndDerivative \n');
|
dawn@1
|
267 fprintf( statsFileID, 'meanBandwidth \t varBandwidth \t minBandwidth \t maxBandwidth \n');
|
dawn@1
|
268 fprintf( statsFileID, 'meanBandwidthDerivative \t varBandwidthDerivative \t minBandwidthDerivative \t maxBandwidthDerivative \n');
|
dawn@1
|
269 fprintf( statsFileID, 'meanBandwidth2ndDerivative \t varBandwidth2ndDerivative \t minBandwidth2ndDerivative \t maxBandwidth2ndDerivative \n');
|
dawn@1
|
270 fprintf( statsFileID, 'For the mean of all three formants: meanFrequency \t varFrequency \t minFrequency \t maxFrequency \n');
|
dawn@1
|
271 fprintf( statsFileID, 'meanFrequencyDerivative \t varienceFrequencyDerivative \t minFrequencyDerivative \t max FrequencyDerivative \n');
|
dawn@1
|
272 fprintf( statsFileID, 'meanFrequency2ndDerivative \t varienceFrequency2ndDerivative \t minFrequency2ndDerivative \t max Frequency2ndDerivative \n');
|
dawn@0
|
273 firstfileOpen = 0;
|
dawn@1
|
274 else
|
dawn@1
|
275 statsFileID = fopen( statsFileName, 'a' );
|
dawn@1
|
276 end
|
dawn@0
|
277
|
dawn@0
|
278 get_PRAAT( newDirName, statsFileID );
|
dawn@0
|
279 fclose( statsFileID );
|
dawn@0
|
280
|
dawn@0
|
281 % case 'getJitter'
|
dawn@0
|
282 % % collate Jitter
|
dawn@0
|
283 % statsFileName = '../../../../FeatureSets/singingJitterStats.txt';
|
dawn@0
|
284 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
285 %
|
dawn@0
|
286 % getJitter( newDirName, statsFileID );
|
dawn@0
|
287 % fclose( statsFileID );
|
dawn@0
|
288 %
|
dawn@0
|
289 %
|
dawn@0
|
290 %
|
dawn@0
|
291 % %%%%% get all the pitch and energy related features
|
dawn@0
|
292
|
dawn@0
|
293
|
dawn@0
|
294 % case 'getFeaturesOfDuration'
|
dawn@0
|
295 % % collate number, mean and ratio duration of
|
dawn@0
|
296 % % unvoiced and voiced sounds, median and
|
dawn@0
|
297 % % standard deviation number of voiced sounds
|
dawn@0
|
298 % statsFileName = '../../../../FeatureSets/singingDurationStats.txt';
|
dawn@0
|
299 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
300 % getFeaturesOfDuration( newDirName, statsFileID );
|
dawn@0
|
301 % fclose( statsFileID );
|
dawn@0
|
302 %
|
dawn@0
|
303 % case 'getFeaturesOfRelativePitch'
|
dawn@0
|
304 % % collate relative pitch maximum, minimum and
|
dawn@0
|
305 % % the position of those pitches
|
dawn@0
|
306 % statsFileName = '../../../../FeatureSets/singingRelativePitchStats.txt';
|
dawn@0
|
307 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
308 % getFeaturesOfRelativePitch( newDirName, statsFileID );
|
dawn@0
|
309 % fclose( statsFileID );
|
dawn@0
|
310 %
|
dawn@0
|
311 % case 'getFeaturesOfRelativeEnergyGradient'
|
dawn@0
|
312 % % collate the value and position of relative
|
dawn@0
|
313 % % maximum of energy gradient
|
dawn@0
|
314 % statsFileName = '../../../../FeatureSets/singingRelativeEnergyGradientStats.txt';
|
dawn@0
|
315 % statsFileID = fopen( statsFileName, 'a' );
|
dawn@0
|
316 % getFeaturesOfRelativeEnergyGradient( newDirName, statsFileID );
|
dawn@0
|
317 % fclose( statsFileID );
|
dawn@0
|
318 %
|
dawn@0
|
319 %
|
dawn@0
|
320 %
|
dawn@0
|
321 case 'calculatePitch'
|
dawn@0
|
322 detect_pitch( currentSampleName, OVERWRITE );
|
dawn@0
|
323
|
dawn@0
|
324 case 'calculateSilence'
|
dawn@0
|
325 detect_silence( currentSampleName, OVERWRITE );
|
dawn@0
|
326
|
dawn@0
|
327 case 'calculateVUV'
|
dawn@0
|
328 % find the voiced and unvoiced frames using
|
dawn@0
|
329 % the harmonic ratio and pitch information
|
dawn@0
|
330 detect_VoicedUnvoiced( currentSampleName, OVERWRITE );
|
dawn@0
|
331
|
dawn@0
|
332 % case 'calculateAudioWaveform'
|
dawn@0
|
333 %
|
dawn@0
|
334 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
335 % AW_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
336 %
|
dawn@0
|
337 % case 'calculateAudioSpectrumEnvelope'
|
dawn@0
|
338 %
|
dawn@0
|
339 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
340 % ASE_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
341 %
|
dawn@0
|
342 % case 'calculateAudioSpectrumCentriodAndSpread'
|
dawn@0
|
343 %
|
dawn@0
|
344 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
345 % ASC_ASS_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
346 %
|
dawn@0
|
347 % case 'calculateAudioSpectrumBasisAndProjection'
|
dawn@0
|
348 %
|
dawn@0
|
349 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
350 % ASB_ASP_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
351 %
|
dawn@0
|
352 case 'calculateAudioPower'
|
dawn@0
|
353
|
dawn@0
|
354 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
355 detect_AudioPower( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
356 %
|
dawn@0
|
357 % case 'calculateLogAttackTIme'
|
dawn@0
|
358 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
359 % LAT_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
360 %
|
dawn@0
|
361 % case 'calculateTemporalCentroid'
|
dawn@0
|
362 %
|
dawn@0
|
363 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
364 % TC_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
365 %
|
dawn@0
|
366 % case 'calculateHarmonicRatio'
|
dawn@0
|
367 %
|
dawn@0
|
368 % % can't find this function yet
|
dawn@0
|
369 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
370 % HR_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
371 %
|
dawn@0
|
372 case 'calculateHarmonicNoiseRatio'
|
dawn@0
|
373 detect_HNR( currentSampleName, OVERWRITE );
|
dawn@0
|
374 %
|
dawn@0
|
375 % case 'calculateSpectralTimbralDescriptors'
|
dawn@0
|
376 %
|
dawn@0
|
377 % % these are best calculated together.
|
dawn@0
|
378 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
379 % spectralTimbralDescriptors( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
380
|
dawn@0
|
381 case 'calculateAudioSpectrumFlatness'
|
dawn@0
|
382
|
dawn@0
|
383 [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
384 AudioSpectralFlatness_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
385
|
dawn@0
|
386 % case 'calculateMFCCs'
|
dawn@0
|
387 %
|
dawn@0
|
388 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
389 % MFCC_Detection( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
390 %
|
dawn@0
|
391 % case 'calculatesampleDependantThresholds'
|
dawn@0
|
392 %
|
dawn@0
|
393 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
394 % sampleDependantThresholds( currentSampleName, x, fs, frameLength, noOfFrames );
|
dawn@0
|
395 %
|
dawn@0
|
396 %
|
dawn@0
|
397 % %%%%% pitch related features %%%%%
|
dawn@0
|
398 % case 'calculatesampleVoicedSoundDuration'
|
dawn@0
|
399 %
|
dawn@0
|
400 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
401 % getVoicedSoundDuration( currentSampleName, x, fs, noOfFrames, frameLength );
|
dawn@0
|
402 %
|
dawn@0
|
403 % case 'calculatesampleRelativePitch'
|
dawn@0
|
404 %
|
dawn@0
|
405 % singingpitchStatsFileName = 'singingpitchStats.txt';
|
dawn@0
|
406 % singingpitchStatsFileID = fopen( singingpitchStatsFileName, 'r' );
|
dawn@0
|
407 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
408 % getRelativePitch( singingpitchStatsFileID, currentSampleName, x, fs, noOfFrames, frameLength, 7 );
|
dawn@0
|
409 % fclose(singingpitchStatsFileID);
|
dawn@0
|
410 %
|
dawn@0
|
411 % case 'calculatesampleRelativePitchFeatures'
|
dawn@0
|
412 %
|
dawn@0
|
413 % singingpitchStatsFileName1 = '../../../../FeatureSets/singingpitchStats.txt';
|
dawn@0
|
414 % singingpitchStatsFileID1 = fopen( singingpitchStatsFileName1, 'r' );
|
dawn@0
|
415 % singingpitchStatsFileName2 = 'singingpitchStats.txt';
|
dawn@0
|
416 % singingpitchStatsFileID2 = fopen( singingpitchStatsFileName2, 'r' );
|
dawn@0
|
417 % [averageValues1 averageValues2 averageValues3] = getRelativePitchFeatures( singingpitchStatsFileID1, 7 );
|
dawn@0
|
418 % getEachRelativePitchFeature( singingpitchStatsFileID2, currentSampleName, 7, averageValues1, averageValues2, averageValues3 );
|
dawn@0
|
419 % fclose(singingpitchStatsFileID1);
|
dawn@0
|
420 % fclose(singingpitchStatsFileID2);
|
dawn@0
|
421 %
|
dawn@0
|
422 % case 'calculatesamplePitchPosition'
|
dawn@0
|
423 %
|
dawn@0
|
424 % singingpitchStatsFileName = 'singingpitchStats.txt';
|
dawn@0
|
425 % singingpitchStatsFileID = fopen( singingpitchStatsFileName, 'r' );
|
dawn@0
|
426 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
427 % getPitchPosition( singingpitchStatsFileID, currentSampleName, x, fs, noOfFrames, frameLength, 7 );
|
dawn@0
|
428 % fclose(singingpitchStatsFileID);
|
dawn@0
|
429 %
|
dawn@0
|
430 %
|
dawn@0
|
431 %
|
dawn@0
|
432 % %%%%% energy related features %%%%%
|
dawn@0
|
433 % case 'calculatesampleRelativeEnergyByMeanAll'
|
dawn@0
|
434 %
|
dawn@0
|
435 % singingenergyStatsFileName = '../../../../FeatureSets/singingenergyStats.txt';
|
dawn@0
|
436 % singingenergyhStatsFileID = fopen( singingenergyStatsFileName, 'r' );
|
dawn@0
|
437 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
438 % getRelativeEnergyByMeanAll( singingenergyhStatsFileID, currentSampleName, x, fs, noOfFrames, frameLength, 3 );
|
dawn@0
|
439 % fclose(singingenergyhStatsFileID);
|
dawn@0
|
440 %
|
dawn@0
|
441 % case 'calculatesampleRelativeEnergyByMeanVoiced'
|
dawn@0
|
442 %
|
dawn@0
|
443 % singingenergyStatsFileName = '../../../../FeatureSets/singingenergyStats.txt';
|
dawn@0
|
444 % singingenergyhStatsFileID = fopen( singingenergyStatsFileName, 'r' );
|
dawn@0
|
445 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
446 % getRelativeEnergy( singingenergyhStatsFileID, currentSampleName, x, fs, noOfFrames, frameLength, 3 );
|
dawn@0
|
447 % fclose(singingenergyhStatsFileID);
|
dawn@0
|
448 %
|
dawn@0
|
449 % case 'calculatesampleRelativeEnergyGradientByMeanAll'
|
dawn@0
|
450 %
|
dawn@0
|
451 % statsFileName = '../../../../FeatureSets/singingenergyStats.txt';
|
dawn@0
|
452 % statsFileID = fopen( statsFileName, 'r' );
|
dawn@0
|
453 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
454 % getRelativeEnergyGradient( statsFileID, newDirName, x, fs, noOfFrames, frameLength, 3 );
|
dawn@0
|
455 % fclose( statsFileID );
|
dawn@0
|
456 %
|
dawn@0
|
457 % case 'calculatesampleRelativeEnergyGradientFeaturesByMeanAll'
|
dawn@0
|
458 %
|
dawn@0
|
459 % [x, fs, frameLength, noOfFrames] = openFile( currentSampleName );
|
dawn@0
|
460 % getRelativeEnergyGradientFeatures( currentSampleName, x, fs, noOfFrames, frameLength );
|
dawn@0
|
461 %
|
dawn@0
|
462
|
dawn@0
|
463 end
|
dawn@0
|
464
|
dawn@0
|
465 cd ../
|
dawn@0
|
466 end
|
dawn@0
|
467 end
|
dawn@0
|
468
|
dawn@0
|
469 end
|
dawn@0
|
470 cd ../
|
dawn@0
|
471
|
dawn@0
|
472 end
|
dawn@0
|
473 cd ../
|
dawn@0
|
474 end
|
dawn@0
|
475
|
dawn@0
|
476 end
|
dawn@0
|
477
|
dawn@0
|
478 cd ../
|
dawn@0
|
479
|