使用 FFMPEG 调整具有不同响度的音频(录制的谈话)

DDS*_*DDS 4 ffmpeg audio-recording

我必须“调整”一些我参加过的课程的录音。教授四处走动,但我的录音机在一个固定的地方;现在我有从大声到耳语的音轨。我如何使用 ffmpeg 处理它?

slh*_*hck 7

有几种可能:

  • 应用简单的归一化(例如峰值或 RMS 归一化)。这只会改变整个文件的增益,因此您仍然会遇到响亮和柔和部分之间的变化。不推荐用于您的用例。

  • compand过滤器使用动态压缩。这将减少整个录音的动态范围(即柔和和响亮部分之间的差异)。您必须找到一个合适的阈值,在该阈值处进行压缩,并且您很可能会在软部分获得相当嘈杂的信号。

  • 使用dynaudnorm滤波器,它“允许对音频的‘安静’部分应用额外的增益,同时避免失真或剪切‘响亮’部分。” 在您的情况下,这将是首选。

基本上,您只需要从这里下载最新的 ffmpeg 静态版本,然后运行:

ffmpeg -i input.wav -filter:a "dynaudnorm" output.wav
Run Code Online (Sandbox Code Playgroud)

您很可能需要为您的特定用例调整过滤器选项。使用compand过滤器提供示例作为起点:

制作适合在嘈杂环境中聆听的安静和响亮段落的音乐:

compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
Run Code Online (Sandbox Code Playgroud)

另一个带有耳语和爆炸部分的音频示例:

compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
Run Code Online (Sandbox Code Playgroud)

在这里,第二个示例的选项具体是:

attacks=0|0
decays=1|1
points=-90/-900|-70/-70|-30/-9|0/-3
soft-knee=6
gain=0
volume=0
delay=0
Run Code Online (Sandbox Code Playgroud)

您可以调整增益以保持相同的动态处理,但将其调整为您的基线输入电平。

此外,作为 ffmpeg 的图形替代方案,您可以使用 Audacity 及其内置的 Compressor,它可以实现与compandffmpeg 中的过滤器相同的效果。维基对选项也有很好的解释。