noisereduce
Noise reduction using Spectral Gating in Python
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
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 · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing commercial and private use with minimal restrictions; you must retain the license notice in distributions.
last release 2024-10-06 (677 days) · last repo commit 2025-08-19 · 1,871 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 513,533 downloads/mo, #6,245 on PyPI
Alternatives
Verify before relying
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)- 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).
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 on it.
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
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 packagesscipymatplotlibnumpytqdmjoblib |
| 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 |
| Classifiers | Intended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: EducationTopic :: Scientific/Engineering |
Evidence: noisereduce-3.0.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “audio noise reduction”
- noisereduceReduces noise in audio and time-domain signals using spectral gating,…
- pyrnnoisePython bindings for RNNoise that perform real-time noise suppression…
- pystoiComputes Short Term Objective Intelligibility (STOI) measures for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also deepfilternet · Gammatone · audiomentations · julius · pystoi · pyrnnoise · PyWavelets · antropy · torchaudio · neurokit2