Linux中的实时音频分析
我想知道使用的推荐音频库是什么?
我正在尝试制作一个有助于调谐乐器的小程序. (钢琴,吉他等).我看过关于ALSA& Marsyas音频库. 我认为这个想法是从麦克风采样数据,对5-10ms的分组进行分析(从我读过的).然后执行FFT以确定哪个频率包含最大峰值. 解决方法
这是一个很好的选择,这是为了完成这样的任务而建立的.
为了调整仪器,您需要做的是使用一种估算基准的算法 以下是您将在Marsyas中使用的基本代码: MarSystemManager mng; // A series to contain everything MarSystem* net = mng.create("Series","series"); // Process the data from the SoundFileSource with AubioYin net->addMarSystem(mng.create("SoundFileSource","src")); net->addMarSystem(mng.create("ShiftInput","si")); net->addMarSystem(mng.create("AubioYin","yin")); net->updctrl("SoundFileSource/src/mrs_string/filename",inAudioFileName); while (net->getctrl("SoundFileSource/src/mrs_bool/notEmpty")->to<mrs_bool>()) { net->tick(); realvec r = net->getctrl("mrs_realvec/processedData")->to<mrs_realvec>(); cout << r(0,0) << endl; } 此代码首先创建一个我们将添加组件的Series对象.在一个系列中,每个组件 然后我们告诉SoundFileSource我们要在AudioFileName中读取该文件. 然后while语句循环,直到SoundFileSource耗尽数据.在里面 当您使用Marsyas的Python绑定时,这更容易. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |