स्पीच एन्हांसमेंट — DeepFilterNet3
DeepFilterNet3 का उपयोग करके स्पीच रिकॉर्डिंग से बैकग्राउंड नॉइज़ हटाएँ। मॉडल कुशल इन्फ़रेंस के लिए CoreML के माध्यम से Neural Engine पर चलता है, जबकि सभी सिग्नल प्रोसेसिंग (STFT, ERB filterbank, deep filtering) Accelerate/vDSP के माध्यम से CPU पर चलती है।
पूरा DSP पथ libdf का अनुसरण करता है: विश्लेषण स्केल 1/960, नॉर्मलाइज़ेशन alpha 0.99, डीप-फ़िल्टर किनारों पर ज़ीरो पैडिंग और सही NumPy C/Fortran मैट्रिक्स क्रम। VoiceBank-DEMAND के निश्चित 20-क्लिप सबसेट पर Swift ने PESQ 3.097, STOI 0.964 और SI-SDR 19.12 dB प्राप्त किए, जबकि आधिकारिक Python DF3 के परिणाम 3.029, 0.962 और 18.31 dB रहे।
पहले/बाद का सैंपल
DeepFilterNet3 से प्रोसेस किया गया noisy speech clip, ताकि CoreML denoiser चलाने से पहले उसका असर सुन सकें।
आर्किटेक्चर
DeepFilterNet3 एक dual-decoder आर्किटेक्चर का उपयोग करता है जो spectral envelope एन्हांसमेंट को fine-grained spectral detail रिकवरी से अलग करता है।
| चरण | विवरण |
|---|---|
| STFT | vDSP के माध्यम से Short-time Fourier transform |
| Encoder | 4 SepConv2d layers + SqueezedGRU |
| ERB Decoder | ERB-scale frequency bands पर लागू Sigmoid mask |
| DF Decoder | 5-tap complex-valued filtering coefficients |
| iSTFT | Time-domain signal को पुनर्निर्माण करने के लिए Inverse STFT |
ERB Decoder Equivalent Rectangular Bandwidth (ERB) scale पर एक gain mask का अनुमान लगाता है, जो broad spectral shaping को हैंडल करता है। DF Decoder fine detail के लिए 5-tap complex filtering coefficients का अनुमान लगाता है, जो frequency domain में सीधे learned filters लागू करता है।
प्रोसेसिंग पाइपलाइन
- STFT — vDSP का उपयोग करके noisy ऑडियो को time-frequency प्रतिनिधित्व में विघटित करें
- ERB Features — STFT bins को ERB-scale frequency bands पर मैप करें
- Neural Network — Encoder Neural Engine पर features प्रोसेस करता है; ERB और DF decoders एन्हांसमेंट पैरामीटर का अनुमान लगाते हैं
- ERB Masking — spectral envelope में नॉइज़ को दबाने के लिए sigmoid gain mask लागू करें
- Deep Filtering — fine spectral detail रिकवरी के लिए 5-tap complex coefficients लागू करें
- iSTFT — एन्हांस्ड स्पेक्ट्रम से साफ़ ऑडियो का पुनर्निर्माण करें
मॉडल
| वेरिएंट | आकार | प्रिसिज़न |
|---|---|---|
| डिफ़ॉल्ट | ~2.2 MB | 8-bit पैलेटाइज़्ड वेट, FP16 गणना |
CLI उपयोग
# 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 मॉडल रिपॉज़िटरी ID (डिफ़ॉल्ट: aufklarer/DeepFilterNet3-CoreML) |
DeepFilterNet3 MLX के माध्यम से GPU पर नहीं, CoreML के माध्यम से Neural Engine पर चलता है। इसका अर्थ है कि यह कुशलता से काम करता है भले ही अन्य GPU-आधारित मॉडल (ASR, TTS) चल रहे हों। किसी metallib कंपाइलेशन की आवश्यकता नहीं है।
मॉडल डाउनलोड
| मॉडल | आकार | HuggingFace |
|---|---|---|
| DeepFilterNet3 (CoreML, 8-bit पैलेटाइज़्ड) | ~2.2 MB | aufklarer/DeepFilterNet3-CoreML |
अन्य मॉडलों के साथ संयोजन
स्पीच एन्हांसमेंट अन्य मॉडलों से पहले एक प्रीप्रोसेसिंग चरण के रूप में विशेष रूप से उपयोगी है:
- ट्रांसक्रिप्शन से पहले — noisy रिकॉर्डिंग पर word error rate में सुधार करने के लिए ASR चलाने से पहले ऑडियो को denoise करें
- स्पीकर एम्बेडिंग से पहले — साफ़ ऑडियो अधिक विश्वसनीय स्पीकर embeddings उत्पन्न करता है
- डायराइज़ेशन से पहले — नॉइज़ हटाना segmentation सटीकता में सुधार कर सकता है
# 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 पर भी, और Speech Core (ONNX Runtime) के माध्यम से Linux व Windows पर उपलब्ध।