Skip to content

v1.4.0 - Multilingual Narrator (English support)

Latest

Choose a tag to compare

@akenneth akenneth released this 27 Apr 11:40
· 3 commits to main since this release

✨ New: English narrator

The narrator can now speak English in addition to Hebrew, configurable from game_base/config.py.

NARRATOR_LANGUAGE = "english"   # or "hebrew" (default)
NARRATOR_VOICE    = None         # or "Daniel", "Karen", "Junior", ...

Defaults

  • Hebrew → Carmit (existing behavior, unchanged)
  • English → Samantha

Both default voices ship with macOS — no downloads required.

Pre-installed English voice alternatives

Samantha (default), Daniel (UK male, announcer-style), Karen (AU female, energetic), Junior (US child, playful), Moira, Tessa, Fred, Ralph, Albert.

Voices that require a separate macOS download (avoid as defaults): Alex, Ava, Allison, Tom, Susan, Zoe, and any Enhanced/Premium/Siri voices. The narrator falls back gracefully if a missing voice is configured.

Under the hood

  • narrator.py refactored into per-language tables: PHRASES, NUMBER_WORDS, PLAYER_NAMES, LEVEL_TEMPLATE, SCORE_TEMPLATE, DEFAULT_VOICE.
  • Phrase keys (welcome, game_start, boss_level, three, …) are stable across languages — no call sites needed updating.
  • HEBREW_PHRASES is preserved as an alias for backwards compatibility.
  • Narrator.__init__ now accepts language and voice. Voice selection prefers the configured/default voice, then falls back to any installed voice matching the language locale (he-IL / en_*).
  • Smoke test: python game_base/narrator.py english or python game_base/narrator.py hebrew.

Full changelog: v1.3.0...v1.4.0