【发布时间】:2013-08-28 17:58:18
【问题描述】:
这是我一段时间以来一直在尝试做的事情,而且更像是一个开放式问题。如果有人有任何知识可以帮助我对此有所了解,将不胜感激。
我想解码 mp3 中的音频流并使用它来驱动动画,全部使用 python。据我了解,mp3 中的音频数据存储在 32 个频率子带(或频率箱)的帧中,这对我来说是理想的 - 如果我可以使用 mp3 并为每个帧上的每个子带提取幅度,那将完美地完成我想做的事情。
我在这里找到了解决方案https://bitbucket.org/portalfire/pymp3,所有处理似乎都是在 python 中完成的。这很慢,但即使我可以用它来提取我想要的东西,它也会很好 - 我正在努力理解该代码中发生的事情。我还有一个解决方案,我转换为 wav,然后使用 fft 从 wav 中提取频率。这非常嘈杂,似乎是一种愚蠢的方法,因为我想要的数据直接存储在 mp3 中 - 转换回声波似乎没有必要。这实际上比第一个更快。这是我最终得到的结果:
http://www.youtube.com/watch?v=f_0FORxlK4A
如果有人有任何建议,或者他们想分享的经验,或者我应该关注的图书馆的想法,我真的很想听听。
谢谢!
亨利
【问题讨论】:
-
您可能需要通过wiki.python.org/moin/PythonInMusic 来查看大量可用的库
-
市面上有许多 MP3 库,而就使用哪一个库寻求建议正是像 SO 这样的问答论坛不擅长处理的事情。跨度>
-
我可以给出一条建议:如果您知道如何使用 cython、ctypes 或任何其他此类机制,那么值得看看像 mpg123 这样没有任何 Python 绑定的 C 库,并且仅包装您需要的位。这样你有更多的选择。
-
我想在我的一个爱好项目中做同样的事情。我曾经尝试过abanert的方法,进步到一定程度,但是时间和精力都用完了……