我正在使用 Marsyas 库开发一个应用程序。
我将一些 MarSystems 添加到“系列”-MarSystem。现在我想添加一个 MEL 或 BARK滤波器组(带通滤波器)来计算每个波段的能量。我会使用“ TriangularFilterBank ”来完成此操作,但如何正确使用此 MarSystem 设置 MEL 滤波器组?
之后我想一次访问两个连续帧的每个波段的处理数据。你是怎样做的?
所描述场景的代码:
Marsyas::MarSystem *net = manager.create("Series", "net");
net->addMarSystem(manager.create("SoundFileSource","src"));
// ...
net->addMarSystem(manager.create("Windowing", "ham")); // creates "frames"
net->addMarSystem(manager.create("Spectrum", "spec"));
net->addMarSystem(manager.create("PowerSpectrum", "powerSpec"));
// How to add a mel filter band here? <---
net->addMarSystem(manager.create("Energy", "en"));
// ...
while (net->getctrl("SoundFileSource/src/mrs_bool/hasData")->to<Marsyas::mrs_bool>())
{
// This processes one frame at a time at the moment:
net->tick();
Marsyas::mrs_realvec vec = net->getctrl("mrs_realvec/processedData")->to<Marsyas::mrs_realvec>();
// How can I access the pocessed data of EACH band of WTO consecutive
// frames at ONCE here? <-- -
}
1.) 如何在系统中添加 mel 滤波器波段?
2.) 如何一次访问两个连续窗口的每个波段的处理数据?