如何用Python库无需转码即可修改MP3音频?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (148)

在开始一个小型项目之前,我正在寻找关于mp3格式的一般建议。

我对mp3格式内部的理解很少。理想情况下,我正在寻找一个能够抽象出这些细节的库。我宁愿使用Python。

我想以相当简单的方式修改一组mp3文件。我对ID3标签没有那么感兴趣,但在音频本身。我希望能够删除部分(例如,从第3分钟开始删除10秒),并插入部分(例如,为末尾添加信用点)。

我的理解是,mp3格式是有损的,因此将其解码为(例如)PCM格式,进行修改,然后再次将其编码为MP3会降低音频质量。(我很想听听我错了。)

猜想,如果我保持mp3格式,将会有某种最小帧或包大小来处理,所以操作的粒度可能更粗糙。只要我在几秒钟内获得准确度,我就能忍受这一点。

我看过PyMedia,但它需要我迁移到PCM来处理数据。同样,LAME想帮助我编码,但不能访问数据。我见过其他几个只处理ID3标签的库。

任何人都可以推荐一个Python MP3库吗?或者,你可以否认我的假设,即去PCM并返回是坏的和可以避免的吗?

提问于
用户回答回答于

你需要使用MP3吗?

  • 转码到PCM并回到MP3不太可能导致质量下降。
  • 不要过早优化音频质量; 用一个简单的原型进行测试并听取它。

在MP3中工作

  • Wikipedia有一个MP3文件格式的摘要。
  • MP3帧很短(1152个样本,或几毫秒),允许在该级别的中等精度。
  • 然而,维基百科警告说,“帧不是独立的项目(”字节库“),因此无法在任意帧边界上提取。”
  • 如果我真的想避免解码,现有的库不太可能有帮助。

在更高层次工作

  • Echo Nest Remix API (仅适用于Mac或Linux)是一种支持相当复杂操作的Web服务的API(例如,查找音乐节拍和拍子的位置等)
  • mp3DirectCut(仅限Windows)是一种GUI,它显然可以执行我想要的操作,但是作为一个应用程序。它不是开源的。(我试图运行它,得到了一个Access Denied安装程序错误,并没有跟进。一个GUI不适合我,因为我想反复在一个不断变化的文件库上运行这些操作。)
用户回答回答于

如果你想做低级别的事情,可以使用pymad。它将MP3转换成采样数据的缓冲区。

如果你想要一些更高级别的东西,可以使用Echo Nest Remix API。

扫码关注云+社区

领取腾讯云代金券