无需转码即可修改 MP3 音频的 Python 库

标签 python mp3 codec

在我开始一个小项目之前,我正在寻找一些关于 mp3 格式的一般性建议,以确保我不是在疯狂追逐。

我对 mp3 格式的内部结构的了解很少。理想情况下,我正在寻找一个可以将这些细节抽象出来的库。我更喜欢使用 Python(但也可以用其他方式说服)。

我想以一种相当简单的方式修改一组 mp3 文件。我对 ID3 标签不是很感兴趣,而是对音频本身很感兴趣。我希望能够删除部分(例如,从第 3 分钟开始减少 10 秒),并插入部分(例如,将学分添加到末尾。)

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

推测如果我保持 mp3 格式,将会有某种最小帧或数据包大小需要处理,因此操作的粒度可能更粗略。只要我能在几秒钟内获得准确度,我就可以忍受。

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

谁能推荐一个 Python MP3 库?或者,您能否驳斥我的假设,即往返 PCM 是不好且可以避免的?

最佳答案

如果你想做底层的事情,使用 pymad .它将 MP3 转换为样本数据的缓冲区。

如果您想要更高级别的东西,请使用 Echo Nest Remix API (披露:我为我的日常工作写了一部分)。它包括几个例子。如果您查看 cowbell例如(即 MoreCowbell.dj ),你会看到一个 pymad 的分支,它给你一个 NumPy数组而不是缓冲区。该数据类型可以更轻松地分割部分并对它们进行数学运算。

关于无需转码即可修改 MP3 音频的 Python 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/310765/

相关文章:

python-3.x - 查找mp3的时间长度 - python

algorithm - VP9中使用的快速运动估计算法?

python - 如何在同一个 Windows XP 机器上运行 python 2.6 和 3.0?

python - Lambda 包括 if...elif...else

json - 从每首歌中获取 HTTP MP3 流

php - 在 PHP 中转换音频文件

audio - FFMPEG - "-ab"和 "-b:a"之间的区别

android - MXPlayer 和 MoboPlayer 等 Media Player Android 应用程序如何播放不受支持的文件格式(如 MKV)?

python - Pandas – 创建缓冲列

python - 如何使用 groupby 对 xarray 数据集进行下采样?