gpt4 book ai didi

python - Python 中的 Mp3 解析

转载 作者:太空狗 更新时间:2023-10-30 00:17:38 24 4
gpt4 key购买 nike

这是我一段时间以来一直在尝试做的事情,更像是一个开放式问题。如果有人有任何知识可以帮助我阐明这一点,将不胜感激。

我想解码 mp3 中的音频流并用它来驱动动画,全部使用 python。据我了解,mp3 中的音频数据存储在 32 个频率子带(或频率仓)的帧中,这对我来说是理想的 - 如果我可以使用 mp3 并提取每个帧上每个子带的振幅,那将完美地完成我想做的事情。

我在这里找到了解决方案 https://bitbucket.org/portalfire/pymp3所有处理似乎都是在 python 中完成的。它很慢,但即使我可以用它来提取我想要的东西,那也很好——尽管我正在努力理解该代码中发生了什么。我还有一个解决方案,我将其转换为 wav,然后使用 fft 从 wav 中提取频率。这非常嘈杂,似乎是一种愚蠢的做法,因为我想要的数据直接存储在 mp3 中——转换回声波似乎没有必要。这实际上比第一个更快。这是我最终得到的结果:

http://www.youtube.com/watch?v=f_0FORxlK4A

好吧,如果有人有任何建议或他们想分享的经验,或者我应该看看的图书馆的想法,我真的很想听听。

谢谢!

亨利

最佳答案

看看:

http://lightshowpi.org/

查看源代码,看看他们是怎么做到的。

他们还在波形输出上使用了 FFT,但是是实时的,它并不像您认为的那样慢,它在 Raspberry Pi 上运行良好。

他们可能会改用余弦变换,因为它更快,如果直接检查 MP3 帧,您会这样做,因为 MP3 是余弦变换编码的。

因此,您首先必须知道哪个 bin 类似于现实世界中的哪些频率。

在 pypi.python.org 上现在有 AV 或 ffmpeg 直接绑定(bind)允许你逐帧解码,但我不知道你是否可以从代表帧的对象中提取频率或者你必须先转换为原始

如果我是你,我会使用你找到的纯 Python MP3 代码来提取我需要的内容,并在此过程中对其进行优化。如果需要,使用 cython。

但这种方法将您限制为只能使用 MP3。 Lightshow Pi 适用于几乎所有压缩类型。

关于python - Python 中的 Mp3 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com