/ Модель

Характеристики

Лицензия
Apache 2.0
Опубликована
17 дек 2025

DPDFNet

Обработка аудиоАудио → аудио3 профессии

DPDFNet — семейство потоковых одно-канальных моделей для подавления шума в речи в реальном времени.

391скачиваний за 30 дней17лайковвеса обновлены5 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

DPDFNet — семейство одно-канальных каузальных моделей подавления шума в речи, разработанное авторами работы «DPDFNet: Boosting DeepFilterNet2 via Dual-Path RNN». Модели предназначены для потоковой обработки аудио в реальном времени и развивают DeepFilterNet2, добавляя в энкодер блоки Dual-Path RNN для моделирования более дальних зависимостей.

В семействе представлены варианты для аудио с частотой дискретизации 8, 16 и 48 кГц. Размер моделей составляет примерно 2,3–3,6 млн параметров; доступны веса PyTorch, ONNX и TFLite. Реализация потокового инференса сохраняет состояние RNN между фрагментами и выдаёт очищенный звук по мере накопления кадров. В репозитории рекомендован запуск ONNX на CPU.

Модель принимает зашумлённую речь и выдаёт улучшенный аудиосигнал. Карточка не описывает языковую специализацию и не приводит измерений качества или подробных ограничений применимости. Лицензия — Apache-2.0.

Сценарии применения

  • подавление фонового шума при разговоре через микрофон
  • очистка речи в потоковом аудиопотоке
  • шумоподавление в голосовых звонках
  • предварительная очистка аудио перед распознаванием речи

Ограничения

Модель рассчитана на одно-канальный сигнал; для потоковой обработки требуется учитывать частоту дискретизации конкретного варианта. В карточке не приведены сравнительные метрики качества.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

DPDFNet

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


What’s in this repo

  • TFLite: *.tflite (root)
  • ONNX: onnx/*.onnx
  • PyTorch checkpoints: checkpoints/*.pth

Model variants

8 kHz narrowband model

ModelDPRNN blocksParams (M)MACs (G)
dpdfnet2_8khz22.511.29
dpdfnet8_8khz83.563.99

16 kHz wideband models

ModelDPRNN blocksParams (M)MACs (G)
baseline02.310.36
dpdfnet222.491.35
dpdfnet442.842.36
dpdfnet883.544.37

48 kHz fullband model

ModelDPRNN blocksParams (M)MACs (G)
dpdfnet2_48khz_hr22.582.42
dpdfnet8_48khz_hr83.637.17

Recommended inference (CPU-only, ONNX)

pip install dpdfnet

CLI

# Enhance one file
dpdfnet enhance noisy.wav enhanced.wav --model dpdfnet4

# Enhance a directory (uses all CPU cores by default)
dpdfnet enhance-dir ./noisy_wavs ./enhanced_wavs --model dpdfnet2

# Enhance a directory with a fixed worker count
dpdfnet enhance-dir ./noisy_wavs ./enhanced_wavs --model dpdfnet2 --workers 4

# Download models
dpdfnet download
dpdfnet download dpdfnet8
dpdfnet download dpdfnet4 --force

Python API

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

Real-time Microphone Enhancement

Install sounddevice (not included in dpdfnet dependencies):

pip install sounddevice

StreamEnhancer processes audio chunk-by-chunk, preserving RNN state across calls. Any chunk size works; enhanced samples are returned as soon as enough data has accumulated for the first model frame (20 ms).

import numpy as np
import sounddevice as sd
import dpdfnet

INPUT_SR   = 48000
# Use one model hop (10 ms) as the block size so process() returns
# exactly one hop's worth of enhanced audio on every callback.
BLOCK_SIZE = int(INPUT_SR * 0.010)   # 480 samples at 48 kHz

enhancer = dpdfnet.StreamEnhancer(model="dpdfnet2_48khz_hr")

def callback(indata, outdata, frames, time, status):
    mono_in = indata[:, 0] if indata.ndim > 1 else indata.ravel()
    enhanced = enhancer.process(mono_in, sample_rate=INPUT_SR)
    n = min(len(enhanced), frames)
    outdata[:n, 0] = enhanced[:n]
    if n < frames:
        outdata[n:] = 0.0   # silence while the first window accumulates

with sd.Stream(
    samplerate=INPUT_SR,
    blocksize=BLOCK_SIZE,
    channels=1,
    dtype="float32",
    callback=callback,
):
    print("Enhancing microphone input - press Ctrl+C to stop")
    try:
        while True:
            sd.sleep(100)
    except KeyboardInterrupt:
        pass

# Optional: drain the final partial window at the end of a recording
tail = enhancer.flush()

[!NOTE] Latency
The first enhanced output arrives after one full model window (~20 ms) has been buffered. All subsequent blocks are returned with ~10 ms additional delay.

Sample rate
StreamEnhancer resamples internally. Pass your device's native rate as sample_rate; the return value is at the same rate.

Block size
Using BLOCK_SIZE = int(SR * 0.010) (one model hop) gives one enhanced block per callback. Other sizes also work but may produce empty returns while the buffer fills.

Multiple streams
Create a separate StreamEnhancer per stream. Call enhancer.reset() between independent audio segments to clear RNN state.


Citation

@article{rika2025dpdfnet,
  title  = {DPDFNet: Boosting DeepFilterNet2 via Dual-Path RNN},
  author = {Rika, Daniel and Sapir, Nino and Gus, Ido},
  year   = {2025}
}

License

Apache-2.0

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Обработка «аудио → аудио» пока не поддерживается.

Ревизия весов
dd6818d

0 моделей