【发布时间】:2014-04-10 08:10:50
【问题描述】:
我正在使用 python 读取一个 mp3 文件对象。
f = open("/home/user/temp.mp3", "r")
我的最终目标是提取振幅和频率作为时间的函数。我指的是维基页面,http://en.wikipedia.org/wiki/MP3#File_structure
示例 unicode:
edee 68c0 bb0b f65f 4ef1 62ae 8cb0 53be
3146 3c90 aa74 d558 ea62 85c1 9319 41b4
90a9 1260 e0c1 81c5 fb6c ae6b 626c 28c4
bbb2 6c4c 3d77 aee7 c5b3 a2fb 0e5d ed59
wiki 页面说,对于每 32 位,第 21 位和第 22 位代表采样率频率指数。
一个。采样率频率索引,(是每 8 位中第 6 位的十六进制到二进制转换中的第一位和第二位)。对于给定的歌曲,这不应该是恒定的吗?
b.是否可以使用这些数据来获取特定时刻的频率?
提前致谢
【问题讨论】:
-
您应该将
.mp3读取为二进制文件:"rb"模式。为什么您认为您的样本是 Unicode,例如,您确定要将"edee 68c0"解释为u"\uedee\u68c0"? -
有些 Python 库可以解析
mp3,例如,mutagen、eye3D、pymedia。为什么要手动解析它?见wiki.python.org/moin/PythonInMusic
标签: python audio unicode frequency-analysis