在我的Ubuntu服务器上的python脚本中,我需要使用声音压缩器处理许多传入的mp3音频文件。例如。减少最安静和最响亮声级之间差异的工具。
这可能吗?我相信我不需要为此编写程序。
如果是这样,我应该使用什么实用程序以及如何配置它?
答案 0 :(得分:4)
FFmpeg有一个过滤器,用于压缩或扩展名为compand
的音频动态范围。您可以在Python脚本中执行它。查看documentation以获取用法示例。
随机示例(对于带有耳语和爆炸声部分的音频):
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
或从源代码编译它以获取最新功能。
答案 1 :(得分:1)
如果你只是在寻找“减少最安静和最响亮声级之间差异的工具”,那么听起来你正在寻找dynamic range compression,尽管我建议你也调查{ {3}},它确定音轨的最佳响度级别(而不是使软部件更响亮,而响亮部分更柔和)。对于大多数用途,ReplayGain是首选,但如果您有听力问题或只是想最大限度地提高人们理解声音片段的能力(而不是享受),则范围压缩更有意义。
有两种方法可以完成以下任务:永久性和通过元数据:
这涉及解压缩音频,修改音频并重新编码。 您将失去音频质量,因为MP3是ReplayGain,但如果您使用完全相同的编码器完全相同的软件版本和完全相同的配置,这将是一个小问题。您必须重新编码的事实也会使此过程显着变慢。
那里有软件可以评估您的库并将ReplayGain测量结果粘贴到您的媒体元数据中(在MP3的情况下,这将是ID3标签)。理解此格式的播放器可以在播放音频样本时调整音量级别。这是非破坏性的,你什么都不会失去。它也更快,因为您不需要将音频压缩回MP3。
有很多lossy可供选择,至少对于ReplayGain来说。