Traduzione automatica · Originale inglese
Miglioramento del discorso — DeepFilterNet3
Rimuovere il rumore di fondo dalle registrazioni vocali utilizzando DeepFilterNet3. Il modello viene eseguito su Neural Engine tramite CoreML per un'inferenza efficiente, mentre tutti i processi di elaborazione del segnale (STFT, ERB filterbank, deep filtering) vengono eseguiti sulla CPU via Accelerate/vDSP.
Il sentiero DSP segue libdf fine alla fine: 1/960 analisi scaling, normalizzazione alfa 0.99, rubinetteria a filtro profondo a zero-imposto, e corretto ordine di matrice NumPy C/Fortran. 20-clip VoiceBank-DEMAND sottoinsieme, Swift PESQ ha segnato 3.097STOI 0.964e SI-SDR 19.12 DB contro 3.029, 0.962e 18.31 dB per ufficiale Python DF3.
Prima/dopo campione
Una clip discografica rumorosa elaborata con DeepFilterNet3 in modo da poter ascoltare il denoiser CoreML prima di eseguirlo localmente.
Architettura
DeepFilterNet3 utilizza un'architettura a doppio decoder che separa il potenziamento della busta spettrale dal recupero dei dettagli spettrali in grana fine.
| Fase | Dettagli |
|---|---|
| STATO | Trasformazione di Fourier a breve termine tramite vDSP |
| Encoder | 4 SepConv2d strati + SqueezedGRU |
| Decoder ERB | Maschera Sigmoid applicata alle bande di frequenza su scala ERB |
| DF Decoder | Coefficienti di filtraggio complessi a 5 punte |
| ISTFT | STFT inverso per ricostruire il segnale del dominio del tempo |
Il Decoder ERB stima una maschera di guadagno sulla scala Equivalent Rectangular Bandwidth (ERB), che si occupa di modellazione spettrale. DF Decoder prevede coefficienti di filtraggio complessi 5-tap per dettagli fini, applicando filtri appresi direttamente nel dominio di frequenza.
Tubo di elaborazione
- STFT — Decomporre l'audio rumoroso nella rappresentazione della frequenza temporale utilizzando vDSP
- ERB Caratteristiche — Mappa bins STFT a bande di frequenza su scala ERB
- Rete Neurale — Encoder elabora le caratteristiche su Neural Engine; ERB e DF decoders predicoders parametri di miglioramento
- ERB Masking — Applicare la maschera di guadagno sigmoid per sopprimere il rumore nella busta spettrale
- Deep Filtraggio — Applicare coefficienti complessi a 5 punte per un recupero dei dettagli spettrali fine
- iSTFT — Ricostruire l'audio pulito dallo spettro migliorato
Modello
| Variante | Dimensione | Precisione |
|---|---|---|
| Predefinito | ~2.2 MB | pesi palettizzati a 8 bit, FP16 |
Uso 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
Opzioni
| Opzione | Designazione |
|---|---|
--output, -o | Percorso file di output (defaults to <input>_denoised.wav) |
--model | ID del repository del modello HuggingFace compatibile (default: aufklarer/DeepFilterNet3-CoreML) |
DeepFilterNet3 corre sul Neural Engine via via via via CoreML# Non sul serio # GPU via via via via MLXQuesto significa che funziona in modo efficiente anche se altri modelli basati su GPU (ASR, TTS) sono in esecuzione. Non è richiesta alcuna compilazione metallica.
Download del modello
| Modello | Dimensione | HuggingFace |
|---|---|---|
| DeepFilterNet3 ( CoreML, 8-bit palettized) | ~2.2 MB | aufklarer/DeepFilterNet3-CoreML |
Combinazione con altri modelli
La valorizzazione del discorso è particolarmente utile come passo di preelaborazione prima di altri modelli:
- Prima della trascrizione — Denoise audio prima di eseguire ASR per migliorare il tasso di errore delle parole sulle registrazioni rumorose
- Prima di incorporare l'altoparlante — L'audio più pulito produce embedding dell'altoparlo più affidabile
- Prima di diarizzazione — La rimozione del rumore può migliorare la precisione di segmentazione
# 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)
Disponibile anche su AndroidE poi... Linux & Windows attraverso Speech Core (ONNX Runtime).