How to Use FFmpeg Speechnormalizer Filter

This guide explains how to use the speechnormalizer filter in FFmpeg to balance and improve speech volume in your audio and video files. You will learn the basic syntax, key parameters for fine-tuning the audio output, and practical command-line examples to achieve consistent, professional-grade speech levels.

What is the Speechnormalizer Filter?

The speechnormalizer filter in FFmpeg is an audio filter designed specifically to normalize speech. Unlike standard volume normalization, which adjusts the entire audio file by a fixed level, speechnormalizer dynamically adjusts the volume over time. It increases the volume of quiet speech and reduces the volume of loud outbursts, ensuring a consistent listening experience without clipping or distorting the audio.

Basic Usage

To apply the speechnormalizer filter with its default settings, use the following basic FFmpeg command:

ffmpeg -i input.mp4 -af speechnormalizer output.mp4

In this command, -af stands for audio filter, and speechnormalizer applies the default voice-balancing algorithm to the audio stream.

Key Parameters for Fine-Tuning

You can customize the behavior of the filter using specific parameters. The syntax for passing parameters is speechnormalizer=parameter1=value1:parameter2=value2.

Practical Examples

1. Normalizing Low-Volume Voice Recordings

If your voice recording is too quiet, you can increase the target volume while keeping the peak safe from clipping:

ffmpeg -i input.wav -af "speechnormalizer=target=0.35:peak=0.9" output.wav

2. Reducing Background Noise Amplification

In recordings with background hiss or computer fan noise, use the threshold parameter to prevent the filter from boosting the noise during pauses in speech:

ffmpeg -i input.mp3 -af "speechnormalizer=threshold=0.05" output.mp3

3. Fast Volume Adaptability

For fast-paced dialogue or podcasts with multiple speakers, lowering the delay helps the filter react more quickly to sudden changes in volume between speakers:

ffmpeg -i input.mp4 -af "speechnormalizer=delay=0.8:target=0.3" output.mp4