تحسين الكلام — DeepFilterNet3

أزل ضوضاء الخلفية من تسجيلات الكلام باستخدام DeepFilterNet3. يعمل النموذج على Neural Engine عبر CoreML لاستدلال فعّال، بينما تجري كلّ معالجة الإشارة (STFT، مجموعة مرشّحات ERB، deep filtering) على وحدة المعالجة المركزيّة عبر Accelerate/vDSP.

تكافؤ مع DF3 الرسمي

يتبع مسار DSP بالكامل libdf: تحجيم التحليل 1/960، وقيمة alpha للتطبيع 0.99، والحشو الصفري عند حواف المرشح العميق، والترتيب الصحيح لمصفوفات NumPy بنسقي C/Fortran. على مجموعة ثابتة من 20 مقطعًا من VoiceBank-DEMAND، حقق Swift قيم PESQ ‏3.097 وSTOI ‏0.964 وSI-SDR ‏19.12 dB، مقابل 3.029 و0.962 و18.31 dB لإصدار DF3 الرسمي بلغة Python.

عينة قبل/بعد

مقطع كلام مشوش عولج بواسطة DeepFilterNet3 لتسمع تأثير مزيل الضجيج CoreML قبل تشغيله محلياً.

الإدخال المشوشMP3, 48 kHz
خرج DeepFilterNet3MP3, 48 kHz

البنية

يستخدم DeepFilterNet3 بنية ذات فاكَّين تفصل بين تحسين الغلاف الطيفي واستعادة التفاصيل الطيفيّة الدقيقة.

المرحلةالتفاصيل
STFTتحويل فورييه قصير الزمن عبر vDSP
Encoder4 طبقات SepConv2d + SqueezedGRU
ERB Decoderقناع sigmoid يُطبَّق على نطاقات التردّد بمقياس ERB
DF Decoderمعاملات ترشيح عقديّة بخمسة taps
iSTFTSTFT العكسي لإعادة بناء الإشارة في المجال الزمني

يقدّر ERB Decoder قناع ربح على مقياس Equivalent Rectangular Bandwidth (ERB)، ويتولّى التشكيل الطيفي الواسع. ويتنبّأ DF Decoder بمعاملات ترشيح عقديّة بخمسة taps للتفاصيل الدقيقة، ويطبّق مرشّحات مكتسَبة مباشرة في مجال التردّد.

خطّ المعالجة

  1. STFT — تحليل الصوت المشوّش إلى تمثيل زمنيّ-تردّديّ باستخدام vDSP
  2. سمات ERB — تخطيط حُزَم STFT إلى نطاقات تردّد بمقياس ERB
  3. الشبكة العصبيّة — يعالج Encoder السمات على Neural Engine؛ ويتنبّأ فاكّا ERB وDF بمعاملات التحسين
  4. التقنيع بـ ERB — تطبيق قناع الربح sigmoid لقمع الضوضاء في الغلاف الطيفي
  5. Deep filtering — تطبيق المعاملات العقديّة بخمسة taps لاستعادة التفاصيل الطيفيّة الدقيقة
  6. iSTFT — إعادة بناء الصوت النظيف من الطيف المحسَّن

النموذج

الإصدارالحجمالدقّة
افتراضي~2.2 MBأوزان بلوحة 8 بت وحساب FP16

الاستخدام من سطر الأوامر

# 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

الخيارات

الخيارالوصف
--output, -oمسار ملفّ الخرج (الافتراضي <input>_denoised.wav)
--modelمعرّف مستودع نموذج متوافق على HuggingFace (الافتراضي: aufklarer/DeepFilterNet3-CoreML)
مهم

يعمل DeepFilterNet3 على Neural Engine عبر CoreML، لا على GPU عبر MLX. هذا يعني أنّه يعمل بكفاءة حتّى عندما تكون نماذج أخرى مبنيّة على GPU (ASR وTTS) قيد التشغيل. لا حاجة إلى تجميع metallib.

تنزيلات النماذج

النموذجالحجمHuggingFace
DeepFilterNet3 (CoreML، لوحة 8 بت)~2.2 MBaufklarer/DeepFilterNet3-CoreML

الدمج مع نماذج أخرى

يُعدّ تحسين الكلام مفيدًا بشكل خاصّ كخطوة معالجة أوّليّة قبل نماذج أخرى:

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

واجهة Swift

import SpeechEnhancement

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

متاح أيضاً على Android، وعلى Linux وWindows عبر Speech Core (ONNX Runtime).