Remove High-Frequency Noise from Audio with FFmpeg

This guide demonstrates how to eliminate unwanted high-frequency background noise, such as hiss, whistle, or sibilance, from a podcast audio file using FFmpeg. You will learn the exact command-line filters needed to isolate human speech and roll off high frequencies to produce a cleaner, more professional sound.

The Lowpass Filter Command

To strip high-frequency noise, you use FFmpeg’s built-in lowpass audio filter. A lowpass filter allows low-frequency sounds (like human voices) to pass through while attenuating (weakening) frequencies above a specified cutoff point.

For voice-dominated podcast audio, a cutoff frequency between 8,000 Hz (8 kHz) and 10,000 Hz (10 kHz) is ideal because human speech rarely contains necessary information above this range, but hiss and system noise do.

Run the following command in your terminal:

ffmpeg -i input.mp3 -af "lowpass=f=8000" output.mp3

Command Breakdown: * -i input.mp3: Specifies your source podcast audio file. * -af: Tells FFmpeg to apply an audio filter. * "lowpass=f=8000": Applies the lowpass filter with a frequency (f) cutoff of 8,000 Hz. Everything above this frequency will be steeply reduced. * output.mp3: The name of your newly created, cleaned audio file.

Advanced: Cleaning Both High and Low Noise

Podcasts often suffer from both high-frequency hiss and low-frequency rumble (like air conditioners or traffic). You can chain a highpass filter and a lowpass filter together to create a bandpass filter that only keeps the vocal range.

Run this command to clean both ends of the frequency spectrum:

ffmpeg -i input.mp3 -af "highpass=f=80, lowpass=f=8500" output.mp3

In this command, the highpass=f=80 filter cuts out muddy frequencies below 80 Hz, while the lowpass=f=8500 filter cuts out hissing frequencies above 8,500 Hz, leaving a highly optimized voice track.