Noise Reduction
Removes background noise from speech and field recordings with spectral gating, PCEN or a highpass filter, used alone or combined in one run.
Overview
Noise Reduction cleans up noisy recordings with librosa, the Python package for music and audio analysis. It has three signal-processing methods that run alone or combined, and none of them relies on a trained model.
Spectral gating is switched on by default. It takes seconds 5 to 6 of the file as its noise sample, measures the level of each frequency band in that second, and turns down anything that does not rise a set number of standard deviations above that level. The mask that does this is smoothed across nearby frequency channels and time frames.
PCEN (per-channel energy normalization) runs through librosa's implementation: automatic gain control followed by nonlinear compression, which librosa documents as a way to suppress background noise and bring foreground signals forward. Here it works on a 64-band mel spectrogram, and the audio is then rebuilt from that spectrogram with estimated phase, so the PCEN result is a resynthesis of the recording, not a filtered copy of it. The third method is a highpass filter fixed at 2,000 Hz. It removes everything below that point: rumble and hum, and also most of the energy in a speaking voice.
What you can build
- Cleanup for voice notes and interviews recorded over a steady room hum.
- A preprocessing step that lowers constant hiss before speech-to-text.
- Bioacoustics work, such as reducing background noise in bird or animal field recordings.
Inputs
You upload one audio file in MP3, WAV or OGG, or paste a link to one.
Three settings sit outside the advanced section. The first, n-std-thresh (0 to 10, default 1.9), is how many standard deviations above the measured noise a sound must reach to count as signal. With prop-decrease (0 to 1, default 0.9) you set how far gated parts are turned down: 1 pushes them down to the quietest level in the file, and 0 applies no reduction, although the audio is still rebuilt from its spectrogram. The gain setting (0 to 2, default 1.9) belongs to PCEN, which is off by default.
The advanced section holds the sample rate (8,000 to 384,000 Hz, default 44,100) and one checkbox per method. Only spectral gating is ticked by default. Three more checkboxes chain the methods in one pass: spectral gating then PCEN, spectral gating then the highpass filter, or all three in that order. Mask smoothing, FFT size, window length, hop length and the other PCEN values can be changed there too.
Outputs
A default run returns the cleaned audio as spectral_gating.mp3 and a plot as spectral_gating_plot.png. Every other method or chain you tick adds its own file and plot, such as spectral_pcen.mp3 for spectral gating followed by PCEN and all_combined.mp3 for all three. The page samples are two before-and-after pairs: samples 1 and 3 are the noisy originals, 2 and 4 the cleaned results.
Recommended settings
- Match the sample rate to your source file.
- If quiet syllables drop out, lower n-std-thresh. If noise is still audible between words, raise it or move prop-decrease closer to 1.
- Larger FFT and window sizes resolve frequency more finely and smear timing detail.
- librosa's PCEN defaults are gain 0.98 and time constant 0.4, and its docs call a gain slightly under 1 typical. This page starts at 1.9 and 0.8, so lower the gain first if a PCEN run sounds overprocessed.
Limitations
- The gate works on level per frequency band, so noise as loud as the wanted sound in that band, such as other voices or music under speech, stays in.
- There is no field for a separate noise-only clip, so seconds 5 to 6 of the file should hold background noise only. Speech or music in that second raises the threshold and cuts into the wanted sound, and a file shorter than 6 seconds leaves the gate less than a full second of noise to measure, or none. The highpass cutoff cannot be changed, and stereo files are mixed down to mono.
- In the page samples the cleaned files peak 6 to 8 dB below the originals, so add gain afterwards if loudness has to match.
Safety & compliance
If a recording contains another person's voice, make sure you have their consent to process it.
API quick start
Run noise-reduction with a single API call.
{
"sampleRate": 44100,
"inputAudioUrl": "https://your-cdn.com/input.mp3",
"spectralGating": true,
"pcen": false
}curl -X POST "https://api.wiro.ai/v1/Run/librosa/noise-reduction" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_WIRO_API_KEY" \
--data-binary @- <<'JSON'
{
"sampleRate": 44100,
"inputAudioUrl": "https://your-cdn.com/input.mp3",
"spectralGating": true,
"pcen": false
}
JSONOther models you might like
Explore similar audio & speech models.



