annotate Code/ProcessDatabase.m @ 1:a3d62264030c

tested and working
author Dawn Black <dawn.black@eecs.qmul.ac.uk>
date Mon, 10 Sep 2012 09:13:53 +0100
parents ea0c737c6323
children 92ca03a8fa99
rev   line source
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