-
Notifications
You must be signed in to change notification settings - Fork 2
Voices
storyvox ships two local voice families wrapped in VoxSherpa-TTS (an in-process neural-TTS engine that re-projects k2-fsa/sherpa-onnx plus the Piper and Kokoro wrappers into a single Android AAR — no second APK, no TextToSpeech framework, no engine-binding handshake), plus one optional cloud backend:
- Size: ~14–30 MB per voice
- Speakers: one per model
- Strength: fast, low memory, good on slow devices (Tab A7 Lite class)
- Best: all the en_US Piper voices for English serial fiction
- Count: 45 voices in catalog
- Size: ~330 MB total (multi-speaker model)
- Speakers: dozens of speakers in a single model
- Strength: more expressive intonation, better long-form pacing
- Best: when you have a tablet or modern phone and want premium quality
- Count: 53 speakers in catalog
- Size: zero — synthesis is remote
- Speakers: Dragon HD generative tier (4 voices) + HD Neural across en-US/en-GB/en-AU/en-IN/en-CA (16 voices)
- Strength: studio-grade quality on any device, no local synthesis cost
- Cost: ~$30 / 1M characters, billed by Microsoft to your Azure subscription. storyvox shows a per-chapter cost estimate before playing.
- Setup: Settings → Voice & Playback → Azure → key + region. Hit Test connection.
- Fallback: if your key fails or the network drops mid-chapter, playback falls back to your selected local voice for the rest of the chapter — never just stops on you.
- Count: 20 voices in catalog
The flat reference of every voice lives at the Voice catalog wiki page. The narrative version is on the Voices page of the website. Local-engine voices download on demand from the voices-v2 release — no bundled weights in the APK.
Settings → Voice & Playback → "Voice library." Engine-grouped picker:
- Piper section — alphabetical by voice name
- Kokoro section — by speaker
- Azure HD section — only visible after key + region setup
- ★ Starred — your favorites at the top, regardless of engine
Tap a voice to install (download + extract for local; just select for Azure). Star toggle to favorite. Tap to preview before committing.
Speed: 0.5×–4× (#194 widened from 2× cap). Pitch: ±20%. Both have per-voice defaults (#195, shipped) — tweak speed/pitch on a voice and the values stick when you switch back to it.
Punctuation cadence: a slider in Settings → Performance & Buffering controls how much extra silence to insert at sentence-terminal punctuation (. , ? ! ; :). Neural TTS engines rarely breathe at sentence boundaries; this slider compensates (#90 / #109). On Kokoro, the same slider also drives the model's silence_scale parameter for within-sentence pauses (#196) — one slider, two engines, consistent feel.
Buffer slider: how many sentences of PCM to render-ahead. Default 64; experimental zone unlocks up to 3000 chunks (#138). Higher = smoother on slow voices but eats RAM.
For slow hardware that struggles with single-engine Piper-high or Kokoro:
- Engines — 1–8 VoxSherpa instances running in parallel.
- Threads / engine — thread-pool size per instance.
Each engine adds ~50 MB memory pressure (Kokoro). Bump engines first; bump threads second. The producer thread is pinned to URGENT_AUDIO priority so it doesn't get descheduled by background work mid-chapter.
The voice catalog is published as a GitHub release on voices-v2. Adding a voice means dropping new model files in that release, tagging a release, and bumping the catalog cursor in storyvox (core-playback/.../VoiceCatalog.kt). The script at scripts/voices/refresh-voices-v2.sh handles the diff-and-upload; the VoiceCatalog.kt edit is a deliberate human review.
A monthly drift-detection workflow (.github/workflows/voice-catalog-check.yml) opens an issue when upstream k2-fsa adds voices we haven't picked up.
For the operational details, see the website's Voices page.
Start here
Using Candela
- Fiction sources
- Reading & library
- Export & extras
- Voices
- Voice catalog
- AI chat
- Cloud sync
- Accessibility
- Settings reference
- Troubleshooting
Developer
Project