Skip to content

floravox: warn when the G2P stack degenerates to letter spelling - #33

Merged
willwade merged 1 commit into
mainfrom
floravox/warn-letter-spell-g2p
Sep 3, 2026
Merged

floravox: warn when the G2P stack degenerates to letter spelling#33
willwade merged 1 commit into
mainfrom
floravox/warn-letter-spell-g2p

Conversation

@willwade

@willwade willwade commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Warns (once per synthesizer build) when the floravox G2P stack degenerates to letter spelling — no lexicon/Phonetisaurus/ByT5 loaded and no character frontend covers the voice. Every word is then OOV and gets spelled out ("a r e ...") with no diagnostic.

Found in the wild: VoiceGarden-SAPI routed coqui-en-ljspeech to floravox without a lang credential (fixed client-side in AACTools/VoiceGarden-SAPI#16, but the engine should say so).

  • build_phonemizer returns a PhonemizerStack { phonemizer, real_g2p }real_g2p is true only when a lexicon actually opened, Phonetisaurus opened, or ByT5 loaded (configured-but-unopenable paths do not count)
  • synthesize_for warns when !real_g2p and no char frontend is active (explicit chars credential or auto-detected char table — CharFrontend voices are exempt by design)
  • Tests: empty credentials and unopenable lexicon/Phonetisaurus paths both flag real_g2p=false (11 floravox lib tests pass with sapi,cloud,sherpaonnx,floravox-lexicons)

Without a language (no 'lang' credential resolving a bundle, no
lexicon/Phonetisaurus/ByT5), the OOV chain ends at RuleFallback and,
with no lexicon, every word is OOV - the voice reads words spelled out
('a r e ...') with no diagnostic. This bit VoiceGarden-SAPI with
coqui-en-ljspeech (fixed client-side, but the engine should say so).

build_phonemizer now reports whether any real G2P stage loaded; when
none did and no character frontend covers the voice (MMS-style char
tables are exempt), synthesize logs a one-time warning naming the
remedy. Tested: empty config and unopenable lexicon paths both flag
real_g2p=false.
@willwade
willwade merged commit a0ea941 into main Sep 3, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant