MFCC

riscv_status riscv_mfcc_init_f32(riscv_mfcc_instance_f32 *S, uint32_t fftLen, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float32_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float32_t *filterCoefs, const float32_t *windowCoefs)
MFCC_INIT_F32 (32)
MFCC_INIT_F32 (64)
MFCC_INIT_F32 (128)
MFCC_INIT_F32 (256)
MFCC_INIT_F32 (512)
MFCC_INIT_F32 (1024)
MFCC_INIT_F32 (2048)
MFCC_INIT_F32 (4096)
MFCC_INIT_F32(LEN)
group MFCC

MFCC Transform.

There are separate functions for floating-point, Q15, and Q31 data types.

Defines

MFCC_INIT_F32(LEN)

Functions

riscv_status riscv_mfcc_init_f32(riscv_mfcc_instance_f32 *S, uint32_t fftLen, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float32_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float32_t *filterCoefs, const float32_t *windowCoefs)

Generic initialization of the MFCC F32 instance structure.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

This function should be used only if you don’t know the FFT sizes that you’ll need at build time. The use of this function will prevent the linker from removing the FFT tables that are not needed and the library code size will be bigger than needed.

If you use NMSIS-DSP as a static library, and if you know the MFCC sizes that you need at build time, then it is better to use the initialization functions defined for each MFCC size.

Parameters
  • S[out] points to the mfcc instance structure

  • fftLen[in] fft length

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status

MFCC_INIT_F32 (32)

Initialization of the MFCC F32 instance structure for 32 samples MFCC.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

Parameters
  • S[out] points to the mfcc instance structure

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status

MFCC_INIT_F32 (64)

Initialization of the MFCC F32 instance structure for 64 samples MFCC.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

Parameters
  • S[out] points to the mfcc instance structure

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status

MFCC_INIT_F32 (128)

Initialization of the MFCC F32 instance structure for 128 samples MFCC.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

Parameters
  • S[out] points to the mfcc instance structure

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status

MFCC_INIT_F32 (256)

Initialization of the MFCC F32 instance structure for 256 samples MFCC.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

Parameters
  • S[out] points to the mfcc instance structure

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status

MFCC_INIT_F32 (512)

Initialization of the MFCC F32 instance structure for 512 samples MFCC.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

Parameters
  • S[out] points to the mfcc instance structure

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status

MFCC_INIT_F32 (1024)

Initialization of the MFCC F32 instance structure for 1024 samples MFCC.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

Parameters
  • S[out] points to the mfcc instance structure

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status

MFCC_INIT_F32 (2048)

Initialization of the MFCC F32 instance structure for 2048 samples MFCC.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

Parameters
  • S[out] points to the mfcc instance structure

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status

MFCC_INIT_F32 (4096)

Initialization of the MFCC F32 instance structure for 4096 samples MFCC.

window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.

Description

The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.

The folder Scripts is containing a Python script which can be used to generate the filter, dct and window arrays.

Parameters
  • S[out] points to the mfcc instance structure

  • nbMelFilters[in] number of Mel filters

  • nbDctOutputs[in] number of Dct outputs

  • dctCoefs[in] points to an array of DCT coefficients

  • filterPos[in] points of the array of filter positions

  • filterLengths[in] points to the array of filter lengths

  • filterCoefs[in] points to the array of filter coefficients

  • windowCoefs[in] points to the array of window coefficients

Returns

error status