How to Use the Freespoken Filter in FFmpeg
This article clarifies the status of the freespoken
filter in FFmpeg, explains the most common speech-processing filters
available natively, and provides direct command-line examples for
enhancing, normalizing, and denoising spoken audio.
Does FFmpeg Have a
freespoken Filter?
FFmpeg does not include a native filter named
freespoken. Users looking for freespoken are
typically searching for one of two things:
- Speech-focused audio filters: Built-in filters
intended for dialogue, such as
speechnorm(speech normalization) orarnndn/afftdn(noise reduction for voice). freeverb: FFmpeg's built-in reverberation filter, which shares a similar naming structure.
Below are the direct instructions for processing spoken audio and voice recordings using the official FFmpeg filter suite.
Normalizing Dialogue with
speechnorm
If your goal is to level speech volume across a recording, the
speechnorm filter is the native tool designed specifically
for spoken words. It dynamically adjusts gain to keep dialogue clear and
uniform.
Run the following command to apply speech normalization:
ffmpeg -i input.mp4 -af "speechnorm=e=4:r=0.0001:l=1" -c:v copy output.mp4e=4: Sets the expansion threshold (default is 4).r=0.0001: Controls the RMS target reference.l=1: Enables peak limiting to avoid digital clipping.-c:v copy: Copies the video stream without re-encoding to save time.
Removing
Background Noise from Speech with afftdn
To clean up hums, hiss, or background room noise from spoken
dialogue, use the Fast Fourier Transform noise reduction filter
(afftdn):
ffmpeg -i input.wav -af "afftdn=nf=-25" output.wavnf=-25: Sets the noise floor in decibels (dB). Adjust this value depending on the severity of the background noise.
Isolating Voice Using an Equalizer and Highpass/Lowpass
For a quick vocal isolation chain without third-party models, combine high-pass and low-pass filters to strip frequencies outside normal human speech:
ffmpeg -i input.mp3 -af "highpass=f=80,lowpass=f=3000" output.mp3highpass=f=80: Removes low-end rumble below 80 Hz.lowpass=f=3000: Cuts out high-frequency hiss above 3 kHz.
Using the freeverb
Filter
If you were searching for the similarly named reverb filter rather
than a dialogue cleanup tool, FFmpeg provides freeverb:
ffmpeg -i input.wav -af "freeverb=roomsize=0.2:damping=0.5:wet=0.3:dry=0.8" output.wavroomsize: Size of the simulated room (0.0 to 1.0).damping: High-frequency absorption (0.0 to 1.0).wet: Volume of the processed reverb signal.dry: Volume of the original clean signal.