Mercurial > hg > batch-feature-extraction-tool
view Source/AudioSourceFeatureExtractor.h @ 7:c6f38cba266d
Cleaned up redundant code
author | Geogaddi\David <d.m.ronan@qmul.ac.uk> |
---|---|
date | Wed, 22 Jul 2015 15:14:58 +0100 |
parents | 345acbd06029 |
children | fdc592312a96 |
line wrap: on
line source
/* ============================================================================== AudioSourceFeatureExtractor.h Created: 11 Aug 2014 10:41:02am Author: david.ronan ============================================================================== */ #ifndef AUDIOSOURCEFEATUREXTRACTOR_H_INCLUDED #define AUDIOSOURCEFEATUREXTRACTOR_H_INCLUDED #include <vector> #include "FFT.h" #include "MFCC.h" #include "ObservationData.h" #define MAGNITUDESIZE 512 #define FFTSIZE 1024 #define PI 3.14159265359 #include <memory> class AudioSourceFeatureExtractor { public: AudioSourceFeatureExtractor(); ~AudioSourceFeatureExtractor(); void Initialise ( float fSampleRate); std::vector<ObservationData> Process (const float* data, size_t numSamples); void Finalize(); private: //Computes the magnitude of FFT void VectorDistance(std::vector<float> vIn1, int stride1, std::vector<float>, int stride2, std::vector<float> &vOut, int strideOut, size_t nElements); void SpectralFeatures(std::vector<float> &magnitude, std::vector<float> &previousmagnitude, size_t windowSize, float ¢roid, float &spread, float &skew, float &kurtosis, float &brightness, float &rolloff95, float &rolloff85, float &spectralentropy, float &flatness, float &spectralcf, float &spectralflux); void MFCCs(std::vector<float> &magnitude, size_t windowSize, float sampleRate); float EstimatePerdiodicity(float* data, size_t numSamples); void EnvelopeCurve(float* data, float* &out, size_t dataLen, float sampleRate); void XCorr(std::vector<float> *&output, float* input1, float* input2, size_t &outputlen, size_t input1len, size_t maxLag); float EntropyOfEnergy(float* data, size_t numSamples); float Log2(float n); int Sign(float x); std::vector<float> LinSpace(float min, float max, int n); std::vector<float> LogSpace(float min, float max, int n); //void Normalise(float* data, float* &out, size_t len); //void ConvolveFunction(float* &z, float *x, float *y, size_t &lenz, size_t lenx, size_t leny); //void DownSampler(float* data, float* &out, size_t lenIn, size_t &lenOut, float currentSampleRate, float futureSampleRate); //void PDF_getResampleKrnl(std::vector<float> freqVec, float fsProc, int nfft, int nBin, std::vector<float> &outLogFreqVec, std::vector<std::vector<float>> &outKrnl); size_t m_iWriteIdx; size_t m_iFlucIdx; float m_fSampleRate; std::unique_ptr<FFTW> m_fft; std::vector<float> m_OutReal; std::vector<float> m_OutImag; MFCC m_MFCC; std::vector<float> m_fInputBuffer; std::vector<float> m_fMagnitudeSpectrum; std::vector<float> m_fPreviousMagnitudeSpectrum; std::vector<float> m_fFreqBins; }; #endif // AUDIOSOURCEFEATUREXTRACTOR_H_INCLUDED