aubio: spectral/mfcc.h File Reference

aubio 0.4.9

Typedefs | Functions
mfcc.h File Reference

Go to the source code of this file.

## Typedefs
typedef struct _aubio_mfcc_t | aubio_mfcc_t
| mfcc object

## Functions
aubio_mfcc_t * | new_aubio_mfcc (uint_t buf_size, uint_t n_filters, uint_t n_coeffs, uint_t samplerate)
| create mfcc object More...
void | del_aubio_mfcc (aubio_mfcc_t *mf)
| delete mfcc object More...
void | aubio_mfcc_do (aubio_mfcc_t *mf, const cvec_t *in, fvec_t *out)
| mfcc object processing More...
uint_t | aubio_mfcc_set_power (aubio_mfcc_t *mf, smpl_t power)
| set power parameter More...
smpl_t | aubio_mfcc_get_power (aubio_mfcc_t *mf)
| get power parameter More...
uint_t | aubio_mfcc_set_scale (aubio_mfcc_t *mf, smpl_t scale)
| set scaling parameter More...
smpl_t | aubio_mfcc_get_scale (aubio_mfcc_t *mf)
| get scaling parameter More...
uint_t | aubio_mfcc_set_mel_coeffs (aubio_mfcc_t *mf, smpl_t fmin, smpl_t fmax)
| Mel filterbank initialization. More...
uint_t | aubio_mfcc_set_mel_coeffs_htk (aubio_mfcc_t *mf, smpl_t fmin, smpl_t fmax)
| Mel filterbank initialization. More...
uint_t | aubio_mfcc_set_mel_coeffs_slaney (aubio_mfcc_t *mf)
| Mel filterbank initialization (Auditory Toolbox's parameters) More...

## Detailed Description

Mel-Frequency Cepstrum Coefficients object

This object computes MFCC coefficients on an input cvec_t.

The implementation follows the specifications established by Malcolm Slaney in its Auditory Toolbox, available online at the following address (see file mfcc.m):

https://engineering.purdue.edu/~malcolm/interval/1998-010/

Definition in file mfcc.h.

## Function Documentation

## ◆ aubio_mfcc_do()

void aubio_mfcc_do | ( | aubio_mfcc_t * | mf,
|  | const cvec_t * | in,
|  | fvec_t * | out
| ) |  |

mfcc object processing

Parameters

  mf | mfcc object as returned by new_aubio_mfcc
  in | input spectrum (buf_size long)
  out | output mel coefficients buffer (n_coeffs long)

Examples
  spectral/test-mfcc.c.

## ◆ aubio_mfcc_get_power()

smpl_t aubio_mfcc_get_power | ( | aubio_mfcc_t * | mf | ) |

get power parameter

Parameters

  mf | mfcc object, as returned by new_aubio_mfcc()

Returns
  current power parameter. Defaults to `1`.

See aubio_filterbank_get_power().

## ◆ aubio_mfcc_get_scale()

smpl_t aubio_mfcc_get_scale | ( | aubio_mfcc_t * | mf | ) |

get scaling parameter

Parameters

  mf | mfcc object, as returned by new_aubio_mfcc()

Returns
  current scaling parameter. Defaults to `1`.

## ◆ aubio_mfcc_set_mel_coeffs()

uint_t aubio_mfcc_set_mel_coeffs | ( | aubio_mfcc_t * | mf,
|  | smpl_t | fmin,
|  | smpl_t | fmax
| ) |  |

Mel filterbank initialization.

Parameters

  mf | mfcc object
  fmin | start frequency, in Hz
  fmax | end frequency, in Hz

The filterbank will be initialized with bands linearly spaced in the mel scale, from `fmin` to `fmax`.

## See also

aubio_filterbank_set_mel_coeffs()

## ◆ aubio_mfcc_set_mel_coeffs_htk()

uint_t aubio_mfcc_set_mel_coeffs_htk | ( | aubio_mfcc_t * | mf,
|  | smpl_t | fmin,
|  | smpl_t | fmax
| ) |  |

Mel filterbank initialization.

Parameters

  mf | mfcc object
  fmin | start frequency, in Hz
  fmax | end frequency, in Hz

The bank of filters will be initalized to to cover linearly spaced bands in the Htk mel scale, from `fmin` to `fmax`.

## See also

aubio_filterbank_set_mel_coeffs_htk()

## ◆ aubio_mfcc_set_mel_coeffs_slaney()

uint_t aubio_mfcc_set_mel_coeffs_slaney | ( | aubio_mfcc_t * | mf | ) |

Mel filterbank initialization (Auditory Toolbox's parameters)

Parameters

  mf | mfcc object

The filter coefficients are built to match exactly Malcolm Slaney's Auditory Toolbox implementation. The number of filters should be 40.

This is the default filterbank when `mf` was created with `n_filters = 40`.

## See also

aubio_filterbank_set_mel_coeffs_slaney()

## ◆ aubio_mfcc_set_power()

uint_t aubio_mfcc_set_power | ( | aubio_mfcc_t * | mf,
|  | smpl_t | power
| ) |  |

set power parameter

Parameters

  mf | mfcc object, as returned by new_aubio_mfcc()
  power | Raise norm of the input spectrum norm to this power before computing filterbank. Defaults to `1`.

See aubio_filterbank_set_power().

## ◆ aubio_mfcc_set_scale()

uint_t aubio_mfcc_set_scale | ( | aubio_mfcc_t * | mf,
|  | smpl_t | scale
| ) |  |

set scaling parameter

Parameters

  mf | mfcc object, as returned by new_aubio_mfcc()
  scale | Scaling value to apply.

Scales the output of the filterbank after taking its logarithm and before computing the DCT. Defaults to `1`.

## ◆ del_aubio_mfcc()

void del_aubio_mfcc | ( | aubio_mfcc_t * | mf | ) |

delete mfcc object

Parameters

  mf | mfcc object as returned by new_aubio_mfcc

Examples
  spectral/test-mfcc.c.

## ◆ new_aubio_mfcc()

aubio_mfcc_t* new_aubio_mfcc | ( | uint_t | buf_size,
|  | uint_t | n_filters,
|  | uint_t | n_coeffs,
|  | uint_t | samplerate
| ) |  |

create mfcc object

Parameters

  buf_size | size of analysis buffer (and length the FFT transform)
  samplerate | audio sampling rate
  n_coeffs | number of desired coefficients
  n_filters | number of desired filters

Examples
  spectral/test-mfcc.c.