skillfed

noisereduce

Noise reduction using Spectral Gating in Python

noisereduce v3.0.3 513.5K downloads/30d#6,245 on PyPI1,871
Permissive license MIT AGING released

What it is and what it does

Noisereduce is a spectral-gating noise reduction library for Python that removes unwanted noise from audio and time-domain signals like speech, bioacoustics, and physiological recordings. It works by computing a spectrogram, estimating a noise threshold for each frequency band, and applying a mask to gate out noise below that threshold. The package offers two main algorithms: stationary noise reduction, which applies a fixed threshold across the entire signal, and non-stationary noise reduction, which continuously adapts the threshold over time—useful when you know the timescale of your signal of interest.

Version 3 introduced a PyTorch-based implementation alongside the original scipy-based approach, substantially reducing runtime. The library handles both single-channel and multi-channel audio, supports parallel processing for larger datasets via joblib, and provides fine-grained control over parameters like frequency smoothing, time smoothing, and sensitivity. It depends on scipy, numpy, matplotlib, tqdm, and joblib, making it straightforward to integrate into existing signal-processing pipelines.

Use it for:

  • Clean up speech recordings or voice calls by removing background noise while preserving intelligibility.
  • Denoise bioacoustic recordings (bird calls, animal vocalizations) to improve detection and analysis.
  • Reduce noise in physiological signals (ECG, EMG, EEG) for cleaner downstream analysis.
  • Preprocess audio data before feeding it into machine learning models for speech or sound recognition.
  • Batch-process large audio datasets using parallel processing to reduce computation time.
  • Fine-tune noise reduction parameters per frequency band for domain-specific signal characteristics.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Reduces noise in audio and time-domain signals using spectral gating, with both stationary and non-stationary algorithms and optional PyTorch-based implementations.

Yes, if you need spectral-gating noise reduction for audio or time-domain signals. The library is mature, well-maintained, has no known vulnerabilities, and offers both simple and advanced use cases. The aging maintenance status (677 days since last release) is a minor concern but not a blocker given the stable API and active repository. Install it for speech, bioacoustics, or physiological signal denoising.

Install

noisereduce on PyPI

pip

pip install noisereduce

uv

uv add noisereduce

poetry

poetry add noisereduce

Installing noisereduce

Before you install

Low friction installation with five well-established dependencies (scipy, numpy, matplotlib, tqdm, joblib). Maintenance status is aging—677 days since the last release—but the repository remains active and unarchived with 1871 stars.

License in practice

MIT license is permissive, allowing commercial and private use with minimal restrictions; you must retain the license notice in distributions.

Quickstart

from scipy.io import wavfile
import noisereduce as nr
rate, data = wavfile.read("mywav.wav")
reduced_noise = nr.reduce_noise(y=data, sr=rate)
wavfile.write("mywav_reduced_noise.wav", rate, reduced_noise)

Verify before relying

  • Whether PyTorch is an optional or required dependency for version 3.0.3 (description mentions PyTorch-based implementation but PyTorch is not listed in runtime dependencies).
  • Current performance characteristics and runtime improvements claimed in version 3 updates.
  • Compatibility with modern Python versions (requires_python is unspecified in metadata).

Package facts

License MIT (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 5 — scipy, matplotlib, numpy, tqdm, joblib
Maintenance aging — 677 days since the last release
Last repo commit
First released
Downloads 513,533/month — #6,245 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: noisereduce-3.0.3-py3-none-any.whl

Intended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: EducationTopic :: Scientific/Engineering

Tags

audio noise reductionspectral gating denoisingspeech noise removalsignal denoising pythonbioacoustic noise filteringtime-domain signal cleaningnoise gate algorithm
audio-processingsignal-denoisingspectral-analysis

More Scientific/Engineering packages