python使用变量存储以下mp3信息_如何使用python从mp3文件中提取原始数据?

stackoverflow周围也有一些类似的问题。有不同的用例。用户希望将.mp3文件转换为PCM文件,如.wav文件。

用户希望访问.mp3文件中的原始数据(即,不要将其视为压缩的PCM)。这里的用例是理解MP3和AAC这样的压缩方案是如何工作的。

这个答案是针对其中的第二个,尽管我没有工作代码可以共享或指向。

MP3等压缩方案通常在频域工作。作为一个简单的例子,您可以一次获取一个.wav文件1024个样本,使用FFT变换1024个样本的每个块,并将其存储。粗略地说,有损压缩然后丢弃来自频域的信息,以便允许更小的编码。

如果只想从.mp3转换为.wav,那么纯python实现是非常不切实际的。但是,如果你想探索.mp3和相关的方案是如何工作的,有一些你可以很容易地修改的东西,即使代码运行速度比ffmpeg使用的慢1000倍,实际上也是有用的,特别是如果用一种让源代码的读写者能够看到.mp3压缩是如何工作的方式编写的。例如,请参阅http://bugra.github.io/work/notes/2014-07-12/discre-fourier-cosine-transform-dft-dct-image-compression/中的IPython工作簿,该工作簿介绍如何在JPEG等图像压缩方案中使用频域变换。类似于MP3压缩和类似的东西对人们学习压缩很有用。

mp3文件基本上是一个mp3帧序列,每个帧都有一个头部和数据组件。然后,第一个任务是编写一个(或多个)Python类来表示它们,并从.mp3文件中读取它们。首先以二进制模式(即f=open(filename,“rb”)读取文件,然后data=f.read()——在现代机器上,假设.mp3中的一首典型的5分钟歌曲大约为5 MB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值