CoolFace
Modelpublic

aufklarer/Sidon-CoreML

sourceHugging Facemitupdated 23d agoView on Hugging Face
0likes1.7kdownloads
Model Card

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 audio

Variants

variantpredictorvocoderbundle sizepeak RAMRTF (Core ML)
fp16FP16FP16713 MB1711 MB~120×
int8INT8 (k-means palettized)FP16407 MB1321 MB~110×

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

pathdescription
fp16/Sidon-Predictor.mlpackagew2v-BERT 2.0 (8L) + merged LoRA → features (FP16)
fp16/Sidon-Vocoder.mlpackageDAC decoder → 48 kHz audio (FP16)
int8/Sidon-Predictor.mlpackagepredictor, 8-bit palettized
int8/Sidon-Vocoder.mlpackageDAC decoder (FP16)

Quality (no-reference MOS, 10 s clip)

DNSMOS P.835 (SIG/BAK/OVRL, higher = better) and UTMOS (naturalness, 1–5):

audioSIGBAKOVRLUTMOSspeaker cos
input (reverberant)3.463.402.902.99
fp163.534.093.283.320.797
int83.544.113.293.230.796

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.:

bash
speech restore noisy-reference.wav -o clean.wav   # restore / dereverb on-device

Compute 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.

swift
// 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