Skip to main content
otter-vox turns text into speech on your machine with a native Audio8 ggml runtime. Vulkan when it is available. CPU otherwise. No Python, ONNX, or CUDA.
otter-vox ships in otter-shell-extras, not the base otter-shell metapackage. Extras also pulls otter-vox-model, the Audio8 GGUF and tokenizer under /usr/share/otter-shell/models/vox. Install with pikman install otter-shell-extras.

Usage

Keep the model warm for repeated speech:
Send one utterance per line on stdin while --serve is running.

Voices

Default voice is fer (pre-encoded zero-shot clone). Fallback is audio8-en-calm from Audio8’s licensed English reference. Select it with --voice audio8-en-calm. Audio8 supports Cantonese, Chinese, Dutch, English, French, German, Italian, Japanese, Korean, Polish, and Spanish text. Voice identity transfers across those languages.

Backend and GPU

Vulkan playback uses a non-blocking PipeWire queue with a 2-second prebuffer. CPU output buffers before playback so you do not get gaps.

Configuration

~/.config/otter-shell/otter-vox.conf (also editable under Voice in otter-settings):
Empty model_dir uses the packaged GGUF under /usr/share/otter-shell/models/vox. The shipped model is a Q5_0/FP16 conversion of Audio8 TTS Preview 0.6B (~643 MiB).