我正在尝试分析mp3文件中的音乐。我想获得有关节奏,音高和其他音乐特征的信息。我怎样才能获得这些数据?是否有开源软件可以为我提供这些信息,甚至是更好的图书馆?
任何人都可以给我一个关于做什么或从哪里开始寻找的提示? 感谢。
答案 0 :(得分:1)
LibMAD是一个开源mp3解码器库,效果非常好。这将为您提供要修改的“原始”数据。要获得音调和其他一些“特征”,你需要深入研究数学。
音高基本上是声音的频率。这可以使用FFT在运行中(实际上在数据块中)完成。 Pythons numpy有fft函数(如果你有原始数据)。可以在here.
找到c ++中的fft库可以找到FFT后面的一些“数学”here
也可以通过对原始数据应用一些二阶低通滤波器然后对数据进行FFT来计算速度。数字滤波器也在与上面链接的dspguide中讨论过。
祝你好运,这是一些好东西,但如果你还没有做好准备的话会有很多数学。
答案 1 :(得分:0)
考虑ChucK音乐编程语言中的单位分析器:http://chuck.cs.princeton.edu/doc/examples/#uana
答案 2 :(得分:0)
Audacity会有所帮助。如果您想在程序中使用它们,可以查看它们的源代码。 http://audacity.sourceforge.net/download/source
注意:首先请下载audacity以检查它是否包含您需要的所有内容。
答案 3 :(得分:0)
如果您不知道从哪里开始,我建议您只购买声音伪造或其他专业编辑程序,这些程序已经有了算法。如果你真的有决心然后拿出你的物理书,那就是它来自哪里。找到声音的整体音高是微积分变换。有关声音的其他信息,如速度,可以在脉冲响应滤波器和一些AI的帮助下找到。除非你真的很专注,否则只需买一个编辑。
更新:如果你真的想为它here's寻找一个很好的资源。