我对用Python编程一个音乐可视化工具很感兴趣。
第一个问题是如何从音乐中获取信息?比如音量、频率、转速等。 从哪里来的?从声卡还是真正的音乐文件?
我是从声卡上猜出来的,但是我怎么才能访问声卡和想要的信息呢?最好采用独立于平台的方式(必须使用Linux)。 我已经读过一些关于傅里叶变换的书,但我不确定这是否是最好的方法。
我考虑过使用OpenGL来实现可视化,但我仍然愿意提出建议。
我已经看过那些维基页面,但还没有找到答案:
http://wiki.python.org/moin/Audio/
http://wiki.python.org/moin/PythonInMusic
另一个工具是librosa。除了默认操作之外,它还提供Beat tracking来获取bpm。根据教程,对于节拍跟踪:
作为@dionyziz also said
我还没试过。
不再是一个好答案,因为Echo Nest API不再可用。只因历史原因离开
考虑一下Echo NestAPI,它可以完美地与Python一起工作,并将返回有关每分钟跳动(可能是您想要的而不是RPM)、平均振幅,甚至任何音频文件的“可跳舞性”的信息。您需要一个API密钥,但除此之外,它是免费的,并且工作良好。
它也有操作音乐的代码,通过他们的回声巢混音包。下面是他们的示例代码:
如果您正在寻找一个跨平台的音频库,我强烈建议您使用FMOD这只是岩石。还有一个wrapper可以在python中使用它(尽管我从未使用过它)。
它将提供一些功能,如将频谱从盒子中取出。
如果你想分析音频文件,我的choix算法是beat spectrum。它通过比较音乐的每个短样本与其他样本来计算相似度矩阵。一旦计算出相似矩阵,就可以得到每个时间间隔T的每个样本对{S(T);S(T+1)}之间的平均相似性:这是拍谱。
它允许获取音频序列的BPM,但可以做更多的事情,比如识别音乐的不同部分,定位相似示例之间的转换。我不知道你所说的“可视化音频”到底是什么意思,但我认为这个算法应该为你提供足够的信息,以便开始将图像与音频同步(如果你想这样做的话)。
相关问题 更多 >
编程相关推荐