denoise-audio
A CLI tool for denoising WAV audio with 3 leading backends:
- rnnoise (fast, CPU-only, low-latency)
- deepfilternet (high-quality full-band denoising)
- fbdenoiser (FacebookResearch Denoiser / causal Demucs; strong enhancement)
Inputs/outputs are WAV files. If your audio is not WAV, convert it first.
Install with pip (PyPI)
Use this if you want to install and use the tool without cloning the repo. Requires (Python ==3.10.*).
Install with pip (PyPI)
Use this if you want to install and use the tool without cloning the repo.
Install
pip install denoise-audio
CLI usage (pip)
Global help:
python -m denoise --help
List available backends:
python -m denoise --list-models
Model-specific help:
python -m denoise --model rnnoise --help
python -m denoise --model deepfilternet --help
python -m denoise --model fbdenoiser --help
Basic command (all models):
python -m denoise --model <model> --input <in.wav> --output <out.wav>
<model>is one of:rnnoise,deepfilternet,fbdenoiser--inputand--outputmust be WAV files
Recommended environment (Python 3.10)
A fresh virtual environment with Python 3.10 is recommended to avoid dependency conflicts.
Troubleshooting: wheel / packaging conflicts
Some environments may already have a newer wheel installed that requires packaging>=24, while deepfilternet requires packaging<24.
If you see an error mentioning a wheel/packaging conflict, use a clean venv (recommended) or pin compatible versions:
python -m pip install --upgrade "packaging>=23,<24" "wheel<0.46"
python -m pip install --upgrade --force-reinstall denoise-audio
Python usage (import)
You can also use this package directly in your Python code after installing with pip install denoise-audio.
Quick sanity check
python -c "import denoise; print(denoise.__version__)"
List available models/backends
from denoise import available_models, backend_help
print(available_models())
print(backend_help())
Inspect supported keyword arguments for each model
from denoise import model_kwargs_help
print(model_kwargs_help("rnnoise"))
print(model_kwargs_help("deepfilternet"))
print(model_kwargs_help("fbdenoiser"))
Run denoising from a Python file
Create run_denoise.py:
from denoise import denoise_file
IN_WAV = "input.wav"
OUT_WAV = "output.wav"
# Choose one: rnnoise | deepfilternet | fbdenoiser
MODEL = "rnnoise"
# Model-specific kwargs (examples below)
kwargs = {}
# Example: RNNoise
# kwargs = {"rnnoise_sample_rate": 48000}
# Example: DeepFilterNet
# kwargs = {"df_model": "DeepFilterNet3", "df_pf": True, "df_compensate_delay": True}
# Example: FacebookResearch Denoiser
# kwargs = {"fb_model": "dns64", "fb_device": "cpu", "fb_dry": 1.0}
for _ in denoise_file(IN_WAV, OUT_WAV, model=MODEL, **kwargs):
pass
print(f"Wrote: {OUT_WAV}")
Run it:
python run_denoise.py
Install from GitHub (uv)
Install uv using Astral’s standalone installer:
https://docs.astral.sh/uv/getting-started/installation/#standalone-installer
Verify:
uv --version
Install dependencies
git clone https://github.com/Surya-Rayala/denoise-audio.git
cd denoise-audio
uv sync
CLI usage
Run everything with uv run to ensure you’re using the project environment:
Global help
uv run python -m denoise --help
List available backends
uv run python -m denoise --list-models
Model-specific help
Pass --model <name> and --help to see only that backend’s options:
uv run python -m denoise --model rnnoise --help
uv run python -m denoise --model deepfilternet --help
uv run python -m denoise --model fbdenoiser --help
Basic command (all models)
uv run python -m denoise --model <model> --input <in.wav> --output <out.wav>
<model>is one of:rnnoise,deepfilternet,fbdenoiser--inputand--outputmust be WAV files
Models
RNNoise (--model rnnoise)
Basic command
uv run python -m denoise --model rnnoise --input <in.wav> --output <out.wav>
Arguments
--rnnoise-sample-rate <int>: Force the RNNoise wrapper sample rate. If omitted, the tool infers the sample rate from the input WAV (recommended).
DeepFilterNet (--model deepfilternet)
Basic command
uv run python -m denoise --model deepfilternet --input <in.wav> --output <out.wav>
Arguments
--df-model <name>: Select which pretrained DeepFilterNet model to load. Common options:DeepFilterNet,DeepFilterNet2,DeepFilterNet3.- To see available models, visit: https://github.com/Rikorose/DeepFilterNet/tree/main/models
--df-pf: Enable the post-filter (can reduce residual noise; may sound more aggressive in very noisy sections).--df-compensate-delay: Add padding to compensate processing delay (useful when you need better alignment with the original audio).
FacebookResearch Denoiser (--model fbdenoiser)
Basic command
uv run python -m denoise --model fbdenoiser --input <in.wav> --output <out.wav>
Arguments
--fb-model <name>: Choose the pretrained model:dns48: pre-trained real time H=48 model trained on DNSdns64: pre-trained real time H=64 model trained on DNSmaster64: pre-trained real time H=64 model trained on DNS and Valentini
--fb-device <device>: Inference device, e.g.cpuorcuda. If omitted, it automatically uses CUDA if available, otherwise CPU.--fb-dry <float>: Dry/wet mix (0.0= original input only,1.0= denoised output only). Values outside[0.0, 1.0]are clamped.--fb-streaming: Enable streaming mode (flag is accepted by the CLI).--fb-batch-size <int>: Batch size (flag is accepted by the CLI).--fb-num-workers <int>: Number of workers (flag is accepted by the CLI).--fb-verbose: Enable verbose logging (flag is accepted by the CLI).
Updating from Git
If you’re using the repo locally with uv sync + uv run, updating to new code from Git is:
cd denoise-audio
git pull
uv sync
If you have local changes and git pull refuses
Use one of these (pick what you intend):
- Keep your local changes and rebase on top:
git pull --rebase
uv sync
- Discard local changes and reset to remote (⚠️ destructive):
git fetch origin
git reset --hard origin/main
uv sync
License
This project's source code is licensed under the MIT License.
Note on Dependencies: This tool relies on the denoiser library (Facebook Research), which is licensed under CC-BY-NC 4.0 (Non-Commercial). Consequently, this tool as a whole is suitable for research and personal use only, unless you obtain a commercial license for the denoiser dependency.
Metadata
Release files for denoise-audio 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| denoise_audio-0.1.2.tar.gz | 17.2 kB | Without provenance | Details for denoise_audio-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| denoise_audio-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for denoise_audio-0.1.2-py3-none-any.whl |
Total release size: 35.3 kB
Release files / denoise_audio-0.1.2.tar.gz
| Download URL | denoise_audio-0.1.2.tar.gz |
|---|---|
| Size | 17.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
43780e48842b08a56f383a9ebf8e5fcc80406f08f1788762d48ec5536a353c18
|
|
BLAKE2b-256 checksum How to use checksums |
6a4d0af9247a9eeb8ce7315aa5e5d0b44bfe0556ee20bd69f6d84b7494134226
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / denoise_audio-0.1.2-py3-none-any.whl
| Download URL | denoise_audio-0.1.2-py3-none-any.whl |
|---|---|
| Size | 18.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6cfc27bcd308ccc160d33a54db6d7010efd9bd50ebd5ff495af8955c4f02fd33
|
|
BLAKE2b-256 checksum How to use checksums |
4b14ca5559cab52b09456bde7a3b469800b2259d9798e62fe11599db08ad5afe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for denoise-audio 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.