aufklarer/DeepFilterNet3-CoreML
43.5k
DeepFilterNet3 — CoreML INT8
Real-time speech enhancement for Apple Silicon. Removes background noise from speech audio. Runs on Neural Engine via CoreML.
- 2.1M params, INT8 k-means palettization, 2.2 MB
- 48 kHz native, 10 ms frames
- Requires macOS 14+ / iOS 17+
Quality
Measured on 30 VoiceBank-DEMAND test clips via Python CoreMLBackend (replaces only the NN forward; keeps the PyTorch STFT / ERB / deep-filter post-processing intact).
INT8 matches FP16 within run-to-run noise (ΔPESQ +0.006, ΔSI-SDR −0.07 dB, STOI identical) while cutting size by 48%.
Latency (M2 Max)
Files
Usage
Add speech-swift to Package.swift:
.package(url: "https://github.com/soniqo/speech-swift", branch: "main")Then denoise:
import SpeechEnhancement
let enhancer = try await SpeechEnhancer.fromPretrained()
let clean = try enhancer.enhance(audio: noisyAudio, sampleRate: 48000)CLI:
swift run audio denoise noisy.wav --output clean.wavSource
- Base model: Rikorose/DeepFilterNet3 (Apache-2.0)
License
- Model weights: Apache-2.0 / MIT dual license
- CoreML conversion: Apache-2.0
Links
- speech-swift — Apple SDK
- soniqo.audio — website
- MLX vs CoreML on Apple Silicon — a practical guide — related blog post
- soniqo.audio/blog — blog
