aufklarer/Sidon-CoreML
Sidon — Core ML (speech restoration / dereverberation)
On-device speech restoration (denoise + dereverberation + bandwidth restoration) for Apple Silicon, exported to Core ML (Neural Engine + GPU). Turns a noisy/reverberant clip into studio-quality 48 kHz speech — ideal for cleaning a voice-cloning reference before TTS, since it preserves speaker identity.
Two-stage pipeline:
16 kHz audio → [w2v-BERT log-mel front-end] → predictor (w2v-BERT 2.0, 8 layers)
→ cleansed features [1, T, 1024] → DAC decoder → 48 kHz audioVariants
Total 246 M params (predictor 193.6 M + DAC vocoder 52.4 M). Output sample rate 48 kHz. int8 keeps the vocoder at FP16 (audio quality); only the predictor is palettized.
Files
Quality (no-reference MOS, 10 s clip)
DNSMOS P.835 (SIG/BAK/OVRL, higher = better) and UTMOS (naturalness, 1–5):
Restoration lifts OVRL 2.90 → 3.29 (driven by BAK 3.40 → 4.11 — reverb removed). Quantization is near-lossless on DNSMOS and speaker similarity; UTMOS shows a small naturalness cost (fp16 −0.09, int8 −0.17). Numbers are a single clip — average over a set for a definitive figure.
Front-end
The graphs take input_features [1, T, 160] from the w2v-BERT 2.0 SeamlessM4T feature extractor (16 kHz input). The sequence length is fixed (T = 499 ≈ 10 s) — chunk longer audio in the runtime. The front-end and chunking are handled by speech-swift.
Usage
Use via the speech-swift Apple SDK, e.g.:
speech restore noisy-reference.wav -o clean.wav # restore / dereverb on-deviceCompute placement. The runtime places the two stages separately: the predictor on the Neural Engine, the DAC vocoder on the GPU, where its very wide convolutions load and run fastest. Override both with --compute-units ane|gpu|cpu|all, or per stage via predictorComputeUnits: / vocoderComputeUnits: in the Swift API.
// See speech-swift for the full API (loads the predictor + vocoder, runs the
// log-mel front-end, chunks, and writes 48 kHz audio).Source
Exported from Sidon (sarulab-speech), checkpoint sidon-v0.1; paper arXiv:2509.17052. Base SSL encoder: facebook/w2v-bert-2.0; vocoder: DAC (descript-audio-codec). All components are MIT-licensed.
Links
- speech-swift — Apple (Swift) SDK
- soniqo.audio — website
- blog
