一个从信号中提取梅尔频率倒谱系数 (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。