Clara โ a clean, professional narrator in 9M parameters
Clara is the broadcast-polish voice of the ScrappyLabs voice family: clear, neutral American, warm underneath, the kind of read you'd put on a product walkthrough or a training module and not think about again.
She is 9.36M parameters / 37MB fp32, 24kHz, and runs 10โ14ร faster than real time on a plain desktop CPU โ no GPU, no cloud, no network round trip. She's a fine-tune of owensong/Inflect-Micro-v2 (Apache-2.0), using the training stack we had to reconstruct for scrappy-voice-1.
Listen: samples/clara_intro.wav โ Clara introduces herself
(rendered on a desktop CPU by this exact checkpoint).
The family
Clara is one of four voices, each shipped two ways โ as a standalone solo model like this one, and as a speaker inside a single shared multi-speaker checkpoint.
| Voice | Character | Solo model |
|---|---|---|
| Scrappy | warm, expressive narrator (the original) | scrappy-voice-1 |
| Clara | clear professional female, broadcast polish | this repo |
| Silas | deep, gravelly, slow, movie-trailer gravitas | silas-voice-1 |
| Pip | bright, quick, playful podcast-host energy | pip-voice-1 |
All four in one file: scrappy-voice-family-1 โ same 41MB footprint, four voices, plus blending between them. Take the family model if you want more than one voice; take this repo if you only want Clara and prefer a single-purpose file.
๐ฎ Try all four voices โ and blend between them: interactive demo on Spaces โ the Space was built and gifted to us by the Hugging Face team. Thanks, HF ๐ค
How Clara was made
The same three-step recipe as the rest of the family, no shortcuts and no hand-annotated data:
- A teacher renders the corpus. Clara did not exist before this โ she was described,
not recorded. A voice-design model running on our own hardware turned one sentence,
"A clear, professional female narrator around thirty. Neutral American accent, broadcast polish, perfectly even pacing, with a warm undertone.", 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, not transcribed after the fact. - An ASR gate cleans it. Every clip is round-tripped through speech recognition and scored against its own transcript; anything under 0.85 word overlap is thrown away, with signal checks (clipping, silence, duration) running alongside. 99.4% of Clara's clips survived. This is the step people skip, and it's the only one that catches audio that says the wrong thing beautifully.
- Warm-start fine-tune. The generator initializes from an existing Inflect-Micro-v2 checkpoint; the 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 a single RTX PRO 6000 Blackwell. Final mel loss 19.4.
Measured intelligibility. On held-out self-introduction text, ASR word overlap against the target script is 1.00 for this solo checkpoint. That's a legibility floor, not a beauty score โ it says the words come out as written, nothing about how the prosody feels. Use your ears for the second part.
Usage
Drop-in for the packaged runtime โ identical to upstream:
from inference import InflectTTS
tts = InflectTTS(model_dir=".", device="cpu")
tts.save("Hello, I'm Clara. I run entirely on your own machine.", "out.wav", seed=7)
python inference.py --model-dir . --device cpu \
--text "Nothing leaves your computer, and nothing waits on a network." \
--output out.wav
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.
Fine-tune your own voice (trainer/)
trainer/ ships the training stack the upstream release deliberately omits โ
prep_filelists.py (phonemization + symbol validation against the release inventory),
train_ft.py (VITS losses, torchaudio mel transforms, warm-start loading, decoder freeze
schedule, candidate export every N steps), and eval_candidate.py (fixed-prompt renders for
A/B listening). You also need the cython monotonic-alignment kernel from the
canonical VITS repo โ the release stubs it out. Data
contract: mono 24kHz clips, one speaker, verified transcripts, 1โ5+ hours. Gate your corpus
with ASR round-trips.
Honest limitations
- 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 out. The duration predictor is the smallest organ in a VITS. Expect a flatter, more even read than the source voice. For Clara that's less of a tax than it is for the more theatrical voices in the family; "even and unbothered" is most of the job description.
- Slight texture softness versus a large vocoder is still audible at close listening.
- English only. The frontend is espeak-ng-based and the corpus is neutral American English.
- 9.36M parameters is small. It buys you CPU real-time and a 37MB file; it does not buy you a 500M-parameter model's expressive range. That trade is the entire point.
- Don't use this to imitate a real person without their consent. The trainer here will happily learn any voice you feed it. That's on you, not the license.
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. 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 โ base model, runtime, and an unusually honest set of docs (Apache-2.0)
- VITS (MIT) โ architecture lineage + alignment kernel
- The Hugging Face team, who built and gifted the first demo Space for this family on free ZeroGPU ๐ค
- Built by ScrappyLabs. Bring your own AI; we keep it wrangled.
Trained with: scrappylabsai/inflect-trainer โ the fine-tuning stack (single-voice, multi-speaker, and the corpus QC gate), open source.
- Downloads last month
- 24
Model tree for scrappylabsai/clara-voice-1
Base model
owensong/Inflect-Micro-v2