DPDFNet: Boosting DeepFilterNet2 via Dual-Path RNN
Paper
• 2512.16420 • Published
DPDFNet is a family of causal, single‑channel speech enhancement models for real‑time noise suppression.
It builds on DeepFilterNet2 by adding Dual‑Path RNN (DPRNN) blocks in the encoder for stronger long‑range modeling while staying streaming‑friendly.
Links
*.tflite (root)onnx/*.onnxcheckpoints/*.pth| Model | DPRNN blocks | Params (M) | MACs (G) |
|---|---|---|---|
baseline |
0 | 2.31 | 0.36 |
dpdfnet2 |
2 | 2.49 | 1.35 |
dpdfnet4 |
4 | 2.84 | 2.36 |
dpdfnet8 |
8 | 3.54 | 4.37 |
| Model | DPRNN blocks | Params (M) | MACs (G) |
|---|---|---|---|
dpdfnet2_48khz_hr |
2 | 2.58 | 2.42 |
pip install dpdfnet
# Enhance one file
dpdfnet enhance noisy.wav enhanced.wav --model dpdfnet4
# Enhance a directory
dpdfnet enhance-dir ./noisy_wavs ./enhanced_wavs --model dpdfnet2
# Download models
dpdfnet download
dpdfnet download dpdfnet8
dpdfnet download dpdfnet4 --force
import soundfile as sf
import dpdfnet
# In-memory enhancement:
audio, sr = sf.read("noisy.wav")
enhanced = dpdfnet.enhance(audio, sample_rate=sr, model="dpdfnet4")
sf.write("enhanced.wav", enhanced, sr)
# Enhance one file:
out_path = dpdfnet.enhance_file("noisy.wav", model="dpdfnet2")
print(out_path)
# Model listing:
for row in dpdfnet.available_models():
print(row["name"], row["ready"], row["cached"])
# Download models:
dpdfnet.download() # All models
dpdfnet.download("dpdfnet4") # Specific model
@article{rika2025dpdfnet,
title = {DPDFNet: Boosting DeepFilterNet2 via Dual-Path RNN},
author = {Rika, Daniel and Sapir, Nino and Gus, Ido},
year = {2025}
}
Apache-2.0