--- license: apache-2.0 language: en pipeline_tag: text-to-speech tags: - text-to-speech - speech-synthesis - vits - cpu - edge-ai - small-model - 24khz - voice-distillation base_model: owensong/Inflect-Micro-v2 --- # Silas — the low, slow one. 9M params, still on your CPU. **Silas** is the gravitas voice in the [ScrappyLabs](https://scrappylabs.ai) voice family: deep, older, a little gravelly, unhurried — the read you reach for when a line needs weight behind it. Like the rest of the family he is **9.36M parameters / 37MB**, 24kHz, running **10–14× faster than real-time on a plain desktop CPU** — no GPU, no cloud. He's a fine-tune of [owensong/Inflect-Micro-v2](https://huggingface.co/owensong/Inflect-Micro-v2) (Apache-2.0). Listen: [`samples/silas_intro.wav`](samples/silas_intro.wav) — Silas introduces himself (generated on a desktop CPU by this exact checkpoint). **The family:** [scrappy](https://huggingface.co/scrappylabsai/scrappy-voice-1) · **silas** (you are here) · [clara](https://huggingface.co/scrappylabsai/clara-voice-1) · [pip](https://huggingface.co/scrappylabsai/pip-voice-1) · [all four in one 41MB model](https://huggingface.co/scrappylabsai/scrappy-voice-family-1) (multi-speaker + voice morphing — Silas is speaker id 2 there) **🎮 Try all four voices — and blend between them:** [interactive demo on Spaces](https://huggingface.co/spaces/scrappylabsai/scrappy-voice-tts) — the Space was built and gifted to us by the Hugging Face team. Thanks, HF 🤗 ## What this is A single-voice checkpoint, drop-in for the packaged Inflect-Micro-v2 runtime. Same recipe we used for Scrappy, pointed at a different voice: 1. **A teacher renders the corpus.** Silas did not exist before this — he was *described*, not recorded. A voice-design model running on our own hardware turned one sentence, "A deep, authoritative older male narrator, gravelly texture, slow and weighty, movie-trailer gravitas.", into a speaking voice, and that voice then read ~4,400 short clips (~5.5h @ 24kHz) from a text corpus we control — so every transcript is known by construction. 2. **An ASR gate cleans it.** Every clip is round-tripped through speech recognition and scored against its transcript (≥0.85 word overlap to survive), with signal checks (clipping/silence/duration) alongside. **99.3% of Silas's clips passed.** 3. **Warm-start fine-tune.** The released `model.pth` initializes the generator; posterior encoder and discriminator start fresh. Decoder frozen for the first 3k steps, LR 1e-4 → 5e-6 over **50,000 steps**, batch 24, fp32, on one RTX PRO 6000 Blackwell. Final mel loss **18.1** — the lowest of the three new solo voices, which tracks: a slow, steady, low-variance read is the easiest thing in the world for a 9M-param model to fit. 4. **Measured, not vibed.** On held-out intro text, ASR word-overlap against the intended transcript came back **1.00** for this solo checkpoint. ## Usage Identical to upstream — nothing special to know: ```python from inference import InflectTTS tts = InflectTTS(model_dir=".", device="cpu") tts.save("Some things are worth saying slowly.", "out.wav", seed=7) ``` ```bash python inference.py --model-dir . --device cpu \ --text "Some things are worth saying slowly." --output out.wav ``` Notes carried over from upstream: English only, single voice, deterministic seeds, punctuation-aware long-form chunking, `speed` 0.5–2.0, `variation` 0.0–1.0. Write numbers out as words for best results. Silas already reads slow; if you push `speed` below ~0.9 he starts to drag rather than deepen. If you want Silas alongside the other three voices — or blended with them — take the [family model](https://huggingface.co/scrappylabsai/scrappy-voice-family-1) instead. It's the 41MB, holds all four, and adds a `--blend` flag. The `trainer/` directory ships the fine-tuning stack upstream omits (filelist prep with symbol validation, the full VITS training loop, candidate export and eval) — same code that produced this checkpoint, if you want to distill a voice of your own. See the [Scrappy card](https://huggingface.co/scrappylabsai/scrappy-voice-1) for the walkthrough. ## Known quirks - **espeak-ng cannot pronounce his name.** The frontend renders "Silas" as /siːləz/ — *SEE-laz*. Our synthesis inputs respell it **"Sighlus"**, which comes out /saɪləs/ correctly. If you're writing his name into a prompt and it sounds wrong, that's why: respell it phonetically. This is a frontend quirk, not a checkpoint defect, and it's the sort of thing that bites every name a grapheme-to-phoneme rulebook has never seen. - **Prosody is where distillation loses the most.** Timbre and identity transfer well; the teacher's long-range timing instincts (dramatic pauses, phrase-level planning) get averaged. The duration predictor is the smallest organ in a VITS. For a voice whose whole job is timing, expect to earn some of the drama back with punctuation and explicit line breaks. - **The gravel is texture, and texture is what a small vocoder softens.** At close listening the rasp is smoother than the source. - Everything upstream says about English-only operation and model biases applies. ## Provenance & takedown The training audio was synthesized by a voice-design model from a written description — a synthetic persona that never existed until we described it. No real person's voice was cloned, and please don't use this stack to clone one without their consent. If you're a rights holder with a concern, open a discussion on this repo and we'll respond promptly. ## Credits - **[owensong/Inflect-Micro-v2](https://huggingface.co/owensong/Inflect-Micro-v2)** — base model, runtime, and an unusually honest set of docs (Apache-2.0) - [VITS](https://github.com/jaywalnut310/vits) (MIT) — architecture lineage + alignment kernel - The **Hugging Face team**, who built the family's first demo Space on ZeroGPU and handed us the keys 🤗 - Built by [ScrappyLabs](https://scrappylabs.ai). Bring your own AI; we keep it wrangled. **Trained with:** [scrappylabsai/inflect-trainer](https://github.com/scrappylabsai/inflect-trainer) — the fine-tuning stack (single-voice, multi-speaker, and the corpus QC gate), open source.