Appendix
Voice Catalog
Every NPC can be given a `voiceTag` string that maps to a specific TTS voice. The gender prefix is part of the tag string and must be included (e.g. `"female posh british"`, `"male baritone warm"`). See the catalog below for all valid values.
import VoiceCatalog from "~/components/islands/VoiceCatalog.svelte";
Every NPC can be given a voiceTag string that maps to a specific TTS voice. The gender prefix is part of the tag string and must be included (e.g. "female posh british", "male baritone warm"). See the catalog below for all valid values.
📋 Note:
voiceTagis extra-codec - not in the formal io-ts schema, but accepted and used by the engine. When present, it selects a specific vocal profile and overridesgenderfor voice selection;genderis only read as a fallback whenvoiceTagis absent or empty. Thegenderfield still informs the NPC's identity and prose description regardless.
The voice tag actually used at speak time is selected by the generateStory task (or generateInitialStart on turn 0) and written into game state. The authored voiceTag on an NPC is the input that informs that selection. Trigger effects like changeCharacterVoice bypass this pipeline by writing the chosen tag directly into game state.
"voiceTag": "female posh british"
"voiceTag": "male baritone warm"