2014-04-10 123 views
4

我正在尝试编写一个Python脚本来读取MP3文件并对其中的频率执行一些分析。特别是,我想要一个频谱图(频率与时间)作为输出。使用python分析mp3文件的频率

然而,当我读到使用打开该文件()和管道的内容到一个文件中,我得到了这样的事情:

3763 1e65 0311 1814 b094 d3e3 25b3 641b 
15a1 f146 62d6 ade6 7708 c5ec 1a0d 7395 
201c 46e6 65a9 5276 688a 47eb 80e8 617e 
4d66 2d82 2677 f74e e664 6220 69fa 1b46 

在进一步的研究,我想这些都在某种程度上涉及到MP3在本维基中讨论的标题和数据:http://en.wikipedia.org/wiki/MP3#File_structure

如何使用此信息提取文件的频率数据?

PS:我特别想分析MP3文件,而不是WAV文件。解决方法是将MP3转换为WAV格式,然后处理,因为有一个Python模块来处理WAV文件。但是,没有这种转换,是否有解决这个问题的方法?

在此先感谢。

+0

解码MP3文件到PCM将是一个很好的起点。 – marko

回答

0

如果你想创建一个谱图,numpy的有一个模块调用fftpack(我认为 - FFT是快速傅立叶变换的缩写),其可以将幅度随时间的函数转换为幅度随频率变化的函数。如果你创建一个程序在很短的时间间隔内重复这个操作,你可以把所有这些都放到一个数组中,并从那里进行分析。

如果你只是想获得采样率,你需要找到通常以“fff”或“ffe”开始的头(它并不总是在开头)。采样率信息是在头的第六个字节,这里全部解释这里:http://www.multiweb.cz/twoinches/mp3inside.htm