Maskinöversättning · Engelskt original

Talrestaurering - Sidon

Återställ bullriga, reverberanta eller bandbegränsade tal för att rengöra 48 kHz ljud med Sidon - en enda modell som kombinerar denoising, dereverberation och bandbreddsförlängning. Det körs helt på-enhet (CoreML på Apple Silicon, ONNX Runtime någon annanstans). Eftersom det rekonstruerar tal från lärda representationer snarare än att bara maskera buller, är det särskilt bra att förbereda en röstkloningsreferensDet rensar inspelningen samtidigt som man bevarar talarens identitet.

När du ska använda Sidon vs. DeepFilterNet3

Talförbättring (DeepFilterNet3) är en liten realtid buller suppressorSidon är en tyngre generativ restaurering modell: det tar också bort reverberation och återuppbygger högfrekventa detaljer till 48 kHz. Använd DeepFilterNet3 för borttagning av levande buller, Sidon vid offline rensning av referenser och arkivinspelningar.

Arkitektur

Sidon är en tvåstegspipeline: en självövervakad funktionsprediktor rensar talrepresentationen, och en neural vocoder återsyntetiserar en ren vågform från den.

StegDetaljer
Framför slutetw2v-BERT 2.0 SeamlessM4T log-mel-funktioner (16 kHz → 160-dim)
Predictorw2v-BERT 2.0 (8 lager) med ett LoRA-fin-tuned rensat huvud → rensade funktioner
VocoderDAC decoder resynthesizes 48 kHz ljud från de rensade funktionerna

Rörledningen är 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio. Total ≈ 246M parametrar (193.6M prediktor + 52.4M vocoder).

Processing Pipeline

  1. Feature extraction --Beräkna w2v-BERT 2.0 log-mel-funktioner från 16 kHz-ingången (Accelerera/vDSP på Apple, C++ på andra plattformar)
  2. Predictor - LoRA-anpassad w2v-BERT-kodare kartlägger bullriga/reverberanta funktioner för att rengöra
  3. Vocoder - DAC-avkodaren rekonstruerar en ren 48 kHz-vågform från de rensade funktionerna
  4. Chunking - Längre ljud behandlas i fasta fönster (~10 s) och sys på 48 kHz tidslinje

Kvalitetskvalitet

På ett reverberant referensklipp lyfter restaurering perceptuell kvalitet samtidigt som talaridentitet intakt (ingen referens MOS):

AudioDNSMOS OVRLUTMOSHögtalarkosin
Input (Reverberant)2.902.99—
Sidon återställd3.293.400.79

Den största vinsten är i bakgrundspoängen (reverberation borttagen). talare likhet bevaras, vilket är vad som är viktigt när man rengör en kloning referens.

Modellvarianter

Quantization komprimerar prediktorn; DAC-vocodern stannar vid högre precision (audiokvalitet). På Apple, int8 använder k-means palettering; på ONNX, int8 är vikt-bara per-kanal.

FormatPrecisionBundle storlek
CoreMLint8 (predictor) + FP16 (vocoder)~407 MB
CoreMLFP16713 MB
ONNXint8 (predictor) + FP16 (vocoder)~286 MB
ONNXFP16~470 MB
ONNXFP32939 MB

CLI Användning

# Restore audio (denoise + dereverb) to clean 48 kHz
.build/release/speech restore noisy.wav -o clean.wav

# Clean a voice-cloning reference before TTS
.build/release/speech speak "Hello world" --voice-sample ref.wav --clean-reference
Viktigt

Sidon utgångar 48 kHz ljud oavsett ingångsprovfrekvens (det uppsamplar och återställer bandbredd). Det är en offline restaureringsmodell - tyngre än DeepFilterNet3 - och är bäst körs på en fil snarare än en levande ström.

Beräkning placering

De två stegen körs på olika hårdvara som standard: förutsägaren på Neural Engine och DAC-vocodern på GPU, där dess mycket breda konvolutioner laddas och körs snabbast. --compute-units att stifta båda stegen till ane, gpu, cpu, allSwift API tar också predictorComputeUnits: och vocoderComputeUnits: separat.

# Default placement: predictor on the Neural Engine, vocoder on the GPU
.build/release/speech restore noisy.wav -o clean.wav

# Pin both stages to one backend
.build/release/speech restore noisy.wav --compute-units gpu -o clean.wav

Modell nedladdningar

ModellFormatHuggingFace
Sidon (CoreML)fp16 + int8aufklarer/Sidon-CoreML
Sidon (ONNX)int8 + fp16 + fp32soniqo/Sidon-ONNX

Kombinera med andra modeller

Sidon är mest användbar som ett förbehandlingssteg:

Swift API

import SpeechRestoration

let restorer = try await SpeechRestorer.fromPretrained()
let cleanAudio = try restorer.restore(audio: noisySamples, sampleRate: 16000)

Också tillgänglig på Android, Linux & Windows via Speech Core (ONNX Runtime)Byggd på Sidon (MIT).