version pub-version

一个从信号中提取梅尔频率倒谱系数 (MFCC) 的库。

用法

一个简单的使用示例

import 'package:mfcc/mfcc.dart';

void main() {
  var sampleRate = 16000;
  var windowLength = 1024;
  var windowStride = 512;
  var fftSize = 512;
  var numFilter = 20;
  var numCoefs = 13;
  List<double> mySignal = // ...
  var features = MFCC.mfccFeats(mySignal, sampleRate, windowLength, windowStride, fftSize, numFilter, numCoefs);
  
}

流式使用示例

import 'package:mfcc/mfcc.dart';
import 'dart:async';

void main() {
  var sampleRate = 16000;
  var windowLength = 1024;
  var windowStride = 512;
  var fftSize = 512;
  var numFilter = 20;
  var numCoefs = 13;

  var mfcc_proc = MFCC(sampleRate, fftSize, numFilter, numCoefs, energy: false, preEmphasis: 0.97);
  
  StreamController<List<double>> audioInput = StreamController<List<double>>(); // Stream on which the audio frame are pushed

  StreamController<List<double>> featureStreamCtrl = mfcc_proc.setStream(audioInput.stream); // Feature stream controller. 

  StreamSubscription<List<double>> featureSub = featureStreamCtrl.stream.listen((features) { // Feature stream subscription.
    doSomething(features); 
  })

  List<double> myFrame = ... // frame of length [windowLength]

  audioInput.add(myFrame);

  // doSomething is called with extracted features. 

  mfcc_proc.cancelStream();
  featureSub.cancel();
}

文档

包文档可用 此处。使用 dartdoc 生成。

功能和 Bug

请在 问题跟踪器 上提交功能请求和错误报告。

许可

本项目采用 GPLv3 许可,您可以在这些条款下自由使用和修改代码。请参阅 LICENCE。

GitHub

查看 Github