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.

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 Varyantları

VaryantBoyutHassasiyet
INT8 (varsayılan)~2.2 MB8-bit nicelendirilmiş
FP32~4.3 MBTam hassasiyet

Modelin yaklaşık 2.1M parametresi vardır. INT8 varyantı varsayılan olarak kullanılır ve yarı boyutta eşdeğer kalite sağlar.

CLI Kullanımı

# Sesi temizle (çıktı _denoised.wav)
.build/release/speech denoise noisy.wav

# Çıktı dosyasını belirt
.build/release/speech denoise noisy.wav -o clean.wav

# FP32 model varyantını kullan
.build/release/speech denoise noisy.wav --model fp32

Seçenekler

SeçenekAçıklama
--output, -oÇıktı dosya yolu (varsayılan <input>_denoised.wav)
--modelModel varyantı: int8 (varsayılan) veya fp32
Ö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 FP16)~4.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:

# Önce temizle sonra transkripte et
.build/release/speech denoise noisy.wav -o clean.wav
.build/release/speech transcribe clean.wav

Swift API

import SpeechEnhancement

let model = try await DeepFilterNet3.loadFromHub()
let cleanAudio = try await model.denoise(audioFile: "noisy.wav")
try cleanAudio.write(to: "clean.wav")

Ayrıca ONNX Runtime aracılığıyla Android ve Linux'ta da mevcuttur.