Files
VoiceStudio/docs/engines/moonshine.md
T
Palash Debnath 3cae853440 feat(catalogue): one page, one axis — setup summary over per-family engines and weights
The Model Catalogue put the same decision on two axes: an Engines pane with
TTS/ASR/LLM tabs and a Models pane with TTS/ASR/Dictation/Diarisation
sections, dictation shown in both, plus storage stats, the HF token and the
voice-preview toggle parked on the model list. Settings → Voice still carried
Engines and Models entries that only pointed back here.

Now the page reads top-down: a SetupSummary (speech, transcription,
dictation, language model — engine, device, one status word, Change), the
engine list for one family, and that family's downloadable weights under it
(TTS under TTS; offline ASR, streaming dictation and diarisation under ASR;
nothing for LLM, whose engines bring their own). One storage line points at
Settings → Storage.

- ModelStoreTab takes a `family` and scopes sections and the recommendation
  preset to it (scopeReco); stats strip, HF-token toolbar and previews
  panel removed from it.
- Settings: Engines/Models categories and CataloguePointer removed; models
  directory → Storage, HF mirror → Network (both restart-flagged), voice
  previews → Storage. "Manage models" in disk usage opens the catalogue.
- Store: openCatalogue takes a family (pane key tolerated, ignored);
  pendingCatalogueTab gone.
- Engine matrix title is now the locale's plain "Engines".
- i18n: catalogue.* summary keys in all 21 locales; pane/pointer keys dropped.
- Docs: "Model Catalogue → Engines" is "Model Catalogue"; "→ Models" is
  "→ Downloaded weights".
2026-09-10 06:46:09 -07:00

1.8 KiB

VoiceStudio — Moonshine Engine

Moonshine is an edge-optimized ASR family built for CPU-only machines. Unlike Whisper it processes variable-length audio (no padding everything to 30 s), which keeps latency low on short clips — sub-200 ms class on capture buffers. It's the lightest local option for quick transcription on hardware where even int8 whisper-large is too slow.

Selecting it

  • Install one of the runtimes into the app venv: uv pip install moonshine-onnx (lighter, tried first) or moonshine-voice.
  • Then Model Catalogue, ASR tab → Use on the Moonshine row, or OMNIVOICE_ASR_BACKEND=moonshine.

Auto-detect never picks it; it's an explicit opt-in.

Best at

  • Quick notes and short-clip transcription on low-power CPU machines.
  • Environments where a sub-1 GB footprint matters more than word timing or language coverage.

Not suited for

  • Dubbing. Output is plain text as a single segment spanning the whole file — no word or segment timestamps — so there's nothing for lip-sync or subtitle timing to work with. Use a Whisper-family engine or sherpa-onnx-asr for those jobs.
  • Multilingual work: results report English; for broad language coverage use whisperx or funasr.

Platform support

CPU only, by design — macOS, Windows, and Linux. It claims no GPU.

Model selection

ASR_MODEL_MOONSHINE — default moonshine/base. Weights download on first load — see downloading-models.

Quirks

  • The engine tries moonshine_onnx first and falls back to moonshine_voice — installing either one is enough.
  • Segment bounds are synthesized from the audio duration (start 0, end = file length), since the model reports none.