process_frame method

List<double> process_frame (
  1. List<double> frame
)

Returns the MFCC values for the given frame

Implementation

List<double> process_frame(List<double> frame){
  if (_useEmphasis) {
    var v = frame.last;
    frame = preEmphasis(frame, _emphasis, lastValue: _lastValue);
    _lastValue = v;
  }
  var power_spectrum = MFCC.power_spectrum(frame, _fftSize);
  var mel_coefs = MFCC.mel_coefs(power_spectrum, _fbanks);
  var mfccs = MFCC.dct(mel_coefs, true).sublist(0, _numCoefs);
  if (_energy){
    mfccs[0] = safe_log(power_spectrum.reduce((a, b) => a + b)); // Replace first value with logenergy
  } else {
    return mfccs.sublist(1);
  }
  return mfccs;
}