v0.16.0¶
Release date: 2026-07-26
This release adds the shared terminology engine for TTS pronunciation and
subtitle case-correction, fixes the Whisper MLX provider's TranscribeFile
method, and normalizes BCP-47 language codes to ISO 639-1 for Whisper
compatibility.
Highlights¶
- Terminology engine — shared
PronouncerandCaseCorrectorbacked by terminology-spec with 247 embedded terms for consistent TTS pronunciation and subtitle casing - Whisper MLX
TranscribeFilefix — the method now works (previously returned "not implemented") - BCP-47 language normalization — Whisper MLX accepts
en-US/zh-Hansand normalizes toen/zhautomatically
Added¶
Terminology engine (terminology/)¶
Pronouncer— rewrites a term's spoken form into text before TTS synthesis, per BCP-47 locale (e.g. "AAuth" → "ay auth" foren-US)CaseCorrector— fixes the displayed form of a term in STT-derived subtitle text, independent of locale (e.g. "oauth" → "OAuth")- Re-exports
Builtin(),Curated(),All(), andLoadDir()from terminology-spec for loading embedded or project-specific terms - Unit tests covering Pronouncer and CaseCorrector behavior
Documentation¶
docs/terminology.md— guide for the terminology engine with usage examples- Updated
docs/local-tts.md— added Whisper MLX section with installation, usage, and BCP-47 language handling
Fixed¶
Whisper MLX provider¶
TranscribeFilenow reads the file and delegates toTranscribeinstead of returning "not implemented"- Language codes are normalized from BCP-47 (e.g.
en-US) to ISO 639-1 primary subtag (en) before sending to Whisper, so callers can pass either form
Changed¶
- Added
terminology-spec v0.1.0as a dependency for the terminology engine
Chore¶
- Gitignore generated Python proto stubs (
*_pb2*.py) andgo.work/go.work.sum
Consumers¶
- videoascode — uses
Pronouncervia the pronunciation config for TTS andCaseCorrectorfor subtitle generation