Maskinoversettelse · Engelsk original
Talerestaurasjon — Sidon
Gjenopprette støyende, reverberant eller bandbegrenset tale for å rengjøre 48 kHz lyd med Sidon - en enkelt modell som kombinerer denoising, deniverasjon og båndbredde forlengelse. Den kjører helt på device (CoreML på Apple Silicon, ONNX Runtime andre steder). Fordi den rekonstruererer tale fra lærde representasjoner i stedet for bare maskering av støy, er det spesielt bra på å forberede en voice-cloning referanse: det renser opptaket mens høyttalerens identitet.
taleforbedring (DeepFilterNet3) er en liten, sanntid støysuppressor. Sidon er en tyngre generativ restaurering modell: den fjerner også reverberasjon og gjenoppbygger høyfrekvente detaljer til 48 kHz. Bruk DeepFilterNet3 for levende støyfjerning, Sidon for offline rengjøring av referanser og arkivering opptak.
Arkitektur
Sidon er en to-trinns rørledning: en selvsuperstyrt funksjon prediktor renser talerepresentasjonen, og en neural vocoder resynthesizes en ren bølgeform fra den.
| Stage | Detaljer |
|---|---|
| Front-end | w2v-BERT 2.0 SeamlessM4T log-mel funksjoner (16 kHz → 160-dim) |
| Prediktør | w2v-BERT 2.0 (8 lag) med et LoRA-fin-tynnet rensehode → rensede funksjoner |
| Vocoder | DAC dekoder resynthesizes 48 kHz lyd fra rensede funksjoner |
Rørledningen er 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio. Totalt 246M parametre (193.6M prediktør + 52.4M vocoder).
Bearbeiding Pipeline
- Feature ekstraksjon - Beregn w2v-BERT 2.0 log-mel-funksjoner fra 16 kHz-inngangen (akselerer/vDSP på Apple, C++ på andre plattformer)
- Forutsetning - LoRA-tilpassede w2v-BERT-koderkart som er støyende/motståelig funksjoner for å rengjøre dem
- Vocoder - DAC-dekoderen rekonstruerer en ren 48 kHz-bølgeform fra rensede funksjoner
- Klunking - Lengre lyd behandles i faste vinduer (~10 s) og sydd på 48 kHz tidslinjen
Kvalitet
På et reverberant referanseklipp hever restaurering perceptuell kvalitet mens høyttaleridentitet holder intakt (ingen referanse MOS):
| Audio | DNSMOS OVRL | UTMOS | Høyttaler cosinus |
|---|---|---|---|
| Inngang (reverberant) | 2.90 | 2.99 | — |
| Sidon gjenopprettet | 3.29 | 3.40 | 0.79 |
Den største gevinsten er i bakgrunnsscoren (reverberation fjernet). Høyttalerlikhet er bevart, noe som er det som betyr noe ved rengjøring av en kloning referanse.
Modell Varianter
Kvantisering komprimerer prediktoren; DAC vocoder forblir på høyere presisjon (audio kvalitet). På Apple, int8 bruker k-means palettisering; på ONNX, int8 er vekt bare per kanal.
| Format | Precision | Bundle størrelse |
|---|---|---|
| CoreML | int8 (predictor) + FP16 (vocoder) | ~407 MB |
| CoreML | FP16 | ~713 MB |
| ONNX | int8 (predictor) + FP16 (vocoder) | ~286 MB |
| ONNX | FP16 | ~470 MB |
| ONNX | FP32 | ~ 939 MB |
CLI bruk
# 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
Sidon utganger 48 kHz lyd uavhengig av inngangsprøvehastigheten (det oppprøver og gjenoppretter båndbredde). Det er en offline restaureringsmodell - tyngre enn DeepFilterNet3 - og er best kjøres på en fil i stedet for en live-strøm.
Beregn plassering
De to trinnene kjører på forskjellig maskinvare som standard: prediktoren på Neural Engine og DAC vocoder på GPU, hvor dens meget brede konvolusjoner last og kjøres raskest. Bruk --compute-units å feste begge stadier til ane, gpu, cpu, all; Swift API tar også predictorComputeUnits: og 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
Modellnedlastninger
| Modell | Format | HuggingFace |
|---|---|---|
| Sidon (CoreML) | fp16 + int8 | aufklarer/Sidon-CoreML |
| Sidon (ONNX) | int8 + fp16 + fp32 | soniqo/Sidon-ONNX |
Kombinering med andre modeller
Sidon er mest nyttig som et forbehandlingssteg:
- Før stemmekloning - Rengjør en støyende/overvinnende referanse slik at klonen arver stemmen, ikke rommet
- Før transkripsjon - Gjenopprett arkivering eller fjernfeltopptak for å forbedre ASR nøyaktighet
- Før høyttalerinnbygging - Renere lyd gir mer pålitelige innbygginger
Swift API
import SpeechRestoration
let restorer = try await SpeechRestorer.fromPretrained()
let cleanAudio = try restorer.restore(audio: noisySamples, sampleRate: 16000)
Også tilgjengelig på Android, Linux & Windows via talekjerne (ONNX Runtime). Bygget på Sidon (MIT).