MFCC class

Class to extract MFCC features from a signal.

There are 2 ways to use this class:

  • Use the static method mfcc() to extract features from a signal.
  • Intantiate MFCC to process frames on the go with processFrame() or processFrames().

MFCC are generated on each windows by:

  1. (Optional) Aplying pre-Emphasis
  2. Computing Spectrum
  3. Applying triangular filter in the MEL domain.
  4. Computing log for each band
  5. Appying Discrete Cosinus Transform
  6. (Optional) Replace first value by the window log-Energy.

Constructors

MFCC(int sampleRate, { int fftSize, { int numFilters, { int numCoefs, { bool energy: true, double preEmphasis: 0.97 })

Properties

hashCode → int
The hash code for this object. [...]
read-only, inherited
runtimeType → Type
A representation of the runtime type of the object.
read-only, inherited

Methods

process_frame(List<double> frame) → List<double>
Returns the MFCC values for the given frame
process_frames(List<List<num>> frames) → List<List<double>>
Returns the MFCC values of a list of frames
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
toString() → String
Returns a string representation of this object.
inherited

Operators

operator ==(dynamic other) → bool
The equality operator. [...]
inherited

Static Methods

dct(List<double> x, bool norm) → List<double>
Returns the discrete cosinus transform. [...]
filterbanks(int samplerate int num_filt int n_fft) → List<List<double>>
Returns the mel filters [...]
mel_coefs(List<double> power_spec, List<List<double>> filters) → List<double>
Maps the power spectrum over the mel filters to obtains a condensed spectrogram on the mel scale.
mfccFeats(List<num> signal, int sampleRate, { int windowLength, { int windowStride, { int fftSize, { int numFilters, { int numCoefs, { bool energy: true, double preEmphasis: 0.97 }) → List<List<double>>
Generates MFCC features from a signal. [...]
power_spectrum(List<double> frame, dynamic fft_size) → List<double>
Returns the power spectrum of a given frame.
preEmphasis(List<num> signal, double emphasisFactor, { num lastValue: 0.0 }) → List<double>
splitSignal(List<num> signal, int windowLength int windowStride) → List<List<num>>