在Linux服务器/终端中压缩/扩展Mp3文件中的声音



在Ubuntu服务器上的python脚本中,我需要用声音压缩器处理许多传入的mp3音频文件。例如,一种减少最安静和最响亮音量之间差异的工具。

这可能吗?我相信我不需要为此编写程序。

如果是,我应该使用什么实用程序,以及如何配置它?

FFmpeg有一个用于压缩或扩展音频动态范围的过滤器,称为compand。您可以在Python脚本中执行它。有关用法示例,请查看文档。

随机示例(用于带有耳语和爆炸部分的音频(:

ffmpeg -i input.mp3 -af "compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0" output.mp3

含义:攻击0,衰减1,点数-90/900,-70/-70,-30/-9。0/-3,软膝6,增益0,音量0,延迟0

要安装它,您可以sudo apt-get install ffmpeg或从源代码编译它以获得最新功能。

如果你只是在寻找"一种可以减少最安静和最响亮声音级别之间差异的工具",那么听起来你是在寻找动态范围压缩,尽管我建议你也研究ReplayGain,它可以确定音轨的最佳响度级别(而不是让柔和部分更响亮,让响亮部分更柔和(。对于大多数用途,ReplayGain更可取,但如果你有听力问题,或者只是想最大限度地提高人们理解声音片段的能力(而不是享受(,则范围压缩更有意义。

有两种方法可以完成这两项任务:永久和通过元数据:

永久

这涉及到对音频进行解压缩、修改和重新编码。您将失去音频质量,因为MP3是有损的,尽管如果您在完全相同的软件版本和完全相同的配置下使用完全相同的编码器,这将是一个小打击。必须重新编码的事实也会使这个过程明显变慢。

通过元数据

有一些软件可以评估你的库,并将ReplayGain测量值粘贴到媒体的元数据中(对于MP3,这将是一个ID3标签(。理解这种格式的播放器可以在播放音频样本时调整音量级别。这是无损的,你不会失去任何东西。它也更快,因为你不需要将音频压缩回MP3。

 

有很多实现可供选择,至少对于ReplayGain是这样。

最新更新