annotate Source/FeatureData.cpp @ 15:585caf503ef5 tip

Tidy up for ROLI
author Geogaddi\David <d.m.ronan@qmul.ac.uk>
date Tue, 17 May 2016 18:50:19 +0100
parents a64055168b9b
children
rev   line source
d@0 1 /*
d@0 2 ==============================================================================
d@0 3
d@0 4 FeatureData.cpp
d@0 5 Created: 28 Aug 2014 6:41:48pm
d@0 6 Author: david.ronan
d@0 7
d@0 8 ==============================================================================
d@0 9 */
d@0 10
d@0 11 #include "FeatureData.h"
d@0 12
d@0 13 FeatureData::FeatureData(){}
d@0 14 FeatureData::~FeatureData(){}
d@0 15
d@0 16 void FeatureData::PoolData(float timefactor)
d@0 17 {
d@0 18 //TODO: Remove hardcoded value
d@9 19 int modval = static_cast<int>(timefactor / 0.05); //50 millisecs
d@0 20 int index = 0;
d@0 21 int remainderindex = 0;
d@0 22
d@0 23 std::vector<float> peak;
d@0 24 std::vector<float> rms;
d@0 25 std::vector<float> crestFactor;
d@0 26 std::vector<float> zcr;
d@0 27 std::vector<float> centroid;
d@0 28 std::vector<float> spread;
d@0 29 std::vector<float> skewness;
d@0 30 std::vector<float> kurtosis;
d@0 31 std::vector<float> brightness;
d@0 32 std::vector<float> rolloff85;
d@0 33 std::vector<float> rolloff95;
d@0 34 std::vector<float> spectralentropy;
d@0 35 std::vector<float> flatness;
d@0 36 std::vector<float> spectralcf;
d@0 37 std::vector<float> spectralflux;
d@0 38
d@0 39 std::vector<float> mfcc1;
d@0 40 std::vector<float> mfcc2;
d@0 41 std::vector<float> mfcc3;
d@0 42 std::vector<float> mfcc4;
d@0 43 std::vector<float> mfcc5;
d@0 44 std::vector<float> mfcc6;
d@0 45 std::vector<float> mfcc7;
d@0 46 std::vector<float> mfcc8;
d@0 47 std::vector<float> mfcc9;
d@0 48 std::vector<float> mfcc10;
d@0 49 std::vector<float> mfcc11;
d@0 50 std::vector<float> mfcc12;
d@0 51
d@10 52 std::vector<float> spectralContrast1;
d@10 53 std::vector<float> spectralContrast2;
d@10 54 std::vector<float> spectralContrast3;
d@10 55 std::vector<float> spectralContrast4;
d@10 56 std::vector<float> spectralContrast5;
d@10 57 std::vector<float> spectralContrast6;
d@10 58
d@10 59 std::vector<float> spectralValley1;
d@10 60 std::vector<float> spectralValley2;
d@10 61 std::vector<float> spectralValley3;
d@10 62 std::vector<float> spectralValley4;
d@10 63 std::vector<float> spectralValley5;
d@10 64 std::vector<float> spectralValley6;
d@0 65
d@0 66 for(size_t i = 1; i <= m_ObservationData.size(); i++)
d@0 67 {
d@0 68 peak.push_back(m_ObservationData[i -1].GetPeak());
d@0 69 rms.push_back(m_ObservationData[i -1].GetRMS());
d@0 70 crestFactor.push_back(m_ObservationData[i -1].GetCrestFactor());
d@0 71 zcr.push_back(m_ObservationData[i -1].GetZCR());
d@0 72 centroid.push_back(m_ObservationData[i -1].GetCentroid());
d@0 73 spread.push_back(m_ObservationData[i -1].GetSpread());
d@0 74 skewness.push_back(m_ObservationData[i -1].GetSkewness());
d@0 75 kurtosis.push_back(m_ObservationData[i -1].GetKurtosis());
d@0 76 brightness.push_back(m_ObservationData[i -1].GetBrightness());
d@0 77 rolloff85.push_back(m_ObservationData[i -1].GetRollOff85());
d@0 78 rolloff95.push_back(m_ObservationData[i -1].GetRollOff95());
d@0 79 spectralentropy.push_back(m_ObservationData[i -1].GetSpectralEntropy());
d@0 80 flatness.push_back(m_ObservationData[i -1].GetFlatness());
d@0 81 spectralcf.push_back(m_ObservationData[i -1].GetSpectralCF());
d@0 82 spectralflux.push_back(m_ObservationData[i -1].GetSpectralFlux());
d@10 83
d@0 84 mfcc1.push_back(m_ObservationData[i -1].GetMFCCs()[0]);
d@0 85 mfcc2.push_back(m_ObservationData[i -1].GetMFCCs()[1]);
d@0 86 mfcc3.push_back(m_ObservationData[i -1].GetMFCCs()[2]);
d@0 87 mfcc4.push_back(m_ObservationData[i -1].GetMFCCs()[3]);
d@0 88 mfcc5.push_back(m_ObservationData[i -1].GetMFCCs()[4]);
d@0 89 mfcc6.push_back(m_ObservationData[i -1].GetMFCCs()[5]);
d@0 90 mfcc7.push_back(m_ObservationData[i -1].GetMFCCs()[6]);
d@0 91 mfcc8.push_back(m_ObservationData[i -1].GetMFCCs()[7]);
d@0 92 mfcc9.push_back(m_ObservationData[i -1].GetMFCCs()[8]);
d@0 93 mfcc10.push_back(m_ObservationData[i -1].GetMFCCs()[9]);
d@0 94 mfcc11.push_back(m_ObservationData[i -1].GetMFCCs()[10]);
d@0 95 mfcc12.push_back(m_ObservationData[i -1].GetMFCCs()[11]);
d@0 96
d@10 97 spectralContrast1.push_back(m_ObservationData[i - 1].GetSpectralContrast()[0]);
d@10 98 spectralContrast2.push_back(m_ObservationData[i - 1].GetSpectralContrast()[1]);
d@10 99 spectralContrast3.push_back(m_ObservationData[i - 1].GetSpectralContrast()[2]);
d@10 100 spectralContrast4.push_back(m_ObservationData[i - 1].GetSpectralContrast()[3]);
d@10 101 spectralContrast5.push_back(m_ObservationData[i - 1].GetSpectralContrast()[4]);
d@10 102 spectralContrast6.push_back(m_ObservationData[i - 1].GetSpectralContrast()[5]);
d@10 103
d@10 104 spectralValley1.push_back(m_ObservationData[i - 1].GetSpectralValley()[0]);
d@10 105 spectralValley2.push_back(m_ObservationData[i - 1].GetSpectralValley()[1]);
d@10 106 spectralValley3.push_back(m_ObservationData[i - 1].GetSpectralValley()[2]);
d@10 107 spectralValley4.push_back(m_ObservationData[i - 1].GetSpectralValley()[3]);
d@10 108 spectralValley5.push_back(m_ObservationData[i - 1].GetSpectralValley()[4]);
d@10 109 spectralValley6.push_back(m_ObservationData[i - 1].GetSpectralValley()[5]);
d@10 110
d@0 111 if(i % modval == 0)
d@0 112 {
d@0 113 std::vector<float> peaksubset(peak.begin() + index, peak.begin() + index + modval);
d@0 114 std::vector<float> rmssubset(rms.begin() + index, rms.begin() + index + modval);
d@0 115 std::vector<float> crestfactorsubset(crestFactor.begin() + index, crestFactor.begin() + index + modval);
d@0 116 std::vector<float> zcrsubset(zcr.begin() + index, zcr.begin() + index + modval);
d@0 117 std::vector<float> centroidsubset(centroid.begin() + index, centroid.begin() + index + modval);
d@0 118 std::vector<float> spreadsubset(spread.begin() + index, spread.begin() + index + modval);
d@0 119 std::vector<float> skewnesssubset(skewness.begin() + index, skewness.begin() + index + modval);
d@0 120 std::vector<float> kurtosissubset(kurtosis.begin() + index, kurtosis.begin() + index + modval);
d@0 121 std::vector<float> brightnesssubset(brightness.begin() + index, brightness.begin() + index + modval);
d@0 122 std::vector<float> rolloff85subset(rolloff85.begin() + index, rolloff85.begin() + index + modval);
d@0 123 std::vector<float> rolloff95subset(rolloff95.begin() + index, rolloff95.begin() + index + modval);
d@0 124 std::vector<float> spectralentropysubset(spectralentropy.begin() + index, spectralentropy.begin() + index + modval);
d@0 125 std::vector<float> flatnesssubset(flatness.begin() + index, flatness.begin() + index + modval);
d@0 126 std::vector<float> spectralcfsubset(spectralcf.begin() + index, spectralcf.begin() + index + modval);
d@0 127 std::vector<float> spectralfluxsubset(spectralflux.begin() + index, spectralflux.begin() + index + modval);
d@0 128
d@0 129 std::vector<float> mfcc1subset(mfcc1.begin() + index, mfcc1.begin() + index + modval);
d@0 130 std::vector<float> mfcc2subset(mfcc2.begin() + index, mfcc2.begin() + index + modval);
d@0 131 std::vector<float> mfcc3subset(mfcc3.begin() + index, mfcc3.begin() + index + modval);
d@0 132 std::vector<float> mfcc4subset(mfcc4.begin() + index, mfcc4.begin() + index + modval);
d@0 133 std::vector<float> mfcc5subset(mfcc5.begin() + index, mfcc5.begin() + index + modval);
d@0 134 std::vector<float> mfcc6subset(mfcc6.begin() + index, mfcc6.begin() + index + modval);
d@0 135 std::vector<float> mfcc7subset(mfcc7.begin() + index, mfcc7.begin() + index + modval);
d@0 136 std::vector<float> mfcc8subset(mfcc8.begin() + index, mfcc8.begin() + index + modval);
d@0 137 std::vector<float> mfcc9subset(mfcc9.begin() + index, mfcc9.begin() + index + modval);
d@0 138 std::vector<float> mfcc10subset(mfcc10.begin() + index, mfcc10.begin() + index + modval);
d@0 139 std::vector<float> mfcc11subset(mfcc11.begin() + index, mfcc11.begin() + index + modval);
d@0 140 std::vector<float> mfcc12subset(mfcc12.begin() + index, mfcc12.begin() + index + modval);
d@10 141
d@10 142 std::vector<float> dmfcc1subset(m_deltamfccs[0].begin() + index, m_deltamfccs[0].begin() + index + modval);
d@10 143 std::vector<float> dmfcc2subset(m_deltamfccs[1].begin() + index, m_deltamfccs[1].begin() + index + modval);
d@10 144 std::vector<float> dmfcc3subset(m_deltamfccs[2].begin() + index, m_deltamfccs[2].begin() + index + modval);
d@10 145 std::vector<float> dmfcc4subset(m_deltamfccs[3].begin() + index, m_deltamfccs[3].begin() + index + modval);
d@10 146 std::vector<float> dmfcc5subset(m_deltamfccs[4].begin() + index, m_deltamfccs[4].begin() + index + modval);
d@10 147 std::vector<float> dmfcc6subset(m_deltamfccs[5].begin() + index, m_deltamfccs[5].begin() + index + modval);
d@10 148 std::vector<float> dmfcc7subset(m_deltamfccs[6].begin() + index, m_deltamfccs[6].begin() + index + modval);
d@10 149 std::vector<float> dmfcc8subset(m_deltamfccs[7].begin() + index, m_deltamfccs[7].begin() + index + modval);
d@10 150 std::vector<float> dmfcc9subset(m_deltamfccs[8].begin() + index, m_deltamfccs[8].begin() + index + modval);
d@10 151 std::vector<float> dmfcc10subset(m_deltamfccs[9].begin() + index, m_deltamfccs[9].begin() + index + modval);
d@10 152 std::vector<float> dmfcc11subset(m_deltamfccs[10].begin() + index, m_deltamfccs[10].begin() + index + modval);
d@10 153 std::vector<float> dmfcc12subset(m_deltamfccs[11].begin() + index, m_deltamfccs[11].begin() + index + modval);
d@0 154
d@10 155 std::vector<float> spectralContrast1subset(spectralContrast1.begin() + index, spectralContrast1.begin() + index + modval);
d@10 156 std::vector<float> spectralContrast2subset(spectralContrast2.begin() + index, spectralContrast2.begin() + index + modval);
d@10 157 std::vector<float> spectralContrast3subset(spectralContrast3.begin() + index, spectralContrast3.begin() + index + modval);
d@10 158 std::vector<float> spectralContrast4subset(spectralContrast4.begin() + index, spectralContrast4.begin() + index + modval);
d@10 159 std::vector<float> spectralContrast5subset(spectralContrast5.begin() + index, spectralContrast5.begin() + index + modval);
d@10 160 std::vector<float> spectralContrast6subset(spectralContrast6.begin() + index, spectralContrast6.begin() + index + modval);
d@10 161
d@10 162 std::vector<float> spectralValley1subset(spectralValley1.begin() + index, spectralValley1.begin() + index + modval);
d@10 163 std::vector<float> spectralValley2subset(spectralValley2.begin() + index, spectralValley2.begin() + index + modval);
d@10 164 std::vector<float> spectralValley3subset(spectralValley3.begin() + index, spectralValley3.begin() + index + modval);
d@10 165 std::vector<float> spectralValley4subset(spectralValley4.begin() + index, spectralValley4.begin() + index + modval);
d@10 166 std::vector<float> spectralValley5subset(spectralValley5.begin() + index, spectralValley5.begin() + index + modval);
d@10 167 std::vector<float> spectralValley6subset(spectralValley6.begin() + index, spectralValley6.begin() + index + modval);
d@0 168
d@0 169 float avgpeak = Average(peaksubset);
d@0 170 float avgrms = Average(rmssubset);
d@0 171 float avgcrestFactor = Average(crestfactorsubset);
d@0 172 float avgzcr = Average(zcrsubset);
d@0 173 float avgcentroid = Average(centroidsubset);
d@0 174 float avgspread = Average(spreadsubset);
d@0 175 float avgskewness = Average(skewnesssubset);
d@0 176 float avgkurtosis = Average(kurtosissubset);
d@0 177 float avgbrightness = Average(brightness);
d@0 178 float avgrolloff85 = Average(rolloff85subset);
d@0 179 float avgrolloff95 = Average(rolloff95subset);
d@0 180 float avgspectralentropy = Average(spectralentropysubset);
d@0 181 float avgflatness = Average(flatnesssubset) ;
d@0 182 float avgspectralcf = Average(spectralcfsubset);
d@0 183 float avgspectralflux = Average(spectralfluxsubset);
d@0 184 std::vector<float> avgmfcc;
d@0 185 std::vector<float> avgdmfcc;
d@10 186 std::vector<float> avgspectralContrast;
d@10 187 std::vector<float> avgspectralValley;
d@10 188
d@0 189 avgmfcc.push_back(Average(mfcc1subset));
d@0 190 avgmfcc.push_back(Average(mfcc2subset));
d@0 191 avgmfcc.push_back(Average(mfcc3subset));
d@0 192 avgmfcc.push_back(Average(mfcc4subset));
d@0 193 avgmfcc.push_back(Average(mfcc5subset));
d@0 194 avgmfcc.push_back(Average(mfcc6subset));
d@0 195 avgmfcc.push_back(Average(mfcc7subset));
d@0 196 avgmfcc.push_back(Average(mfcc8subset));
d@0 197 avgmfcc.push_back(Average(mfcc9subset));
d@0 198 avgmfcc.push_back(Average(mfcc10subset));
d@0 199 avgmfcc.push_back(Average(mfcc11subset));
d@0 200 avgmfcc.push_back(Average(mfcc12subset));
d@0 201
d@0 202 avgdmfcc.push_back(Average(dmfcc1subset));
d@0 203 avgdmfcc.push_back(Average(dmfcc2subset));
d@0 204 avgdmfcc.push_back(Average(dmfcc3subset));
d@0 205 avgdmfcc.push_back(Average(dmfcc4subset));
d@0 206 avgdmfcc.push_back(Average(dmfcc5subset));
d@0 207 avgdmfcc.push_back(Average(dmfcc6subset));
d@0 208 avgdmfcc.push_back(Average(dmfcc7subset));
d@0 209 avgdmfcc.push_back(Average(dmfcc8subset));
d@0 210 avgdmfcc.push_back(Average(dmfcc9subset));
d@0 211 avgdmfcc.push_back(Average(dmfcc10subset));
d@0 212 avgdmfcc.push_back(Average(dmfcc11subset));
d@0 213 avgdmfcc.push_back(Average(dmfcc12subset));
d@0 214
d@10 215 avgspectralContrast.push_back(Average(spectralContrast1subset));
d@10 216 avgspectralContrast.push_back(Average(spectralContrast2subset));
d@10 217 avgspectralContrast.push_back(Average(spectralContrast3subset));
d@10 218 avgspectralContrast.push_back(Average(spectralContrast4subset));
d@10 219 avgspectralContrast.push_back(Average(spectralContrast5subset));
d@10 220 avgspectralContrast.push_back(Average(spectralContrast6subset));
d@10 221
d@10 222 avgspectralValley.push_back(Average(spectralValley1subset));
d@10 223 avgspectralValley.push_back(Average(spectralValley2subset));
d@10 224 avgspectralValley.push_back(Average(spectralValley3subset));
d@10 225 avgspectralValley.push_back(Average(spectralValley4subset));
d@10 226 avgspectralValley.push_back(Average(spectralValley5subset));
d@10 227 avgspectralValley.push_back(Average(spectralValley6subset));
d@10 228
d@10 229
d@10 230 ObservationData obs = ObservationData(avgrms, avgpeak, avgcrestFactor, avgzcr, avgcentroid, avgspread, avgskewness, avgkurtosis, avgbrightness, avgrolloff85, avgrolloff95, avgspectralentropy, avgflatness, avgspectralcf, avgspectralflux, avgmfcc, avgdmfcc, avgspectralContrast, avgspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 231 obs.SetLowEnergy(m_ObservationData[i-1].GetLowEnergy());
d@0 232 m_PooledObservationDataAverage.push_back(obs);
d@0 233
d@0 234 std::vector<float> stdmfcc;
d@0 235 std::vector<float> stddmfcc;
d@10 236 std::vector<float> stdspectralContrast;
d@10 237 std::vector<float> stdspectralValley;
d@0 238
d@10 239 stdmfcc.push_back(Deviation(mfcc1subset,avgmfcc[0]));
d@10 240 stdmfcc.push_back(Deviation(mfcc2subset, avgmfcc[1]));
d@10 241 stdmfcc.push_back(Deviation(mfcc3subset, avgmfcc[2]));
d@10 242 stdmfcc.push_back(Deviation(mfcc4subset, avgmfcc[3]));
d@10 243 stdmfcc.push_back(Deviation(mfcc5subset, avgmfcc[4]));
d@10 244 stdmfcc.push_back(Deviation(mfcc6subset, avgmfcc[5]));
d@10 245 stdmfcc.push_back(Deviation(mfcc7subset, avgmfcc[6]));
d@10 246 stdmfcc.push_back(Deviation(mfcc8subset, avgmfcc[7]));
d@10 247 stdmfcc.push_back(Deviation(mfcc9subset, avgmfcc[8]));
d@10 248 stdmfcc.push_back(Deviation(mfcc10subset, avgmfcc[9]));
d@10 249 stdmfcc.push_back(Deviation(mfcc11subset, avgmfcc[10]));
d@10 250 stdmfcc.push_back(Deviation(mfcc12subset, avgmfcc[11]));
d@0 251
d@10 252 stddmfcc.push_back(Deviation(dmfcc1subset, avgdmfcc[0]));
d@10 253 stddmfcc.push_back(Deviation(dmfcc2subset, avgdmfcc[1]));
d@10 254 stddmfcc.push_back(Deviation(dmfcc3subset, avgdmfcc[2]));
d@10 255 stddmfcc.push_back(Deviation(dmfcc4subset, avgdmfcc[3]));
d@10 256 stddmfcc.push_back(Deviation(dmfcc5subset, avgdmfcc[4]));
d@10 257 stddmfcc.push_back(Deviation(dmfcc6subset, avgdmfcc[5]));
d@10 258 stddmfcc.push_back(Deviation(dmfcc7subset, avgdmfcc[6]));
d@10 259 stddmfcc.push_back(Deviation(dmfcc8subset, avgdmfcc[7]));
d@10 260 stddmfcc.push_back(Deviation(dmfcc9subset, avgdmfcc[8]));
d@10 261 stddmfcc.push_back(Deviation(dmfcc10subset, avgdmfcc[9]));
d@10 262 stddmfcc.push_back(Deviation(dmfcc11subset, avgdmfcc[10]));
d@10 263 stddmfcc.push_back(Deviation(dmfcc12subset, avgdmfcc[11]));
d@10 264
d@10 265 stdspectralContrast.push_back(Deviation(spectralContrast1subset, avgspectralContrast[0]));
d@10 266 stdspectralContrast.push_back(Deviation(spectralContrast2subset, avgspectralContrast[1]));
d@10 267 stdspectralContrast.push_back(Deviation(spectralContrast3subset, avgspectralContrast[2]));
d@10 268 stdspectralContrast.push_back(Deviation(spectralContrast4subset, avgspectralContrast[3]));
d@10 269 stdspectralContrast.push_back(Deviation(spectralContrast5subset, avgspectralContrast[4]));
d@10 270 stdspectralContrast.push_back(Deviation(spectralContrast6subset, avgspectralContrast[5]));
d@10 271
d@10 272 stdspectralValley.push_back(Deviation(spectralValley1subset, avgspectralValley[0]));
d@10 273 stdspectralValley.push_back(Deviation(spectralValley2subset, avgspectralValley[1]));
d@10 274 stdspectralValley.push_back(Deviation(spectralValley3subset, avgspectralValley[2]));
d@10 275 stdspectralValley.push_back(Deviation(spectralValley4subset, avgspectralValley[3]));
d@10 276 stdspectralValley.push_back(Deviation(spectralValley5subset, avgspectralValley[4]));
d@10 277 stdspectralValley.push_back(Deviation(spectralValley6subset, avgspectralValley[5]));
d@10 278
d@10 279 obs = ObservationData(Deviation(rmssubset, avgrms), Deviation(peaksubset, avgpeak), Deviation(crestfactorsubset, avgcrestFactor), Deviation(zcrsubset, avgzcr), Deviation(centroidsubset, avgcentroid), Deviation(spreadsubset, avgspread), Deviation(skewnesssubset, avgskewness), Deviation(kurtosissubset, avgkurtosis), Deviation(brightnesssubset, avgbrightness), Deviation(rolloff85subset, avgrolloff85), Deviation(rolloff95subset, avgrolloff95), Deviation(spectralentropysubset, avgspectralentropy), Deviation(flatnesssubset, avgflatness), Deviation(spectralcfsubset, avgspectralcf), Deviation(spectralfluxsubset, avgspectralflux), stdmfcc, stddmfcc, stdspectralContrast, stdspectralValley, 0, 0);
d@0 280 obs.SetLowEnergy(0); //
d@0 281 m_PooledObservationDataStd.push_back(obs);
d@0 282
d@0 283 std::vector<float> maxmfcc;
d@0 284 std::vector<float> maxdmfcc;
d@10 285 std::vector<float> maxspectralContrast;
d@10 286 std::vector<float> maxspectralValley;
d@10 287
d@0 288 maxmfcc.push_back(Max(mfcc1subset));
d@0 289 maxmfcc.push_back(Max(mfcc2subset));
d@0 290 maxmfcc.push_back(Max(mfcc3subset));
d@0 291 maxmfcc.push_back(Max(mfcc4subset));
d@0 292 maxmfcc.push_back(Max(mfcc5subset));
d@0 293 maxmfcc.push_back(Max(mfcc6subset));
d@0 294 maxmfcc.push_back(Max(mfcc7subset));
d@0 295 maxmfcc.push_back(Max(mfcc8subset));
d@0 296 maxmfcc.push_back(Max(mfcc9subset));
d@0 297 maxmfcc.push_back(Max(mfcc10subset));
d@0 298 maxmfcc.push_back(Max(mfcc11subset));
d@0 299 maxmfcc.push_back(Max(mfcc12subset));
d@0 300
d@0 301 maxdmfcc.push_back(Max(dmfcc1subset));
d@0 302 maxdmfcc.push_back(Max(dmfcc2subset));
d@0 303 maxdmfcc.push_back(Max(dmfcc3subset));
d@0 304 maxdmfcc.push_back(Max(dmfcc4subset));
d@0 305 maxdmfcc.push_back(Max(dmfcc5subset));
d@0 306 maxdmfcc.push_back(Max(dmfcc6subset));
d@0 307 maxdmfcc.push_back(Max(dmfcc7subset));
d@0 308 maxdmfcc.push_back(Max(dmfcc8subset));
d@0 309 maxdmfcc.push_back(Max(dmfcc9subset));
d@0 310 maxdmfcc.push_back(Max(dmfcc10subset));
d@0 311 maxdmfcc.push_back(Max(dmfcc11subset));
d@0 312 maxdmfcc.push_back(Max(dmfcc12subset));
d@0 313
d@10 314 maxspectralContrast.push_back(Max(spectralContrast1subset));
d@10 315 maxspectralContrast.push_back(Max(spectralContrast2subset));
d@10 316 maxspectralContrast.push_back(Max(spectralContrast3subset));
d@10 317 maxspectralContrast.push_back(Max(spectralContrast4subset));
d@10 318 maxspectralContrast.push_back(Max(spectralContrast5subset));
d@10 319 maxspectralContrast.push_back(Max(spectralContrast6subset));
d@10 320
d@10 321 maxspectralValley.push_back(Max(spectralValley1subset));
d@10 322 maxspectralValley.push_back(Max(spectralValley2subset));
d@10 323 maxspectralValley.push_back(Max(spectralValley3subset));
d@10 324 maxspectralValley.push_back(Max(spectralValley4subset));
d@10 325 maxspectralValley.push_back(Max(spectralValley5subset));
d@10 326 maxspectralValley.push_back(Max(spectralValley6subset));
d@10 327
d@10 328 obs = ObservationData(Max(rmssubset), Max(peaksubset), Max(crestfactorsubset), Max(zcrsubset), Max(centroidsubset), Max(spreadsubset), Max(skewnesssubset), Max(kurtosissubset), Max(brightnesssubset), Max(rolloff85subset), Max(rolloff95subset), Max(spectralentropysubset), Max(flatnesssubset), Max(spectralcfsubset), Max(spectralfluxsubset), maxmfcc, maxdmfcc, maxspectralContrast, maxspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 329 obs.SetLowEnergy(m_ObservationData[i-1].GetLowEnergy());
d@0 330 m_PooledObservationDataMax.push_back(obs);
d@0 331
d@0 332 std::vector<float> minmfcc;
d@0 333 std::vector<float> mindmfcc;
d@10 334 std::vector<float> minspectralContrast;
d@10 335 std::vector<float> minspectralValley;
d@10 336
d@0 337 minmfcc.push_back(Min(mfcc1subset));
d@0 338 minmfcc.push_back(Min(mfcc2subset));
d@0 339 minmfcc.push_back(Min(mfcc3subset));
d@0 340 minmfcc.push_back(Min(mfcc4subset));
d@0 341 minmfcc.push_back(Min(mfcc5subset));
d@0 342 minmfcc.push_back(Min(mfcc6subset));
d@0 343 minmfcc.push_back(Min(mfcc7subset));
d@0 344 minmfcc.push_back(Min(mfcc8subset));
d@0 345 minmfcc.push_back(Min(mfcc9subset));
d@0 346 minmfcc.push_back(Min(mfcc10subset));
d@0 347 minmfcc.push_back(Min(mfcc11subset));
d@0 348 minmfcc.push_back(Min(mfcc12subset));
d@0 349
d@0 350 mindmfcc.push_back(Min(dmfcc1subset));
d@0 351 mindmfcc.push_back(Min(dmfcc2subset));
d@0 352 mindmfcc.push_back(Min(dmfcc3subset));
d@0 353 mindmfcc.push_back(Min(dmfcc4subset));
d@0 354 mindmfcc.push_back(Min(dmfcc5subset));
d@0 355 mindmfcc.push_back(Min(dmfcc6subset));
d@0 356 mindmfcc.push_back(Min(dmfcc7subset));
d@0 357 mindmfcc.push_back(Min(dmfcc8subset));
d@0 358 mindmfcc.push_back(Min(dmfcc9subset));
d@0 359 mindmfcc.push_back(Min(dmfcc10subset));
d@0 360 mindmfcc.push_back(Min(dmfcc11subset));
d@0 361 mindmfcc.push_back(Min(dmfcc12subset));
d@0 362
d@10 363 minspectralContrast.push_back(Min(spectralContrast1subset));
d@10 364 minspectralContrast.push_back(Min(spectralContrast2subset));
d@10 365 minspectralContrast.push_back(Min(spectralContrast3subset));
d@10 366 minspectralContrast.push_back(Min(spectralContrast4subset));
d@10 367 minspectralContrast.push_back(Min(spectralContrast5subset));
d@10 368 minspectralContrast.push_back(Min(spectralContrast6subset));
d@10 369
d@10 370 minspectralValley.push_back(Min(spectralValley1subset));
d@10 371 minspectralValley.push_back(Min(spectralValley2subset));
d@10 372 minspectralValley.push_back(Min(spectralValley3subset));
d@10 373 minspectralValley.push_back(Min(spectralValley4subset));
d@10 374 minspectralValley.push_back(Min(spectralValley5subset));
d@10 375 minspectralValley.push_back(Min(spectralValley6subset));
d@10 376
d@10 377 obs = ObservationData(Min(rmssubset), Min(peaksubset), Min(crestfactorsubset), Min(zcrsubset), Min(centroidsubset), Min(spreadsubset), Min(skewnesssubset), Min(kurtosissubset), Min(brightnesssubset), Min(rolloff85subset), Min(rolloff95subset), Min(spectralentropysubset), Min(flatnesssubset), Min(spectralcfsubset), Min(spectralfluxsubset), minmfcc, mindmfcc, minspectralContrast, minspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 378 obs.SetLowEnergy(m_ObservationData[i-1].GetLowEnergy());
d@0 379 m_PooledObservationDataMin.push_back(obs);
d@0 380
d@0 381 //TODO: Think about this
d@0 382 index += modval;
d@0 383 remainderindex = i;
d@0 384 }
d@0 385 }
d@0 386
d@0 387 //Get the end of the audio
d@0 388 std::vector<float> peaksubset(peak.begin() + remainderindex, peak.end());
d@0 389 std::vector<float> rmssubset(rms.begin() + + remainderindex, rms.end());
d@0 390 std::vector<float> crestFactorsubset(crestFactor.begin() + remainderindex, crestFactor.end());
d@0 391 std::vector<float> zcrsubset(zcr.begin() + remainderindex, zcr.end());
d@0 392 std::vector<float> centroidsubset(centroid.begin() + remainderindex, centroid.end());
d@0 393 std::vector<float> spreadsubset(spread.begin() + remainderindex, spread.end());
d@0 394 std::vector<float> skewnesssubset(skewness.begin() + remainderindex, skewness.end());
d@0 395 std::vector<float> kurtosissubset(kurtosis.begin() + remainderindex, kurtosis.end());
d@0 396 std::vector<float> brightnesssubset(brightness.begin() + remainderindex, brightness.end());
d@0 397 std::vector<float> rolloff85subset(rolloff85.begin() + remainderindex, rolloff85.end());
d@0 398 std::vector<float> rolloff95subset(rolloff95.begin() + remainderindex, rolloff95.end());
d@0 399 std::vector<float> spectralentropysubset(spectralentropy.begin() + remainderindex, spectralentropy.end());
d@0 400 std::vector<float> spectralcfsubset(spectralcf.begin() + remainderindex, spectralcf.end());
d@0 401 std::vector<float> spectralfluxsubset(spectralflux.begin() + remainderindex, spectralflux.end());
d@0 402 std::vector<float> flatnesssubset(flatness.begin() + remainderindex, flatness.end());
d@0 403
d@0 404 std::vector<float> mfcc1subset(mfcc1.begin() + remainderindex, mfcc1.end());
d@0 405 std::vector<float> mfcc2subset(mfcc2.begin() + remainderindex, mfcc2.end());
d@0 406 std::vector<float> mfcc3subset(mfcc3.begin() + remainderindex, mfcc3.end());
d@0 407 std::vector<float> mfcc4subset(mfcc4.begin() + remainderindex, mfcc4.end());
d@0 408 std::vector<float> mfcc5subset(mfcc5.begin() + remainderindex, mfcc5.end());
d@0 409 std::vector<float> mfcc6subset(mfcc6.begin() + remainderindex, mfcc6.end());
d@0 410 std::vector<float> mfcc7subset(mfcc7.begin() + remainderindex, mfcc7.end());
d@0 411 std::vector<float> mfcc8subset(mfcc8.begin() + remainderindex, mfcc8.end());
d@0 412 std::vector<float> mfcc9subset(mfcc9.begin() + remainderindex, mfcc9.end());
d@0 413 std::vector<float> mfcc10subset(mfcc10.begin() + remainderindex, mfcc10.end());
d@0 414 std::vector<float> mfcc11subset(mfcc11.begin() + remainderindex, mfcc11.end());
d@0 415 std::vector<float> mfcc12subset(mfcc12.begin() + remainderindex, mfcc12.end());
d@0 416
d@0 417 std::vector<float> dmfcc1subset(m_deltamfccs[0].begin() + remainderindex, m_deltamfccs[0].end());
d@0 418 std::vector<float> dmfcc2subset(m_deltamfccs[1].begin() + remainderindex, m_deltamfccs[1].end());
d@0 419 std::vector<float> dmfcc3subset(m_deltamfccs[2].begin() + remainderindex, m_deltamfccs[2].end());
d@0 420 std::vector<float> dmfcc4subset(m_deltamfccs[3].begin() + remainderindex, m_deltamfccs[3].end());
d@0 421 std::vector<float> dmfcc5subset(m_deltamfccs[4].begin() + remainderindex, m_deltamfccs[4].end());
d@0 422 std::vector<float> dmfcc6subset(m_deltamfccs[5].begin() + remainderindex, m_deltamfccs[5].end());
d@0 423 std::vector<float> dmfcc7subset(m_deltamfccs[6].begin() + remainderindex, m_deltamfccs[6].end());
d@0 424 std::vector<float> dmfcc8subset(m_deltamfccs[7].begin() + remainderindex, m_deltamfccs[7].end());
d@0 425 std::vector<float> dmfcc9subset(m_deltamfccs[8].begin() + remainderindex, m_deltamfccs[8].end());
d@0 426 std::vector<float> dmfcc10subset(m_deltamfccs[9].begin() + remainderindex, m_deltamfccs[9].end());
d@0 427 std::vector<float> dmfcc11subset(m_deltamfccs[10].begin() + remainderindex, m_deltamfccs[10].end());
d@0 428 std::vector<float> dmfcc12subset(m_deltamfccs[11].begin() + remainderindex, m_deltamfccs[11].end());
d@0 429
d@10 430 std::vector<float> spectralContrast1subset(spectralContrast1.begin() + remainderindex, spectralContrast1.end());
d@10 431 std::vector<float> spectralContrast2subset(spectralContrast2.begin() + remainderindex, spectralContrast2.end());
d@10 432 std::vector<float> spectralContrast3subset(spectralContrast3.begin() + remainderindex, spectralContrast3.end());
d@10 433 std::vector<float> spectralContrast4subset(spectralContrast4.begin() + remainderindex, spectralContrast4.end());
d@10 434 std::vector<float> spectralContrast5subset(spectralContrast5.begin() + remainderindex, spectralContrast5.end());
d@10 435 std::vector<float> spectralContrast6subset(spectralContrast6.begin() + remainderindex, spectralContrast6.end());
d@10 436
d@10 437 std::vector<float> spectralValley1subset(spectralValley1.begin() + remainderindex, spectralValley1.end());
d@10 438 std::vector<float> spectralValley2subset(spectralValley2.begin() + remainderindex, spectralValley2.end());
d@10 439 std::vector<float> spectralValley3subset(spectralValley3.begin() + remainderindex, spectralValley3.end());
d@10 440 std::vector<float> spectralValley4subset(spectralValley4.begin() + remainderindex, spectralValley4.end());
d@10 441 std::vector<float> spectralValley5subset(spectralValley5.begin() + remainderindex, spectralValley5.end());
d@10 442 std::vector<float> spectralValley6subset(spectralValley6.begin() + remainderindex, spectralValley6.end());
d@10 443
d@0 444 float avgpeak = Average(peaksubset);
d@0 445 float avgrms = Average(rmssubset);
d@0 446 float avgcrestFactor = Average(crestFactorsubset);
d@0 447 float avgzcr = Average(zcrsubset);
d@0 448 float avgcentroid = Average(centroidsubset);
d@0 449 float avgspread = Average(spreadsubset);
d@0 450 float avgskewness = Average(skewnesssubset);
d@0 451 float avgkurtosis = Average(kurtosissubset);
d@0 452 float avgbrightness = Average(brightness);
d@0 453 float avgrolloff85 = Average(rolloff85subset);
d@0 454 float avgrolloff95 = Average(rolloff95subset);
d@0 455 float avgspectralentropy = Average(spectralentropysubset);
d@0 456 float avgflatness = Average(flatnesssubset);
d@0 457 float avgspectralcf = Average(spectralcfsubset);
d@0 458 float avgspectralflux = Average(spectralfluxsubset);
d@0 459
d@0 460 std::vector<float> avgmfcc;
d@0 461 std::vector<float> avgdeltamfcc;
d@10 462 std::vector<float> avgspectralContrast;
d@10 463 std::vector<float> avgspectralValley;
d@10 464
d@0 465 avgmfcc.push_back(Average(mfcc1subset));
d@0 466 avgmfcc.push_back(Average(mfcc2subset));
d@0 467 avgmfcc.push_back(Average(mfcc3subset));
d@0 468 avgmfcc.push_back(Average(mfcc4subset));
d@0 469 avgmfcc.push_back(Average(mfcc5subset));
d@0 470 avgmfcc.push_back(Average(mfcc6subset));
d@0 471 avgmfcc.push_back(Average(mfcc7subset));
d@0 472 avgmfcc.push_back(Average(mfcc8subset));
d@0 473 avgmfcc.push_back(Average(mfcc9subset));
d@0 474 avgmfcc.push_back(Average(mfcc10subset));
d@0 475 avgmfcc.push_back(Average(mfcc11subset));
d@0 476 avgmfcc.push_back(Average(mfcc12subset));
d@0 477
d@0 478 avgdeltamfcc.push_back(Average(dmfcc1subset));
d@0 479 avgdeltamfcc.push_back(Average(dmfcc2subset));
d@0 480 avgdeltamfcc.push_back(Average(dmfcc3subset));
d@0 481 avgdeltamfcc.push_back(Average(dmfcc4subset));
d@0 482 avgdeltamfcc.push_back(Average(dmfcc5subset));
d@0 483 avgdeltamfcc.push_back(Average(dmfcc6subset));
d@0 484 avgdeltamfcc.push_back(Average(dmfcc7subset));
d@0 485 avgdeltamfcc.push_back(Average(dmfcc8subset));
d@0 486 avgdeltamfcc.push_back(Average(dmfcc9subset));
d@0 487 avgdeltamfcc.push_back(Average(dmfcc10subset));
d@0 488 avgdeltamfcc.push_back(Average(dmfcc11subset));
d@0 489 avgdeltamfcc.push_back(Average(dmfcc12subset));
d@0 490
d@10 491 avgspectralContrast.push_back(Average(spectralContrast1subset));
d@10 492 avgspectralContrast.push_back(Average(spectralContrast2subset));
d@10 493 avgspectralContrast.push_back(Average(spectralContrast3subset));
d@10 494 avgspectralContrast.push_back(Average(spectralContrast4subset));
d@10 495 avgspectralContrast.push_back(Average(spectralContrast5subset));
d@10 496 avgspectralContrast.push_back(Average(spectralContrast6subset));
d@10 497
d@10 498 avgspectralValley.push_back(Average(spectralValley1subset));
d@10 499 avgspectralValley.push_back(Average(spectralValley2subset));
d@10 500 avgspectralValley.push_back(Average(spectralValley3subset));
d@10 501 avgspectralValley.push_back(Average(spectralValley4subset));
d@10 502 avgspectralValley.push_back(Average(spectralValley5subset));
d@10 503 avgspectralValley.push_back(Average(spectralValley6subset));
d@10 504
d@10 505 ObservationData obs = ObservationData(avgrms, avgpeak, avgcrestFactor, avgzcr, avgcentroid, avgspread, avgskewness, avgkurtosis, avgbrightness, avgrolloff85, avgrolloff95, avgspectralentropy, avgflatness, avgspectralcf, avgspectralflux, avgmfcc, avgdeltamfcc, avgspectralContrast, avgspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 506 obs.SetLowEnergy(m_ObservationData[0].GetLowEnergy());
d@0 507 m_PooledObservationDataAverage.push_back(obs);
d@0 508
d@0 509 std::vector<float> stdmfcc;
d@0 510 std::vector<float> stddeltamfcc;
d@10 511 std::vector<float> stdspectralContrast;
d@10 512 std::vector<float> stdspectralValley;
d@10 513
d@0 514 stdmfcc.push_back(Deviation(mfcc1subset,avgmfcc[0]));
d@0 515 stdmfcc.push_back(Deviation(mfcc2subset,avgmfcc[1]));
d@0 516 stdmfcc.push_back(Deviation(mfcc3subset,avgmfcc[2]));
d@0 517 stdmfcc.push_back(Deviation(mfcc4subset,avgmfcc[3]));
d@0 518 stdmfcc.push_back(Deviation(mfcc5subset,avgmfcc[4]));
d@0 519 stdmfcc.push_back(Deviation(mfcc6subset,avgmfcc[5]));
d@0 520 stdmfcc.push_back(Deviation(mfcc7subset,avgmfcc[6]));
d@0 521 stdmfcc.push_back(Deviation(mfcc8subset,avgmfcc[7]));
d@0 522 stdmfcc.push_back(Deviation(mfcc9subset,avgmfcc[8]));
d@0 523 stdmfcc.push_back(Deviation(mfcc10subset,avgmfcc[9]));
d@0 524 stdmfcc.push_back(Deviation(mfcc11subset,avgmfcc[10]));
d@0 525 stdmfcc.push_back(Deviation(mfcc12subset,avgmfcc[11]));
d@0 526
d@0 527 stddeltamfcc.push_back(Deviation(dmfcc1subset,avgdeltamfcc[0]));
d@0 528 stddeltamfcc.push_back(Deviation(dmfcc2subset,avgdeltamfcc[1]));
d@0 529 stddeltamfcc.push_back(Deviation(dmfcc3subset,avgdeltamfcc[2]));
d@0 530 stddeltamfcc.push_back(Deviation(dmfcc4subset,avgdeltamfcc[3]));
d@0 531 stddeltamfcc.push_back(Deviation(dmfcc5subset,avgdeltamfcc[4]));
d@0 532 stddeltamfcc.push_back(Deviation(dmfcc6subset,avgdeltamfcc[5]));
d@0 533 stddeltamfcc.push_back(Deviation(dmfcc7subset,avgdeltamfcc[6]));
d@0 534 stddeltamfcc.push_back(Deviation(dmfcc8subset,avgdeltamfcc[7]));
d@0 535 stddeltamfcc.push_back(Deviation(dmfcc9subset,avgdeltamfcc[8]));
d@0 536 stddeltamfcc.push_back(Deviation(dmfcc10subset,avgdeltamfcc[9]));
d@0 537 stddeltamfcc.push_back(Deviation(dmfcc11subset,avgdeltamfcc[10]));
d@0 538 stddeltamfcc.push_back(Deviation(dmfcc12subset,avgdeltamfcc[11]));
d@0 539
d@10 540 stdspectralContrast.push_back(Deviation(spectralContrast1subset, avgspectralContrast[0]));
d@10 541 stdspectralContrast.push_back(Deviation(spectralContrast2subset, avgspectralContrast[1]));
d@10 542 stdspectralContrast.push_back(Deviation(spectralContrast3subset, avgspectralContrast[2]));
d@10 543 stdspectralContrast.push_back(Deviation(spectralContrast4subset, avgspectralContrast[3]));
d@10 544 stdspectralContrast.push_back(Deviation(spectralContrast5subset, avgspectralContrast[4]));
d@10 545 stdspectralContrast.push_back(Deviation(spectralContrast6subset, avgspectralContrast[5]));
d@10 546
d@10 547 stdspectralValley.push_back(Deviation(spectralValley1subset, avgspectralValley[0]));
d@10 548 stdspectralValley.push_back(Deviation(spectralValley2subset, avgspectralValley[1]));
d@10 549 stdspectralValley.push_back(Deviation(spectralValley3subset, avgspectralValley[2]));
d@10 550 stdspectralValley.push_back(Deviation(spectralValley4subset, avgspectralValley[3]));
d@10 551 stdspectralValley.push_back(Deviation(spectralValley5subset, avgspectralValley[4]));
d@10 552 stdspectralValley.push_back(Deviation(spectralValley6subset, avgspectralValley[5]));
d@10 553
d@10 554 obs = ObservationData(Deviation(rmssubset, avgrms), Deviation(peaksubset, avgpeak), Deviation(crestFactorsubset, avgcrestFactor), Deviation(zcrsubset, avgzcr), Deviation(centroidsubset, avgcentroid), Deviation(spreadsubset, avgspread), Deviation(skewnesssubset, avgskewness), Deviation(kurtosissubset, avgkurtosis), Deviation(brightnesssubset, avgbrightness), Deviation(rolloff85subset, avgrolloff85), Deviation(rolloff95subset, avgrolloff95), Deviation(spectralentropysubset, avgspectralentropy), Deviation(flatnesssubset, avgflatness), Deviation(spectralcfsubset, avgspectralcf), Deviation(spectralfluxsubset, avgspectralflux), stdmfcc, stddeltamfcc, stdspectralContrast, stdspectralValley, 0, 0);
d@0 555 obs.SetLowEnergy(0); //
d@0 556 m_PooledObservationDataStd.push_back(obs);
d@0 557
d@0 558 std::vector<float> maxmfcc;
d@0 559 std::vector<float> maxdeltamfcc;
d@10 560 std::vector<float> maxspectralContrast;
d@10 561 std::vector<float> maxspectralValley;
d@10 562
d@0 563 maxmfcc.push_back(Max(mfcc1subset));
d@0 564 maxmfcc.push_back(Max(mfcc2subset));
d@0 565 maxmfcc.push_back(Max(mfcc3subset));
d@0 566 maxmfcc.push_back(Max(mfcc4subset));
d@0 567 maxmfcc.push_back(Max(mfcc5subset));
d@0 568 maxmfcc.push_back(Max(mfcc6subset));
d@0 569 maxmfcc.push_back(Max(mfcc7subset));
d@0 570 maxmfcc.push_back(Max(mfcc8subset));
d@0 571 maxmfcc.push_back(Max(mfcc9subset));
d@0 572 maxmfcc.push_back(Max(mfcc10subset));
d@0 573 maxmfcc.push_back(Max(mfcc11subset));
d@0 574 maxmfcc.push_back(Max(mfcc12subset));
d@0 575
d@0 576 maxdeltamfcc.push_back(Max(dmfcc1subset));
d@0 577 maxdeltamfcc.push_back(Max(dmfcc2subset));
d@0 578 maxdeltamfcc.push_back(Max(dmfcc3subset));
d@0 579 maxdeltamfcc.push_back(Max(dmfcc4subset));
d@0 580 maxdeltamfcc.push_back(Max(dmfcc5subset));
d@0 581 maxdeltamfcc.push_back(Max(dmfcc6subset));
d@0 582 maxdeltamfcc.push_back(Max(dmfcc7subset));
d@0 583 maxdeltamfcc.push_back(Max(dmfcc8subset));
d@0 584 maxdeltamfcc.push_back(Max(dmfcc9subset));
d@0 585 maxdeltamfcc.push_back(Max(dmfcc10subset));
d@0 586 maxdeltamfcc.push_back(Max(dmfcc11subset));
d@0 587 maxdeltamfcc.push_back(Max(dmfcc12subset));
d@0 588
d@10 589 maxspectralContrast.push_back(Max(spectralContrast1subset));
d@10 590 maxspectralContrast.push_back(Max(spectralContrast2subset));
d@10 591 maxspectralContrast.push_back(Max(spectralContrast3subset));
d@10 592 maxspectralContrast.push_back(Max(spectralContrast4subset));
d@10 593 maxspectralContrast.push_back(Max(spectralContrast5subset));
d@10 594 maxspectralContrast.push_back(Max(spectralContrast6subset));
d@10 595
d@10 596 maxspectralValley.push_back(Max(spectralValley1subset));
d@10 597 maxspectralValley.push_back(Max(spectralValley2subset));
d@10 598 maxspectralValley.push_back(Max(spectralValley3subset));
d@10 599 maxspectralValley.push_back(Max(spectralValley4subset));
d@10 600 maxspectralValley.push_back(Max(spectralValley5subset));
d@10 601 maxspectralValley.push_back(Max(spectralValley6subset));
d@10 602
d@10 603 obs = ObservationData(Max(rmssubset), Max(peaksubset), Max(crestFactorsubset), Max(zcrsubset), Max(centroidsubset), Max(spreadsubset), Max(skewnesssubset), Max(kurtosissubset), Max(brightnesssubset), Max(rolloff85subset), Max(rolloff95subset), Max(spectralentropysubset), Max(flatnesssubset), Max(spectralcfsubset), Max(spectralfluxsubset), maxmfcc, maxdeltamfcc, maxspectralContrast, maxspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 604 obs.SetLowEnergy(m_ObservationData[0].GetLowEnergy());
d@0 605 m_PooledObservationDataMax.push_back(obs);
d@0 606
d@0 607 std::vector<float> minmfcc;
d@0 608 std::vector<float> mindeltamfcc;
d@10 609 std::vector<float> minspectralContrast;
d@10 610 std::vector<float> minspectralValley;
d@10 611
d@0 612 minmfcc.push_back(Min(mfcc1subset));
d@0 613 minmfcc.push_back(Min(mfcc2subset));
d@0 614 minmfcc.push_back(Min(mfcc3subset));
d@0 615 minmfcc.push_back(Min(mfcc4subset));
d@0 616 minmfcc.push_back(Min(mfcc5subset));
d@0 617 minmfcc.push_back(Min(mfcc6subset));
d@0 618 minmfcc.push_back(Min(mfcc7subset));
d@0 619 minmfcc.push_back(Min(mfcc8subset));
d@0 620 minmfcc.push_back(Min(mfcc9subset));
d@0 621 minmfcc.push_back(Min(mfcc10subset));
d@0 622 minmfcc.push_back(Min(mfcc11subset));
d@0 623 minmfcc.push_back(Min(mfcc12subset));
d@0 624
d@0 625 mindeltamfcc.push_back(Min(dmfcc1subset));
d@0 626 mindeltamfcc.push_back(Min(dmfcc2subset));
d@0 627 mindeltamfcc.push_back(Min(dmfcc3subset));
d@0 628 mindeltamfcc.push_back(Min(dmfcc4subset));
d@0 629 mindeltamfcc.push_back(Min(dmfcc5subset));
d@0 630 mindeltamfcc.push_back(Min(dmfcc6subset));
d@0 631 mindeltamfcc.push_back(Min(dmfcc7subset));
d@0 632 mindeltamfcc.push_back(Min(dmfcc8subset));
d@0 633 mindeltamfcc.push_back(Min(dmfcc9subset));
d@0 634 mindeltamfcc.push_back(Min(dmfcc10subset));
d@0 635 mindeltamfcc.push_back(Min(dmfcc11subset));
d@0 636 mindeltamfcc.push_back(Min(dmfcc12subset));
d@0 637
d@10 638 minspectralContrast.push_back(Min(spectralContrast1subset));
d@10 639 minspectralContrast.push_back(Min(spectralContrast2subset));
d@10 640 minspectralContrast.push_back(Min(spectralContrast3subset));
d@10 641 minspectralContrast.push_back(Min(spectralContrast4subset));
d@10 642 minspectralContrast.push_back(Min(spectralContrast5subset));
d@10 643 minspectralContrast.push_back(Min(spectralContrast6subset));
d@10 644
d@10 645 minspectralValley.push_back(Min(spectralValley1subset));
d@10 646 minspectralValley.push_back(Min(spectralValley2subset));
d@10 647 minspectralValley.push_back(Min(spectralValley3subset));
d@10 648 minspectralValley.push_back(Min(spectralValley4subset));
d@10 649 minspectralValley.push_back(Min(spectralValley5subset));
d@10 650 minspectralValley.push_back(Min(spectralValley6subset));
d@10 651
d@10 652
d@10 653 obs = ObservationData( Min(rmssubset), Min(peaksubset), Min(crestFactorsubset), Min(zcrsubset), Min(centroidsubset), Min(spreadsubset), Min(skewnesssubset), Min(kurtosissubset), Min(brightnesssubset), Min(rolloff85subset), Min(rolloff95subset), Min(spectralentropysubset), Min(flatnesssubset), Min(spectralcfsubset), Min(spectralfluxsubset), minmfcc, mindeltamfcc, minspectralContrast, minspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 654 obs.SetLowEnergy(m_ObservationData[0].GetLowEnergy());
d@0 655 m_PooledObservationDataMin.push_back(obs);
d@0 656
d@0 657 ///////Whole
d@0 658
d@0 659 avgpeak = Average(peak);
d@0 660 avgrms = Average(rms);
d@0 661 avgcrestFactor = Average(crestFactor);
d@0 662 avgzcr = Average(zcr);
d@0 663 avgcentroid = Average(centroid);
d@0 664 avgspread = Average(spread);
d@0 665 avgskewness = Average(skewness);
d@0 666 avgkurtosis = Average(kurtosis);
d@0 667 avgbrightness = Average(brightness);
d@0 668 avgrolloff85 = Average(rolloff85);
d@0 669 avgrolloff95 = Average(rolloff95);
d@0 670 avgspectralentropy = Average(spectralentropy);
d@0 671 avgflatness = Average(flatness);
d@0 672 avgspectralcf = Average(spectralcf);
d@0 673 avgspectralflux = Average(spectralflux);
d@0 674
d@0 675 avgmfcc.clear();
d@0 676 avgmfcc.push_back(Average(mfcc1));
d@0 677 avgmfcc.push_back(Average(mfcc2));
d@0 678 avgmfcc.push_back(Average(mfcc3));
d@0 679 avgmfcc.push_back(Average(mfcc4));
d@0 680 avgmfcc.push_back(Average(mfcc5));
d@0 681 avgmfcc.push_back(Average(mfcc6));
d@0 682 avgmfcc.push_back(Average(mfcc7));
d@0 683 avgmfcc.push_back(Average(mfcc8));
d@0 684 avgmfcc.push_back(Average(mfcc9));
d@0 685 avgmfcc.push_back(Average(mfcc10));
d@0 686 avgmfcc.push_back(Average(mfcc11));
d@0 687 avgmfcc.push_back(Average(mfcc12));
d@0 688
d@0 689 avgdeltamfcc.clear();
d@0 690 avgdeltamfcc.push_back(Average(m_deltamfccs[0]));
d@0 691 avgdeltamfcc.push_back(Average(m_deltamfccs[1]));
d@0 692 avgdeltamfcc.push_back(Average(m_deltamfccs[2]));
d@0 693 avgdeltamfcc.push_back(Average(m_deltamfccs[3]));
d@0 694 avgdeltamfcc.push_back(Average(m_deltamfccs[4]));
d@0 695 avgdeltamfcc.push_back(Average(m_deltamfccs[5]));
d@0 696 avgdeltamfcc.push_back(Average(m_deltamfccs[6]));
d@0 697 avgdeltamfcc.push_back(Average(m_deltamfccs[7]));
d@0 698 avgdeltamfcc.push_back(Average(m_deltamfccs[8]));
d@0 699 avgdeltamfcc.push_back(Average(m_deltamfccs[9]));
d@0 700 avgdeltamfcc.push_back(Average(m_deltamfccs[10]));
d@0 701 avgdeltamfcc.push_back(Average(m_deltamfccs[11]));
d@0 702
d@10 703 avgspectralContrast.clear();
d@10 704 avgspectralContrast.push_back(Average(spectralContrast1));
d@10 705 avgspectralContrast.push_back(Average(spectralContrast2));
d@10 706 avgspectralContrast.push_back(Average(spectralContrast3));
d@10 707 avgspectralContrast.push_back(Average(spectralContrast4));
d@10 708 avgspectralContrast.push_back(Average(spectralContrast5));
d@10 709 avgspectralContrast.push_back(Average(spectralContrast6));
d@10 710
d@10 711 avgspectralValley.clear();
d@10 712 avgspectralValley.push_back(Average(spectralValley1));
d@10 713 avgspectralValley.push_back(Average(spectralValley2));
d@10 714 avgspectralValley.push_back(Average(spectralValley3));
d@10 715 avgspectralValley.push_back(Average(spectralValley4));
d@10 716 avgspectralValley.push_back(Average(spectralValley5));
d@10 717 avgspectralValley.push_back(Average(spectralValley6));
d@10 718
d@13 719 for(size_t i =0; i < m_PooledObservationDataAverage.size(); i++)
d@0 720 {
d@10 721 obs = ObservationData(avgrms, avgpeak, avgcrestFactor, avgzcr, avgcentroid, avgspread, avgskewness, avgkurtosis, avgbrightness, avgrolloff85, avgrolloff95, avgspectralentropy, avgflatness, avgspectralcf, avgspectralflux, avgmfcc, avgdeltamfcc, avgspectralContrast, avgspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 722 obs.SetLowEnergy(m_ObservationData[0].GetLowEnergy());
d@0 723 m_WholeTrackObservationDataAverage.push_back(obs);
d@0 724
d@0 725 stdmfcc.clear();
d@0 726 stdmfcc.push_back(Deviation(mfcc1,avgmfcc[0]));
d@0 727 stdmfcc.push_back(Deviation(mfcc2,avgmfcc[1]));
d@0 728 stdmfcc.push_back(Deviation(mfcc3,avgmfcc[2]));
d@0 729 stdmfcc.push_back(Deviation(mfcc4,avgmfcc[3]));
d@0 730 stdmfcc.push_back(Deviation(mfcc5,avgmfcc[4]));
d@0 731 stdmfcc.push_back(Deviation(mfcc6,avgmfcc[5]));
d@0 732 stdmfcc.push_back(Deviation(mfcc7,avgmfcc[6]));
d@0 733 stdmfcc.push_back(Deviation(mfcc8,avgmfcc[7]));
d@0 734 stdmfcc.push_back(Deviation(mfcc9,avgmfcc[8]));
d@0 735 stdmfcc.push_back(Deviation(mfcc10,avgmfcc[9]));
d@0 736 stdmfcc.push_back(Deviation(mfcc11,avgmfcc[10]));
d@0 737 stdmfcc.push_back(Deviation(mfcc12,avgmfcc[11]));
d@0 738
d@0 739 stddeltamfcc.clear();
d@10 740 stddeltamfcc.push_back(Deviation(m_deltamfccs[0], avgdeltamfcc[0]));
d@10 741 stddeltamfcc.push_back(Deviation(m_deltamfccs[1], avgdeltamfcc[1]));
d@10 742 stddeltamfcc.push_back(Deviation(m_deltamfccs[2], avgdeltamfcc[2]));
d@10 743 stddeltamfcc.push_back(Deviation(m_deltamfccs[3], avgdeltamfcc[3]));
d@10 744 stddeltamfcc.push_back(Deviation(m_deltamfccs[4], avgdeltamfcc[4]));
d@10 745 stddeltamfcc.push_back(Deviation(m_deltamfccs[5], avgdeltamfcc[5]));
d@10 746 stddeltamfcc.push_back(Deviation(m_deltamfccs[6], avgdeltamfcc[6]));
d@10 747 stddeltamfcc.push_back(Deviation(m_deltamfccs[7], avgdeltamfcc[7]));
d@10 748 stddeltamfcc.push_back(Deviation(m_deltamfccs[8], avgdeltamfcc[8]));
d@10 749 stddeltamfcc.push_back(Deviation(m_deltamfccs[9], avgdeltamfcc[9]));
d@10 750 stddeltamfcc.push_back(Deviation(m_deltamfccs[10], avgdeltamfcc[10]));
d@10 751 stddeltamfcc.push_back(Deviation(m_deltamfccs[11], avgdeltamfcc[11]));
d@0 752
d@10 753 stdspectralContrast.clear();
d@10 754 stdspectralContrast.push_back(Deviation(spectralContrast1, avgspectralContrast[0]));
d@10 755 stdspectralContrast.push_back(Deviation(spectralContrast2, avgspectralContrast[1]));
d@10 756 stdspectralContrast.push_back(Deviation(spectralContrast3, avgspectralContrast[2]));
d@10 757 stdspectralContrast.push_back(Deviation(spectralContrast4, avgspectralContrast[3]));
d@10 758 stdspectralContrast.push_back(Deviation(spectralContrast5, avgspectralContrast[4]));
d@10 759 stdspectralContrast.push_back(Deviation(spectralContrast6, avgspectralContrast[5]));
d@10 760
d@10 761 stdspectralValley.clear();
d@10 762 stdspectralValley.push_back(Deviation(spectralValley1, avgspectralValley[0]));
d@10 763 stdspectralValley.push_back(Deviation(spectralValley2, avgspectralValley[1]));
d@10 764 stdspectralValley.push_back(Deviation(spectralValley3, avgspectralValley[2]));
d@10 765 stdspectralValley.push_back(Deviation(spectralValley4, avgspectralValley[3]));
d@10 766 stdspectralValley.push_back(Deviation(spectralValley5, avgspectralValley[4]));
d@10 767 stdspectralValley.push_back(Deviation(spectralValley6, avgspectralValley[5]));
d@10 768
d@10 769 obs = ObservationData(Deviation(rms, avgrms), Deviation(peak, avgpeak), Deviation(crestFactor, avgcrestFactor), Deviation(zcr, avgzcr), Deviation(centroid, avgcentroid), Deviation(spread, avgspread), Deviation(skewness, avgskewness), Deviation(kurtosis, avgkurtosis), Deviation(brightness, avgbrightness), Deviation(rolloff85, avgrolloff85), Deviation(rolloff95, avgrolloff95), Deviation(spectralentropy, avgspectralentropy), Deviation(flatness, avgflatness), Deviation(spectralcf, avgspectralcf), Deviation(spectralflux, avgspectralflux), stdmfcc, stddeltamfcc, stdspectralContrast, stdspectralValley, 0, 0);
d@0 770 obs.SetLowEnergy(0);
d@0 771 m_WholeTrackObservationDataStd.push_back(obs);
d@0 772
d@0 773 maxmfcc.clear();
d@0 774 maxmfcc.push_back(Max(mfcc1));
d@0 775 maxmfcc.push_back(Max(mfcc2));
d@0 776 maxmfcc.push_back(Max(mfcc3));
d@0 777 maxmfcc.push_back(Max(mfcc4));
d@0 778 maxmfcc.push_back(Max(mfcc5));
d@0 779 maxmfcc.push_back(Max(mfcc6));
d@0 780 maxmfcc.push_back(Max(mfcc7));
d@0 781 maxmfcc.push_back(Max(mfcc8));
d@0 782 maxmfcc.push_back(Max(mfcc9));
d@0 783 maxmfcc.push_back(Max(mfcc10));
d@0 784 maxmfcc.push_back(Max(mfcc11));
d@0 785 maxmfcc.push_back(Max(mfcc12));
d@10 786
d@0 787 maxdeltamfcc.clear();
d@0 788 maxdeltamfcc.push_back(Max(m_deltamfccs[0]));
d@0 789 maxdeltamfcc.push_back(Max(m_deltamfccs[1]));
d@0 790 maxdeltamfcc.push_back(Max(m_deltamfccs[2]));
d@0 791 maxdeltamfcc.push_back(Max(m_deltamfccs[3]));
d@0 792 maxdeltamfcc.push_back(Max(m_deltamfccs[4]));
d@0 793 maxdeltamfcc.push_back(Max(m_deltamfccs[5]));
d@0 794 maxdeltamfcc.push_back(Max(m_deltamfccs[6]));
d@0 795 maxdeltamfcc.push_back(Max(m_deltamfccs[7]));
d@0 796 maxdeltamfcc.push_back(Max(m_deltamfccs[8]));
d@0 797 maxdeltamfcc.push_back(Max(m_deltamfccs[9]));
d@0 798 maxdeltamfcc.push_back(Max(m_deltamfccs[10]));
d@0 799 maxdeltamfcc.push_back(Max(m_deltamfccs[11]));
d@0 800
d@12 801 maxspectralContrast.clear();
d@12 802 maxspectralContrast.push_back(Max(spectralContrast1));
d@12 803 maxspectralContrast.push_back(Max(spectralContrast2));
d@12 804 maxspectralContrast.push_back(Max(spectralContrast3));
d@12 805 maxspectralContrast.push_back(Max(spectralContrast4));
d@12 806 maxspectralContrast.push_back(Max(spectralContrast5));
d@12 807 maxspectralContrast.push_back(Max(spectralContrast6));
d@12 808
d@12 809 maxspectralValley.clear();
d@12 810 maxspectralValley.push_back(Max(spectralValley1));
d@12 811 maxspectralValley.push_back(Max(spectralValley2));
d@12 812 maxspectralValley.push_back(Max(spectralValley3));
d@12 813 maxspectralValley.push_back(Max(spectralValley4));
d@12 814 maxspectralValley.push_back(Max(spectralValley5));
d@12 815 maxspectralValley.push_back(Max(spectralValley6));
d@12 816
d@10 817 obs = ObservationData(Max(rms), Max(peak), Max(crestFactor), Max(zcr), Max(centroid), Max(spread), Max(skewness), Max(kurtosis), Max(brightness), Max(rolloff85), Max(rolloff95), Max(spectralentropy), Max(flatness), Max(spectralcf), Max(spectralflux), maxmfcc, maxdeltamfcc, maxspectralContrast, maxspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 818 obs.SetLowEnergy(m_ObservationData[0].GetLowEnergy());
d@0 819 m_WholeTrackObservationDataMax.push_back(obs);
d@0 820
d@0 821 minmfcc.clear();
d@0 822 minmfcc.push_back(Min(mfcc1));
d@0 823 minmfcc.push_back(Min(mfcc2));
d@0 824 minmfcc.push_back(Min(mfcc3));
d@0 825 minmfcc.push_back(Min(mfcc4));
d@0 826 minmfcc.push_back(Min(mfcc5));
d@0 827 minmfcc.push_back(Min(mfcc6));
d@0 828 minmfcc.push_back(Min(mfcc7));
d@0 829 minmfcc.push_back(Min(mfcc8));
d@0 830 minmfcc.push_back(Min(mfcc9));
d@0 831 minmfcc.push_back(Min(mfcc10));
d@0 832 minmfcc.push_back(Min(mfcc11));
d@0 833 minmfcc.push_back(Min(mfcc12));
d@0 834
d@0 835 mindeltamfcc.clear();
d@0 836 mindeltamfcc.push_back(Min(m_deltamfccs[0]));
d@0 837 mindeltamfcc.push_back(Min(m_deltamfccs[1]));
d@0 838 mindeltamfcc.push_back(Min(m_deltamfccs[2]));
d@0 839 mindeltamfcc.push_back(Min(m_deltamfccs[3]));
d@0 840 mindeltamfcc.push_back(Min(m_deltamfccs[4]));
d@0 841 mindeltamfcc.push_back(Min(m_deltamfccs[5]));
d@0 842 mindeltamfcc.push_back(Min(m_deltamfccs[6]));
d@0 843 mindeltamfcc.push_back(Min(m_deltamfccs[7]));
d@0 844 mindeltamfcc.push_back(Min(m_deltamfccs[8]));
d@0 845 mindeltamfcc.push_back(Min(m_deltamfccs[9]));
d@0 846 mindeltamfcc.push_back(Min(m_deltamfccs[10]));
d@0 847 mindeltamfcc.push_back(Min(m_deltamfccs[11]));
d@0 848
d@12 849 minspectralContrast.clear();
d@12 850 minspectralContrast.push_back(Min(spectralContrast1));
d@12 851 minspectralContrast.push_back(Min(spectralContrast2));
d@12 852 minspectralContrast.push_back(Min(spectralContrast3));
d@12 853 minspectralContrast.push_back(Min(spectralContrast4));
d@12 854 minspectralContrast.push_back(Min(spectralContrast5));
d@12 855 minspectralContrast.push_back(Min(spectralContrast6));
d@12 856
d@12 857 minspectralValley.clear();
d@12 858 minspectralValley.push_back(Min(spectralValley1));
d@12 859 minspectralValley.push_back(Min(spectralValley2));
d@12 860 minspectralValley.push_back(Min(spectralValley3));
d@12 861 minspectralValley.push_back(Min(spectralValley4));
d@12 862 minspectralValley.push_back(Min(spectralValley5));
d@12 863 minspectralValley.push_back(Min(spectralValley6));
d@12 864
d@10 865 obs = ObservationData(Min(rms), Min(peak), Min(crestFactor), Min(zcr), Min(centroid), Min(spread), Min(skewness), Min(kurtosis), Min(brightness), Min(rolloff85), Min(rolloff95), Min(spectralentropy), Min(flatness), Min(spectralcf), Min(spectralflux), minmfcc, mindeltamfcc, minspectralContrast, minspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
d@0 866 obs.SetLowEnergy(m_ObservationData[0].GetLowEnergy());
d@0 867 m_WholeTrackObservationDataMin.push_back(obs);
d@0 868 }
d@0 869
d@0 870 }
d@0 871
d@0 872 void FeatureData::ComputeLowEnergyFeature()
d@0 873 {
d@0 874 if(m_ObservationData.size() > 0)
d@0 875 {
d@0 876 float averageRMSForTrack = 0.0;
d@0 877 float sumRMS = 0.0;
d@0 878 int RMSbelowAvgCount = 0;
d@0 879 float lowEnergyValue = 0.0;
d@0 880
d@0 881 //First get average
d@0 882 for(size_t i =0; i < m_ObservationData.size(); i++)
d@0 883 {
d@0 884 sumRMS += m_ObservationData[i].GetRMS();
d@0 885 }
d@0 886
d@0 887 averageRMSForTrack = sumRMS / m_ObservationData.size();
d@0 888
d@0 889 //Count how many frames below average RMS.
d@0 890
d@0 891 //Work out the Low Energy Value
d@0 892 for(size_t i =0; i < m_ObservationData.size(); i++)
d@0 893 {
d@0 894 if(m_ObservationData[i].GetRMS() < averageRMSForTrack)
d@0 895 {
d@0 896 RMSbelowAvgCount++;
d@0 897 }
d@0 898 }
d@0 899
d@0 900 lowEnergyValue = (((float)RMSbelowAvgCount / (float)m_ObservationData.size()) * 100);
d@0 901
d@0 902 //Set the value for each observation
d@0 903 for(size_t i =0; i < m_ObservationData.size(); i++)
d@0 904 {
d@0 905 m_ObservationData[i].SetLowEnergy(lowEnergyValue);
d@0 906 }
d@0 907 }
d@0 908
d@0 909 }
d@0 910
d@0 911 void FeatureData::ComputeDeltaMFCCs()
d@0 912 {
d@0 913 if(m_ObservationData.size() > 0)
d@0 914 {
d@0 915 std::vector<float> dmfcc1;
d@0 916 std::vector<float> dmfcc2;
d@0 917 std::vector<float> dmfcc3;
d@0 918 std::vector<float> dmfcc4;
d@0 919 std::vector<float> dmfcc5;
d@0 920 std::vector<float> dmfcc6;
d@0 921 std::vector<float> dmfcc7;
d@0 922 std::vector<float> dmfcc8;
d@0 923 std::vector<float> dmfcc9;
d@0 924 std::vector<float> dmfcc10;
d@0 925 std::vector<float> dmfcc11;
d@0 926 std::vector<float> dmfcc12;
d@0 927
d@0 928 dmfcc1.push_back(0.0f);
d@0 929 dmfcc1.push_back(0.0f);
d@0 930 dmfcc2.push_back(0.0f);
d@0 931 dmfcc2.push_back(0.0f);
d@0 932 dmfcc3.push_back(0.0f);
d@0 933 dmfcc3.push_back(0.0f);
d@0 934 dmfcc4.push_back(0.0f);
d@0 935 dmfcc4.push_back(0.0f);
d@0 936 dmfcc5.push_back(0.0f);
d@0 937 dmfcc5.push_back(0.0f);
d@0 938 dmfcc6.push_back(0.0f);
d@0 939 dmfcc6.push_back(0.0f);
d@0 940 dmfcc7.push_back(0.0f);
d@0 941 dmfcc7.push_back(0.0f);
d@0 942 dmfcc8.push_back(0.0f);
d@0 943 dmfcc8.push_back(0.0f);
d@0 944 dmfcc9.push_back(0.0f);
d@0 945 dmfcc9.push_back(0.0f);
d@0 946 dmfcc10.push_back(0.0f);
d@0 947 dmfcc10.push_back(0.0f);
d@0 948 dmfcc11.push_back(0.0f);
d@0 949 dmfcc11.push_back(0.0f);
d@0 950 dmfcc12.push_back(0.0f);
d@0 951 dmfcc12.push_back(0.0f);
d@0 952
d@0 953
d@0 954 int indexminusone = -1;
d@0 955 int indexplusone = 1;
d@0 956 int indexminustwo = -2;
d@0 957 int indexplustwo = 2;
d@0 958 //Need to start two samples ahead to gather the entire samples and not have spurious results from the MFCC 0 value
d@0 959
d@0 960 for (size_t index = 2; index < (m_ObservationData.size() - 2); index++)
d@0 961 {
d@0 962 dmfcc1.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[0] - m_ObservationData[index + indexplusone].GetMFCCs()[0]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[0] - m_ObservationData[index + indexplustwo].GetMFCCs()[0]));
d@0 963 dmfcc2.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[1] - m_ObservationData[index + indexplusone].GetMFCCs()[1]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[1] - m_ObservationData[index + indexplustwo].GetMFCCs()[1]));
d@0 964 dmfcc3.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[2] - m_ObservationData[index + indexplusone].GetMFCCs()[2]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[2] - m_ObservationData[index + indexplustwo].GetMFCCs()[2]));
d@0 965 dmfcc4.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[3] - m_ObservationData[index + indexplusone].GetMFCCs()[3]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[3] - m_ObservationData[index + indexplustwo].GetMFCCs()[3]));
d@0 966 dmfcc5.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[4] - m_ObservationData[index + indexplusone].GetMFCCs()[4]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[4] - m_ObservationData[index + indexplustwo].GetMFCCs()[4]));
d@0 967 dmfcc6.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[5] - m_ObservationData[index + indexplusone].GetMFCCs()[5]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[5] - m_ObservationData[index + indexplustwo].GetMFCCs()[5]));
d@0 968 dmfcc7.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[6] - m_ObservationData[index + indexplusone].GetMFCCs()[6]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[6] - m_ObservationData[index + indexplustwo].GetMFCCs()[6]));
d@0 969 dmfcc8.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[7] - m_ObservationData[index + indexplusone].GetMFCCs()[7]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[7] - m_ObservationData[index + indexplustwo].GetMFCCs()[7]));
d@0 970 dmfcc9.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[8] - m_ObservationData[index + indexplusone].GetMFCCs()[8]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[8] - m_ObservationData[index + indexplustwo].GetMFCCs()[8]));
d@0 971 dmfcc10.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[9] - m_ObservationData[index + indexplusone].GetMFCCs()[9]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[9] - m_ObservationData[index + indexplustwo].GetMFCCs()[9]));
d@0 972 dmfcc11.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[10] - m_ObservationData[index + indexplusone].GetMFCCs()[10]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[10] - m_ObservationData[index + indexplustwo].GetMFCCs()[10]));
d@0 973 dmfcc12.push_back(0.1f * (m_ObservationData[index + indexminusone].GetMFCCs()[11] - m_ObservationData[index + indexplusone].GetMFCCs()[11]) + 0.2f * (m_ObservationData[index + indexminustwo].GetMFCCs()[11] - m_ObservationData[index + indexplustwo].GetMFCCs()[11]));
d@0 974 }
d@0 975
d@0 976 dmfcc1.push_back(0.0f);
d@0 977 dmfcc1.push_back(0.0f);
d@0 978 dmfcc2.push_back(0.0f);
d@0 979 dmfcc2.push_back(0.0f);
d@0 980 dmfcc3.push_back(0.0f);
d@0 981 dmfcc3.push_back(0.0f);
d@0 982 dmfcc4.push_back(0.0f);
d@0 983 dmfcc4.push_back(0.0f);
d@0 984 dmfcc5.push_back(0.0f);
d@0 985 dmfcc5.push_back(0.0f);
d@0 986 dmfcc6.push_back(0.0f);
d@0 987 dmfcc6.push_back(0.0f);
d@0 988 dmfcc7.push_back(0.0f);
d@0 989 dmfcc7.push_back(0.0f);
d@0 990 dmfcc8.push_back(0.0f);
d@0 991 dmfcc8.push_back(0.0f);
d@0 992 dmfcc9.push_back(0.0f);
d@0 993 dmfcc9.push_back(0.0f);
d@0 994 dmfcc10.push_back(0.0f);
d@0 995 dmfcc10.push_back(0.0f);
d@0 996 dmfcc11.push_back(0.0f);
d@0 997 dmfcc11.push_back(0.0f);
d@0 998 dmfcc12.push_back(0.0f);
d@0 999 dmfcc12.push_back(0.0f);
d@0 1000
d@0 1001 m_deltamfccs.push_back(dmfcc1);
d@0 1002 m_deltamfccs.push_back(dmfcc2);
d@0 1003 m_deltamfccs.push_back(dmfcc3);
d@0 1004 m_deltamfccs.push_back(dmfcc4);
d@0 1005 m_deltamfccs.push_back(dmfcc5);
d@0 1006 m_deltamfccs.push_back(dmfcc6);
d@0 1007 m_deltamfccs.push_back(dmfcc7);
d@0 1008 m_deltamfccs.push_back(dmfcc8);
d@0 1009 m_deltamfccs.push_back(dmfcc9);
d@0 1010 m_deltamfccs.push_back(dmfcc10);
d@0 1011 m_deltamfccs.push_back(dmfcc11);
d@0 1012 m_deltamfccs.push_back(dmfcc12);
d@0 1013 }
d@0 1014 }
d@0 1015
d@0 1016 float FeatureData::Average(std::vector<float> v)
d@0 1017 {
d@0 1018 float sum = 0;
d@0 1019
d@0 1020 for(size_t i = 0; i < v.size(); i++)
d@0 1021 {
d@0 1022 sum += v[i];
d@0 1023 }
d@0 1024
d@9 1025 return sum / static_cast<float>(v.size());
d@0 1026 }
d@0 1027
d@0 1028 float FeatureData::Deviation(std::vector<float> v, float ave)
d@0 1029 {
d@0 1030 float E = 0;
d@0 1031
d@0 1032 for(size_t i = 0; i < v.size(); i++)
d@0 1033 {
d@0 1034 E += (v[i] - ave) * (v[i] - ave);
d@0 1035 }
d@0 1036
d@9 1037 return sqrt((1 / static_cast<float>(v.size())) * E);
d@0 1038 }
d@0 1039
d@0 1040 float FeatureData::Max(std::vector<float> v)
d@0 1041 {
d@0 1042
d@0 1043 float max = std::numeric_limits<float>::lowest();
d@0 1044
d@0 1045 for(size_t i = 0; i < v.size(); i++)
d@0 1046 {
d@0 1047 if (v[i] > max)
d@0 1048 max = v[i];
d@0 1049 }
d@0 1050
d@0 1051 return max;
d@0 1052 }
d@0 1053
d@0 1054 float FeatureData::Min(std::vector<float> v)
d@0 1055 {
d@0 1056 float min = std::numeric_limits<float>::max();
d@0 1057
d@0 1058 for(size_t i = 0; i < v.size(); i++)
d@0 1059 {
d@0 1060 if (v[i] < min)
d@0 1061 min = v[i];
d@0 1062 }
d@0 1063
d@0 1064 return min;
d@0 1065 }