d@0
|
1 /*
|
d@0
|
2 ==============================================================================
|
d@0
|
3
|
d@0
|
4 FeatureData.h
|
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 #ifndef FEATUREDATA_H_INCLUDED
|
d@0
|
12 #define FEATUREDATA_H_INCLUDED
|
d@0
|
13
|
d@0
|
14 #include "ObservationData.h"
|
d@0
|
15 #include <string>
|
d@0
|
16 #include <vector>
|
d@0
|
17
|
d@0
|
18 class FeatureData
|
d@0
|
19 {
|
d@0
|
20 public:
|
d@0
|
21 FeatureData();
|
d@0
|
22 ~FeatureData();
|
d@0
|
23 FeatureData(std::vector<ObservationData> observationData, std::string label, std::string fileName, float sampleRate, int windowSize, float lengthOfAudioClip , float poolingTimeFactor)
|
d@0
|
24 {
|
d@0
|
25 m_ObservationData = observationData;
|
d@0
|
26 m_Label = label;
|
d@0
|
27 m_FileName = fileName;
|
d@0
|
28 m_SampleRate = sampleRate;
|
d@0
|
29 m_LengthOfAudioClip = lengthOfAudioClip;
|
d@0
|
30 m_WindowSize = windowSize;
|
d@0
|
31 m_poolingTimeFactor = poolingTimeFactor;
|
d@0
|
32
|
d@0
|
33 ComputeLowEnergyFeature();
|
d@0
|
34 ComputeDeltaMFCCs();
|
d@0
|
35
|
d@0
|
36 //Pool the Data
|
d@0
|
37 PoolData(m_poolingTimeFactor);
|
d@0
|
38 };
|
d@0
|
39
|
d@0
|
40 std::vector<ObservationData> GetObservationData(){return m_ObservationData;}
|
d@0
|
41
|
d@0
|
42 std::vector<ObservationData> GetPooldedObservationDataAverage(){return m_PooledObservationDataAverage;}
|
d@0
|
43 std::vector<ObservationData> GetWholeTrackObservationDataAverage(){return m_WholeTrackObservationDataAverage;}
|
d@0
|
44
|
d@0
|
45 std::vector<ObservationData> GetPooldedObservationDataStd(){return m_PooledObservationDataStd;}
|
d@0
|
46 std::vector<ObservationData> GetWholeTrackObservationDataStd(){return m_WholeTrackObservationDataStd;}
|
d@0
|
47
|
d@0
|
48 std::vector<ObservationData> GetPooldedObservationDataMax(){return m_PooledObservationDataMax;}
|
d@0
|
49 std::vector<ObservationData> GetWholeTrackObservationDataMax(){return m_WholeTrackObservationDataMax;}
|
d@0
|
50
|
d@0
|
51 std::vector<ObservationData> GetPooldedObservationDataMin(){return m_PooledObservationDataMin;}
|
d@0
|
52 std::vector<ObservationData> GetWholeTrackObservationDataMin(){return m_WholeTrackObservationDataMin;}
|
d@0
|
53
|
d@0
|
54 std::string GetLabel(){return m_Label;}
|
d@0
|
55 float GetPoolingTimeFactor(){return m_poolingTimeFactor;}
|
d@0
|
56
|
d@0
|
57
|
d@0
|
58 private:
|
d@0
|
59 void ComputeLowEnergyFeature();
|
d@0
|
60 void ComputeDeltaMFCCs();
|
d@0
|
61 void PoolData(float timefactor);
|
d@0
|
62
|
d@0
|
63 float Average(std::vector<float> v);
|
d@0
|
64 float Deviation(std::vector<float> v, float ave);
|
d@0
|
65 float Max(std::vector<float> v);
|
d@0
|
66 float Min(std::vector<float> v);
|
d@0
|
67
|
d@0
|
68 std::vector<ObservationData> m_ObservationData;
|
d@0
|
69
|
d@0
|
70 std::vector<ObservationData> m_PooledObservationDataAverage;
|
d@0
|
71 std::vector<ObservationData> m_WholeTrackObservationDataAverage;
|
d@0
|
72
|
d@0
|
73 std::vector<ObservationData> m_PooledObservationDataStd;
|
d@0
|
74 std::vector<ObservationData> m_WholeTrackObservationDataStd;
|
d@0
|
75
|
d@0
|
76 std::vector<ObservationData> m_PooledObservationDataMax;
|
d@0
|
77 std::vector<ObservationData> m_WholeTrackObservationDataMax;
|
d@0
|
78
|
d@0
|
79 std::vector<ObservationData> m_PooledObservationDataMin;
|
d@0
|
80 std::vector<ObservationData> m_WholeTrackObservationDataMin;
|
d@0
|
81
|
d@0
|
82 std::string m_Label;
|
d@0
|
83 std::string m_FileName;
|
d@0
|
84
|
d@0
|
85 float m_SampleRate;
|
d@0
|
86 float m_LengthOfAudioClip;
|
d@0
|
87
|
d@0
|
88 int m_WindowSize;
|
d@0
|
89 float m_poolingTimeFactor;
|
d@0
|
90
|
d@0
|
91 std::vector<std::vector<float>> m_deltamfccs;
|
d@0
|
92 };
|
d@0
|
93
|
d@0
|
94
|
d@0
|
95
|
d@0
|
96 #endif // FEATUREDATA_H_INCLUDED
|