EACI Development Journal · Voice

How Do You Keep STT Languages and Companion Voices Coherent?

Recognition locale, reply language, and synthesis voice are separate choices. A per-companion voice map keeps them coordinated without assuming they are identical.

Voice ~7 min issue-tagged
Issue this fixes

Speech recognition may transcribe in one locale while the selected synthesis voice supports another. Browser voice lists also arrive asynchronously and vary by operating system.

The system needs a preferred voice plus language-compatible fallbacks. Recognition should follow the user's input setting, while synthesis follows the reply and companion voice profile.

What was actually going wrong

One language code was reused for microphone recognition, model behavior, and voice selection.

What I tried

What finally worked

Voice availability is loaded before selection, candidates are filtered by language, and stable companion preferences choose among them.

Why it worked

Platform differences affect sound selection without changing the language or character prompt.

What I learned

Voice coherence requires graceful matching, not one hardcoded system voice.

Where EACI uses this today

Caelum and Chad live chat retain distinct voice preferences with platform-safe fallbacks.

This journal covers real engineering on EACI Companion / The Veil. Companions include Caelum, Chad, Natalia, Atreus, Luna, Roxy, and Cael. Journal articles stay family-safe in content. See Privacy and Ethics.