int32 fe_mfcc_dct3(fe_t * fe, const mfcc_t * fr_cep, mfcc_t * fr_spec) { #ifdef FIXED_POINT fe_dct3(fe, fr_cep, fr_spec); #else /* ! FIXED_POINT */ powspec_t *powspec; int32 i; powspec = ckd_malloc(fe->mel_fb->num_filters * sizeof(powspec_t)); fe_dct3(fe, fr_cep, powspec); for (i = 0; i < fe->mel_fb->num_filters; ++i) fr_spec[i] = (mfcc_t) powspec[i]; ckd_free(powspec); #endif /* ! FIXED_POINT */ return 0; }
int32 fe_mfcc_dct3(fe_t * FE, const mfcc_t * fr_cep, mfcc_t * fr_spec) { #ifdef FIXED_POINT fe_dct3(FE, fr_cep, fr_spec); #else /* ! FIXED_POINT */ powspec_t *powspec; int32 i; powspec = malloc(FE->MEL_FB->num_filters * sizeof(powspec_t)); fe_dct3(FE, fr_cep, powspec); for (i = 0; i < FE->MEL_FB->num_filters; ++i) fr_spec[i] = (mfcc_t) powspec[i]; free(powspec); #endif /* ! FIXED_POINT */ return 0; }