* docs(engines): a guide for every engine + index; fix two engine-metadata bugs 21 new pages under docs/engines/ (10 TTS, 10 ASR, index README) — every registered engine now has one: what it's for, platform support, model env vars, quirks with issue refs. Linked from both READMEs' engine sections. Code fixes found while verifying facts against the registries: - KittenTTS docstring claimed default voice 'Jasper'; the code default is expr-voice-2-f - the isolated-ASR sidecar read only ASR_MODEL_FW while the download preflight read ASR_MODEL_FASTER — set one and the other quietly used a different model; both now resolve ASR_MODEL_FW-override → ASR_MODEL_FASTER - moonshine's install hint named 'useful-moonshine', a package the backend never imports; now moonshine-onnx / moonshine-voice Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(changelog): entries for the engine guides + sidecar model fix (#1556) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(engines): second-harvest fixes — TLS guidance, matrix/code alignment, CN counts - README matrix aligned to gpu_compat (the code is the source of truth): CosyVoice macOS is CPU not MPS, IndexTTS and GGUF gain their real CUDA/CPU/MPS cells - gpt-sovits guide: prefer https/tunnel for non-loopback servers, plaintext warning; first-use download guidance on both OmniVoice pages - preflight empty-env fallback matches the sidecar (ASR_MODEL_FASTER='' no longer resolves a different repo) - nano installs via uv pip; kitten log level wording; index links install guides incl. the Gatekeeper step; README_CN engine counts 16/11 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(readme-cn): the all-engines-local claim now excludes the remote client Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2.5 KiB
VoiceStudio — Sherpa-ONNX Engine
Sherpa-ONNX (k2-fsa/sherpa-onnx) is a unified C++ ONNX runtime that wraps 20+ TTS model families (VITS, MeloTTS, Piper, Kokoro, Matcha, and more) behind one API, with pre-built wheels for Linux, Windows, and macOS (x86 and ARM). You bring the model: point VoiceStudio at any downloaded sherpa-onnx TTS model directory.
When to pick it
- You want a specific community model (e.g. a Piper or VITS voice for your language) that no other engine hosts.
- You need a dependable CPU engine with optional CUDA acceleration.
Setup
-
Install the runtime:
pip install sherpa-onnx -
Download a TTS model from the sherpa-onnx releases and unpack it somewhere permanent.
-
Point VoiceStudio at the model directory and restart:
export OMNIVOICE_SHERPA_MODEL=/path/to/model-dir -
Select the engine via Model Catalogue → Engines or
OMNIVOICE_TTS_BACKEND=sherpa-onnx.
The directory must contain model.onnx and tokens.txt. Sherpa-ONNX ships
no bundled default model, so the engine reports unavailable — with the
reason — until OMNIVOICE_SHERPA_MODEL points at a valid directory. (Before
this gate, selecting the engine unconfigured produced a failure mislabeled
as out-of-memory —
#919.)
Configuration
| Variable | Default | Meaning |
|---|---|---|
OMNIVOICE_SHERPA_MODEL |
(unset) | Directory containing model.onnx + tokens.txt |
Behaviour notes
- Output defaults to 22.05 kHz (the VITS default); once a model is loaded, its own sample rate is used.
- CPU is the universal baseline; the CUDA onnxruntime provider is available on Linux/Windows installs.
- No cloning: voices come from the model itself. Multi-speaker VITS models select a voice by numeric speaker id; speed is supported.
- Languages depend entirely on the model you download.
Known limits
- One model at a time — switching models means changing
OMNIVOICE_SHERPA_MODELand restarting. - No voice design, no reference-audio cloning, no emotion controls (see expressive-speech.md).
Troubleshooting
- "OMNIVOICE_SHERPA_MODEL not set" / "No model.onnx in …": follow Setup above — the variable must point at the unpacked model directory, not the archive.
- Other issues: install/troubleshooting.md.
See also: benchmarks.md, languages.md, disk usage.