c@246: #ifndef _LIB_MFCC_H c@246: #define _LIB_MFCC_H c@246: c@246: #define MFCC 6 c@246: c@246: typedef struct mfcc_t { c@246: c@246: /* Filter bank parameters */ c@246: double lowestFrequency; c@246: int linearFilters; c@246: double linearSpacing; c@246: int logFilters; c@246: double logSpacing; c@246: c@246: /* FFT length */ c@246: int fftSize; c@246: c@246: /* Analysis window length*/ c@246: int windowSize; c@246: c@246: int totalFilters; c@246: c@246: /* Misc. */ c@246: int samplingRate; c@246: int nceps; c@246: c@246: /* MFCC vector */ c@246: double *ceps; c@246: c@246: double **mfccDCTMatrix; c@246: double **mfccFilterWeights; c@246: c@246: /* The analysis window */ c@246: double *window; c@246: c@246: /* For the FFT */ c@246: double* imagIn; // always zero c@246: double* realOut; c@246: double* imagOut; c@246: c@246: /* Set if user want C0 */ c@246: int WANT_C0; c@246: c@246: } mfcc_t; c@246: c@246: extern mfcc_t* init_mfcc(int fftSize, int nceps , int samplingRate, int WANT_C0); c@246: extern int do_mfcc(mfcc_t* mfcc_p, double* frame, int length); c@246: extern void close_mfcc(mfcc_t* mfcc_p); c@246: c@246: #endif c@246: