pyrnnoise
PyRnNoise
What it is and what it does
pyrnnoise wraps RNNoise, a neural network model for suppressing background noise in speech audio. It provides both a command-line tool (denoise) and a Python API (RNNoise class) to process audio files or streams. The package accepts mono or stereo WAV files, applies noise reduction frame-by-frame, and returns both the denoised audio and voice activity detection probabilities for each frame.
The package depends on numpy for array handling, audiolab for audio I/O, click for CLI scaffolding, matplotlib for visualization, and tqdm for progress indication. Installation requires pre-built wheels for your platform; building from source requires CMake and the RNNoise C library. Maintenance is aging (last commit 212 days ago), and the license treatment is unclear in the metadata, so verification is recommended before production use.
Use it for:
- Preprocess noisy speech recordings before transcription or voice recognition tasks.
- Clean up audio from meetings, podcasts, or field recordings in batch processing pipelines.
- Real-time speech enhancement in communication applications or live streaming.
- Analyze voice activity detection probabilities to segment speech from silence or background noise.
- Denoise stereo audio files while preserving spatial characteristics.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python bindings for RNNoise that perform real-time noise suppression on speech audio via a recurrent neural network, with both command-line and programmatic interfaces for processing audio files and streams.
Yes, if you need speech noise reduction and can verify the license. The package is stable, has no known vulnerabilities, and offers both CLI and API access. Medium install friction is manageable for most environments. Caveat: license treatment is unclear in metadata—confirm the Apache 2.0 license in the repository matches your use case before deployment.
Install
pyrnnoise on PyPI
pip
pip install pyrnnoiseuv
uv add pyrnnoisepoetry
poetry add pyrnnoiseInstalling pyrnnoise
Before you install
Medium install friction due to compiled wheels for multiple platforms (macOS, Linux x86_64, Linux aarch64, Windows). Five runtime dependencies (audiolab, click, matplotlib, numpy, tqdm) add some weight. Last commit 2026-01-14 and aging maintenance status suggest the project is stable but not actively developed.
License in practice
License treatment is unclear—no SPDX identifier or raw license text provided in metadata. Check the repository's LICENSE file before use in proprietary or redistributed work.
Quickstart
pip install pyrnnoise
from pyrnnoise import RNNoise
denoiser = RNNoise(sample_rate=48000)
for speech_prob in denoiser.denoise_wav("input.wav", "output.wav"):
print(f"Speech probability: {speech_prob}")
Requires audio files in WAV format; sample_rate must match the audio being processed (48000 Hz is typical).
Verify before relying
- Minimum Python version and exact Python version support are unspecified in metadata.
- Whether audiolab is a required runtime dependency or optional for certain features.
- Real-time performance characteristics and latency for streaming use cases.
- Supported audio formats beyond WAV and stereo/mono channel limits.
Package facts
| License | not declared (unclear) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 5 — audiolab, click, matplotlib, numpy, tqdm |
| Maintenance | aging — 212 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 138,866/month — #11,316 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyrnnoise-0.4.3-py3-none-macosx_15_0_universal2.whl; pyrnnoise-0.4.3-py3-none-manylinux1_x86_64.whl; pyrnnoise-0.4.3-py3-none-manylinux2014_aarch64.whl; pyrnnoise-0.4.3-py3-none-win_amd64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
deepfilternetDeepFilterNet removes background noise from…
permissive · top 15,000 on PyPI
pymicro-vadA self-contained voice activity detector that…
permissive · top 15,000 on PyPI
pystoiComputes Short Term Objective Intelligibility…
permissive · top 5,000 on PyPI
noisereduceReduces noise in audio and time-domain signals…
permissive · top 15,000 on PyPI
livekit-plugins-noise-cancellationApplies real-time noise cancellation to inbound…
unclear · top 5,000 on PyPI
livekit-plugins-ai-cousticsA LiveKit plugin that applies Ai-coustics audio…
unclear · top 15,000 on PyPI
webrtcvadProvides a Python interface to Google's WebRTC…
permissive · top 15,000 on PyPI
webrtcvad-wheelsDetects voiced versus unvoiced segments in…
permissive · top 15,000 on PyPI
openwakewordopenWakeWord detects wake words and phrases in…
permissive · top 15,000 on PyPI
aic-sdkPython bindings for ai-coustics audio…
permissive · top 15,000 on PyPI