Noisereduce: Domain General Noise Reduction for Time Series Signals
Tim Sainburg, Asaf Zorea
TL;DR
Noisereduce tackles the challenge of denoising time-series signals without training data by employing spectral gating to estimate a frequency-domain mask from noise statistics. The method constructs a mask via STFT-based statistics (with a per-frequency threshold $thresh_n(f)=\mu_n(f)+k\cdot\sigma_n(f)$) and applies it to the signal's spectrogram, then reconstructs the denoised signal through iSTFT; a nonstationary variant uses sliding-window statistics to adapt thresholds over time. Across speech, bioacoustics, electrophysiology, and seismology, Noisereduce outperforms conventional baselines on several metrics (e.g., STOI, PESQ, SDR, SegSNR, AUC), while deep-learning denoisers may achieve higher scores at significantly greater computational cost. The GPU-accelerated implementation enables real-time or near-real-time processing, and the approach provides a lightweight, domain-general baseline for evaluating more complex ML-based denoising methods. The authors also provide open-source code and extensive supplementary materials to support reproducibility and broader application.
Abstract
Extracting signals from noisy backgrounds is a fundamental problem in signal processing across a variety of domains. In this paper, we introduce Noisereduce, an algorithm for minimizing noise across a variety of domains, including speech, bioacoustics, neurophysiology, and seismology. Noisereduce uses spectral gating to estimate a frequency-domain mask that effectively separates signals from noise. It is fast, lightweight, requires no training data, and handles both stationary and non-stationary noise, making it both a versatile tool and a convenient baseline for comparison with domain-specific applications. We provide a detailed overview of Noisereduce and evaluate its performance on a variety of time-domain signals.
