Konuşma İyileştirme — DeepFilterNet3

DeepFilterNet3 kullanarak konuşma kayıtlarındaki arka plan gürültüsünü temizleyin. Model, verimli çıkarım için CoreML üzerinden Neural Engine'de çalışır; tüm sinyal işleme (STFT, ERB filtre bankası, deep filtering) ise Accelerate/vDSP üzerinden CPU'da koşar.

Resmî DF3 ile eşdeğer kalite

DSP yolunun tamamı libdf ile uyumludur: analiz ölçeği 1/960, normalleştirme alpha değeri 0.99, derin filtre sınırlarında sıfır dolgusu ve doğru NumPy C/Fortran matris sırası. Sabit 20 kliplik VoiceBank-DEMAND alt kümesinde Swift; PESQ 3,097, STOI 0,964 ve SI-SDR 19,12 dB elde ederken resmî Python DF3 3,029, 0,962 ve 18,31 dB elde etti.

Önce/sonra örneği

CoreML denoiser etkisini yerelde çalıştırmadan önce duymak için DeepFilterNet3 ile işlenmiş gürültülü bir konuşma klibi.

Gürültülü girişMP3, 48 kHz
DeepFilterNet3 çıkışıMP3, 48 kHz

Mimari

DeepFilterNet3, spektral zarf iyileştirmesini ince taneli spektral detay kurtarmadan ayıran çift-decoder bir mimariye sahiptir.

AşamaAyrıntılar
STFTvDSP üzerinden kısa zamanlı Fourier dönüşümü
Encoder4 SepConv2d katmanı + SqueezedGRU
ERB DecoderERB ölçeğindeki frekans bantlarına uygulanan sigmoid maske
DF Decoder5-tap karmaşık değerli filtreleme katsayıları
iSTFTZaman alanındaki sinyali yeniden oluşturmak için ters STFT

ERB Decoder, Eşdeğer Dikdörtgen Bant Genişliği (ERB) ölçeğinde bir kazanç maskesi tahmin ederek geniş spektral şekillendirmeyi yönetir. DF Decoder ise ince detay için 5-tap karmaşık filtreleme katsayıları öngörerek öğrenilmiş filtreleri doğrudan frekans alanında uygular.

İşleme Pipeline'ı

  1. STFT — Gürültülü sesi vDSP ile zaman-frekans temsiline ayrıştırın
  2. ERB Özellikleri — STFT bin'lerini ERB ölçeğindeki frekans bantlarına eşleyin
  3. Sinir Ağı — Encoder, özellikleri Neural Engine'de işler; ERB ve DF decoder'ları iyileştirme parametrelerini tahmin eder
  4. ERB Maskelemesi — Spektral zarftaki gürültüyü bastırmak için sigmoid kazanç maskesi uygulayın
  5. Deep Filtering — İnce spektral detay kurtarma için 5-tap karmaşık katsayıları uygulayın
  6. iSTFT — İyileştirilmiş spektrumdan temiz sesi yeniden oluşturun

Model

VaryantBoyutHassasiyet
Varsayılan~2.2 MB8-bit paletli ağırlıklar, FP16 hesaplama

CLI Kullanımı

# Denoise audio (output to _denoised.wav)
.build/release/speech denoise noisy.wav

# Specify output file
.build/release/speech denoise noisy.wav -o clean.wav

# Use another compatible HuggingFace repository
.build/release/speech denoise noisy.wav --model owner/DeepFilterNet3-CoreML

Seçenekler

SeçenekAçıklama
--output, -oÇıktı dosya yolu (varsayılan <input>_denoised.wav)
--modelUyumlu HuggingFace model deposu kimliği (varsayılan: aufklarer/DeepFilterNet3-CoreML)
Önemli

DeepFilterNet3, MLX üzerinden GPU'da değil, CoreML üzerinden Neural Engine'de çalışır. Bu, diğer GPU tabanlı modeller (ASR, TTS) çalışırken bile verimli çalıştığı anlamına gelir. metallib derlemesine gerek yoktur.

Model İndirmeleri

ModelBoyutHuggingFace
DeepFilterNet3 (CoreML, 8-bit paletli)~2.2 MBaufklarer/DeepFilterNet3-CoreML

Diğer Modellerle Birleştirme

Konuşma iyileştirme, diğer modellerden önce bir ön işleme adımı olarak özellikle yararlıdır:

# Denoise then transcribe
.build/release/speech denoise noisy.wav -o clean.wav
.build/release/speech transcribe clean.wav

Swift API

import SpeechEnhancement

let model = try await SpeechEnhancer.fromPretrained()
let cleanAudio = try model.enhance(audio: noisySamples, sampleRate: 48000)

Android'de ve Speech Core (ONNX Runtime) ile Linux ve Windows'ta da kullanılabilir.