首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python库,无需转码即可修改MP3音频

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

Stack Overflow用户
提问于 2008-11-22 02:30:54
回答 4查看 11.5K关注 0票数 19

在我开始一个小项目之前,我正在寻找一些关于mp3格式的一般建议,以确保我不是在白费力气。

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

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

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

我猜测,如果我停留在mp3格式,将有某种类型的最小帧或包大小需要处理,因此操作的粒度可能会更粗。我可以接受这一点,只要我的准确度在几秒内。

我看过PyMedia,但它需要我迁移到PCM来处理数据。类似地,LAME希望帮助我进行编码,但不是直接访问数据。我还见过其他几个只处理ID3标记的库。

有人能推荐一个Python MP3库吗?或者,你可以纠正我的假设,即去PCM和回来是不好的和可以避免的?

EN

回答 4

Stack Overflow用户

发布于 2008-11-22 03:35:23

如果你想做一些底层的事情,那就使用pymad。它将MP3s转换为样本数据的缓冲区。

如果你想要一些更高层次的东西,使用Echo Nest Remix API (披露:我为我的日常工作写了一部分)。如果您查看cowbell示例(即MoreCowbell.dj),您将看到一个pymad分支,它给您一个NumPy数组而不是一个缓冲区。这种数据类型使得分割部分和对它们进行数学运算变得更容易。

票数 7
EN

Stack Overflow用户

发布于 2008-11-22 03:01:09

Mp3是有损的,但它以一种非常特殊的方式有损。根据设计使用的算法,用于丢弃您的耳朵无法听到(或非常难以听到)的音频的某些部分。一遍又一遍地在相同的压缩级别上重复压缩过程可能会对给定的一段音频产生几乎相同的结果。然而,一些额外的损失可能会慢慢累积。如果你要经常修改文件,这可能不是一个好主意。如果你关心质量,这也不是一个好主意,但是如果你关心质量,那么使用MP3总的来说是个坏主意。

您可以使用编码器和解码器构建一个测试,对几个不同的mp3文件重新编码几次,并观察它们是如何变化的,这可以帮助您确定恶化的速度,并确定您是否可以接受它。听起来你已经有了可以用来运行这个简单测试的库了。

MP3文件是由音频的“帧”组成的,因此,通过一些努力,应该可以通过最小的处理来删除整个帧(删除帧,更新文件头中的一些次要细节)。我相信帧是相当短的(每个帧几毫秒),这会给出你想要的精度。因此,在MP3 File Format上进行一些阅读应该会为您提供足够的信息来编写您自己的python库来实现这一点。这与传统的“音频处理”有很大的不同(因为你不关心精确度),所以你不太可能找到一个现有的库来做这件事。正如你已经发现的,大多数都会先解压缩音频,这样你就可以拥有完整的细粒度控制。

票数 3
EN

Stack Overflow用户

发布于 2008-11-22 03:16:23

不能直接满足您的需求,但请检查执行您想要的功能的mp3DirectCut软件(作为图形用户界面应用程序)。我认为源代码是可用的,所以即使您找不到库,也可以构建自己的库,或者使用mp3DirectCut中的代码构建python扩展。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/310765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档