v0.8.0¶
Release date: 2026-07-27
This release adds full local, offline TTS and STT support via F5-TTS MLX and Whisper MLX on Apple Silicon, a pronunciation dictionary for TTS, robust subtitle alignment, and several fixes.
Highlights¶
- Local, offline TTS & STT on Apple Silicon — generate voiceovers with F5-TTS and transcribe audio with Whisper entirely on-device via
--local, no API keys or cloud calls required - Pronunciation dictionary — rewrite brand names and acronyms to a spoken form before TTS while keeping displayed text unchanged
- Robust subtitle alignment —
--use-original-textnow handles STT word splits/merges (e.g. "marp2video" → "MARP 2 Video") correctly
Added¶
Local providers¶
--localflag onslides tts,stt,subtitle, andbrowser videocommands to enable local F5-TTS and Whisper MLX providers--f5tts-endpointand--whisper-endpointflags to override the default Unix domain socket pathsscripts/localvoice.shhelper script to set up, start, stop, and check the local Python/MLX servers with a single commandpkg/omnivoice/ttsandpkg/omnivoice/sttfactory functions withEnableLocalProviderssupport
Pronunciation¶
VideoConfig.Pronunciationsfield — term → locale → spoken form, applied only to text sent to TTS (subtitles/manifests keep the original spelling)pkg/tts.Pronouncerwrappingomnivoice-core/terminologyfor shared pronunciation logicdocs/guide/pronunciation.mduser guide
Documentation¶
docs/guide/local-providers.md— setup, quick start, script commands, environment overrides, troubleshooting- Updated CLI reference, pipeline, subtitles, troubleshooting, requirements, and index with local provider and pronunciation coverage
- README feature list updated with local providers and pronunciation dictionary
Fixed¶
- Subtitle alignment —
--use-original-textnow correctly maps original words onto STT timings when the transcriber splits ("marp2video" → "MARP 2 Video") or joins ("command-line" → "commandline") words; previously any mismatch cascaded and fell back to raw STT text --limit-stepswith transcripts — segment-level transcripts are now truncated to match the step limit, so TTS/pacing/duration actually respects the flag for transcript-based segments- Avatar overlay FPS — base videos are normalized to a target FPS (default 30) before compositing, so animated avatar overlays don't freeze between sparse native frames
Changed¶
- Updated
omnivoice-coreto v0.16.0 (terminology engine, Whisper MLX fixes)
Consumers¶
The pronunciation dictionary and local provider support are used by:
- omnivoice-core
terminologypackage — shared Pronouncer and CaseCorrector engine - terminology-spec — canonical term IR with 247 embedded terms