/ Модель

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

Лицензия
Apache 2.0
Архитектура
deepfilternet3 · dense
Базовая модель
DeepFilterNet3
Библиотека
mlx
Опубликована
25 июл 2026

DeepFilterNet3-MLX

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

Конверсия DeepFilterNet3 для MLX на Apple Silicon, очищающая речь от фонового шума.

96скачиваний за 30 дней0лайковвеса обновлены25 июл 2026

Бенчмарки

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

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

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

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

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

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

aufklarer/DeepFilterNet3-MLX — версия DeepFilterNet3, подготовленная для запуска на Apple Silicon с библиотекой MLX. Модель содержит около 2,13 млн параметров в формате float32 safetensors; её архитектура включает энкодер, ERB-декодер и декодер глубокой фильтрации. Она обрабатывает речевой аудиосигнал с частотой 48 кГц, используя 10-миллисекундные кадры и упреждение на два кадра (20 мс).

Модель предназначена для шумоподавления и улучшения речи, например, при очистке записей или обработке аудио в реальном времени. В репозитории находятся сетевые веса и DSP-константы; полный конвейер аудио-входа и аудио-выхода требует реализации STFT, извлечения ERB-признаков и постобработки DeepFilterNet. Автор README сообщает о совпадении результатов сети на MLX CPU с PyTorch FP32 и приводит метрики тестирования на 30 клипах VoiceBank-DEMAND.

Это конверсия официального чекпойнта Rikorose/DeepFilterNet3 с объединёнными слоями BatchNorm, а не новая обученная модель. Репозиторий указывает лицензию Apache-2.0. Модель рассчитана на Apple Silicon и не предназначена для универсальной обработки аудио без соответствующего DSP-конвейера.

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

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

Ограничения

Для полного преобразования аудио требуется внешний DSP-конвейер DeepFilterNet; веса подготовлены для MLX и ориентированы на Apple Silicon. Указанные метрики основаны на тесте из 30 клипов VoiceBank-DEMAND.

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

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

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

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

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

Открыть на Hugging Face

DeepFilterNet3 — MLX

Real-time speech enhancement for Apple Silicon. Removes background noise from speech audio. FP32 MLX weights converted from the official DeepFilterNet3 checkpoint, with BatchNorm fused into the convolutions.

  • 2.1M params, fp32 safetensors, 8.1 MB
  • 48 kHz native, 10 ms frames, 2-frame (20 ms) lookahead
  • Network-only export: STFT, ERB feature extraction, and deep-filter application live in the runtime (auxiliary.npz ships the exact DSP constants)

Model

DetailValue
ArchitectureDeepFilterNet3 (encoder + ERB decoder + deep-filter decoder)
Parameters2,131,824 (BatchNorm fused, GRU biases folded)
Precisionfloat32
Sample rate48 kHz (FFT 960, hop 480)
ERB bands / DF bins32 / 96
Deep-filter order5, lookahead 2 frames

Files

FileSizeDescription
model.safetensors8.1 MBfp32 network weights in MLX layouts
auxiliary.npz126 KBERB filterbank + inverse, Vorbis window, normalization init states
config.json1 KBModel and DSP hyperparameters
dfn3_mlx.py9 KBPure-MLX reference implementation of the network

Quality

30 VoiceBank-DEMAND test clips (16 kHz mirror, resampled to 48 kHz for the model); the neural network forward runs on MLX while STFT / ERB / deep-filter post-processing stay in the upstream PyTorch pipeline — the same methodology used for the CoreML variant.

BackendPESQSTOISI-SDR
Noisy input2.2050.9329.28
PyTorch FP32 (reference)2.9000.94718.19
MLX, CPU stream2.9000.94718.19
MLX, GPU stream2.9020.94718.18

Network outputs match PyTorch within 9e-7 on the MLX CPU stream — numerically exact for fp32. The GPU stream uses Metal fast-math transcendentals (max output delta ~4e-3) with no measurable metric impact.

Latency (Apple M5 Pro, network forward only, Python MLX)

DurationGPURTFCPURTF
5 s0.14 s0.0280.18 s0.036
10 s0.29 s0.0290.40 s0.039
20 s0.54 s0.0270.79 s0.040

Usage

import sys

import mlx.core as mx
from huggingface_hub import snapshot_download

model_dir = snapshot_download("aufklarer/DeepFilterNet3-MLX")
sys.path.append(model_dir)
from dfn3_mlx import DFN3MLX

model = DFN3MLX(model_dir)

# Normalized features from your DSP front-end (constants in auxiliary.npz):
feat_erb = mx.zeros((1, 100, 32, 1))   # ERB features, dB-scaled + mean-normalized
feat_spec = mx.zeros((1, 100, 96, 2))  # complex spectrum (real, imag), unit-normalized

erb_mask, df_coefs, lsnr = model(feat_erb, feat_spec)

Full audio-in/audio-out enhancement additionally needs the DeepFilterNet DSP path (STFT → features → ERB mask + deep filtering → iSTFT), documented in the upstream repository.

On Apple devices, speech-swift runs this model directly via its MLX engine (or use the CoreML variant for the Neural Engine):

import SpeechEnhancement

let enhancer = try await SpeechEnhancer.fromPretrained(engine: .mlx)
let clean = try enhancer.enhance(audio: noisyAudio, sampleRate: 48000)

CLI:

swift run speech denoise noisy.wav --engine mlx

Tensor contract

Channels-last [B, T, F, C] — time is the conv H axis, frequency the W axis. The 2-frame lookahead shift is applied to the inputs inside the model.

DirectionNameShapeNotes
inputfeat_erb[B, T, 32, 1]ERB features, dB-scaled, exp-mean-normalized
inputfeat_spec[B, T, 96, 2]complex spectrum features, unit-normalized
outputerb_mask[B, T, 32, 1]sigmoid ERB gain mask
outputdf_coefs[B, 5, T, 96, 2]deep-filter coefficients (order, real/imag)
outputlsnr[B, T, 1]local SNR estimate, dB in [-15, 35]

Weight conventions

  • Conv2d: [O, kH, kW, I/groups] (PyTorch [O, I/g, kH, kW] transposed); causal time padding, symmetric frequency padding
  • Depthwise ConvTranspose2d (erb_dec.convt{1,2}.dwt): [C, kH, kW, 1], true transposed-conv kernels (not pre-flipped); k=(1,3), freq stride 2, padding 1, output padding 1
  • GRU (mlx.nn.GRU convention, gate order r/z/n): Wx = weight_ih, Wh = weight_hh, b = bias_ih + [bias_hh_r; bias_hh_z; 0], bhn = bias_hh_n; run with an explicit zero initial hidden state
  • Grouped linear: [groups, in/groups, out/groups], applied as einsum("btgi,gih->btgh") then flattened
  • BatchNorm is fused into the preceding conv; the unused df_fc_a head is dropped

Source

License

  • Model weights: Apache-2.0 / MIT dual license
  • MLX conversion: Apache-2.0

Links

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

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

GPU в ailist

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

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

MLX-модели работают только на Apple Silicon.

Ревизия весов
8f9ba6a

0 моделей