Skip to content

feature transforms

Module: Transform Functions

More...

Functions

Name
void plp_mfcc_f32(const plp_fft_instance_f32 * SFFT, const plp_fft_instance_f32 * SDCT, const Complex_type_f32 * pShift, const plp_triangular_filter_f32 * filterBank, const float32_t * window, const uint8_t * orthoNorm, const float32_t restrict pSrc, float32_t restrict pDst)
MFCC on real input data.
void plp_mfcc_f32_parallel(const plp_fft_instance_f32 * SFFT, const plp_fft_instance_f32 * SDCT, const Complex_type_f32 * pShift, const plp_triangular_filter_f32 * filterBank, const float32_t * window, const uint8_t * orthoNorm, const float32_t restrict pSrc, const uint32_t nPE, float32_t restrict pDst)
MFCC on real input data.

Detailed Description

This module contains the code to perform feature transforms.

Functions Documentation

function plp_mfcc_f32

void plp_mfcc_f32(
    const plp_fft_instance_f32 * SFFT,
    const plp_fft_instance_f32 * SDCT,
    const Complex_type_f32 * pShift,
    const plp_triangular_filter_f32 * filterBank,
    const float32_t * window,
    const uint8_t * orthoNorm,
    const float32_t *__restrict__ pSrc,
    float32_t *__restrict__ pDst
)

MFCC on real input data.

Parameters:

  • SFFT points to an instance of the floating-point FFT structure for the initial FFT (with FFTLength = n_fft). bitReverseFlag should be on.
  • SDCT points to an instance of the floating-point FFT structure for the DCT (with FFTLength = n_mels). bitReverseFlag should be on.
  • pShift points to twiddle coefficient table with FFTLength = 4*n_mels. Only first quarter necessary.
  • filterBank points to plp_triangular_filter_f32 instance with nFilters = n_mels.
  • window vector to use for windowing
  • orthoNorm whether to use dct orthonormalisation or not
  • pSrc points to the input buffer (real data, size n_fft)
  • pDst points to the output buffer of length at least 3*n_fft. pSrc and pDst must not overlap, the calculation can not be done in place. MFCCs are returned in the first n_mels spots.

Return: none

function plp_mfcc_f32_parallel

void plp_mfcc_f32_parallel(
    const plp_fft_instance_f32 * SFFT,
    const plp_fft_instance_f32 * SDCT,
    const Complex_type_f32 * pShift,
    const plp_triangular_filter_f32 * filterBank,
    const float32_t * window,
    const uint8_t * orthoNorm,
    const float32_t *__restrict__ pSrc,
    const uint32_t nPE,
    float32_t *__restrict__ pDst
)

MFCC on real input data.

Parameters:

  • SFFT points to an instance of the floating-point FFT structure for the initial FFT (with FFTLength = n_fft). bitReverseFlag should be on.
  • SDCT points to an instance of the floating-point FFT structure for the DCT (with FFTLength = n_mels). bitReverseFlag should be on.
  • pShift points to twiddle coefficient table with FFTLength = 4*n_mels. Only first quarter necessary.
  • filterBank points to plp_triangular_filter_f32 instance with nFilters = n_mels.
  • window vector to use for windowing
  • orthoNorm whether to use dct orthonormalisation or not
  • pSrc points to the input buffer (real data, size n_fft)
  • nPE number of parallel processing units
  • pDst points to the output buffer of length at least 3*n_fft. pSrc and pDst must not overlap, the calculation can not be done in place. MFCCs are returned in the first n_mels spots.

Return: none


Updated on 2023-03-01 at 16:16:32 +0000