Wade has an accent

Here's a small thing that took a disproportionate amount of work.

When you talk to Wade out loud and he's teaching you Spanish, he speaks with a Spanish accent — including the English parts. Not a caricature. The vowels sit where a Spanish speaker puts them, the rhythm is syllable-timed rather than stress-timed, and when a Spanish word arrives in the middle of an English sentence it doesn't get flattened into English mouth-shapes on the way out.

The reason is the failure mode on the other side. An English-accented cena is not the word cena. It's a different sound wearing the same spelling, and if that's the version you learn, you have learned something you will have to unlearn the first time a waiter says the real one. Worse, you won't know you've learned it wrong — it'll sound right to you, because it's the only version you've heard.

You can't just ask for an accent

The obvious approach is to tell the voice model "speak Spanish-accented English" and move on. That works for Spanish. It falls apart immediately after.

Speech models support a fixed list of spoken languages. Your learner does not respect that list. Somebody wants Montenegrin, or Silesian, or Ancient Greek, or Brazilian Portuguese specifically rather than Portuguese generally. None of those are options. Refusing them would be the wrong answer to the wrong question — Montenegrin sounds very like Serbian, and Serbian is on the list.

So before the first spoken word, Wading resolves what we call a pronunciation anchor: the supported language whose phonology a native speaker of your target would recognise as "how our words sound." Montenegrin anchors to Serbian. Silesian to Polish. Ancient Greek to Greek. Brazilian Portuguese to Portuguese. Esperanto — a constructed language with a deliberately Romance sound system — anchors to Italian.

It's resolved once per language, ever, and cached. It is not a guess made fresh each session.

The cases where the honest answer is "no"

Klingon has a defined phonology, and it is not the phonology of anything on the list. We could pick something adjacent, and it would be confidently, consistently wrong — teaching you an accent no Klingon speaker has.

So the resolver is allowed to return nothing. When there's no reasonable stand-in, Wade speaks without an anchor rather than with a false one. A missing accent is a gap. A wrong accent is a lie you'll repeat.

Playful English registers get the sensible treatment too: Pirate Speak, Shakespearean English and Pig Latin all anchor to English, because that's what they are.

While we're on things that sound right and aren't

The same principle governs what Wade writes.

If you're learning Japanese, the word on screen is ごはん — not "gohan." A learner who only ever sees the romanization can never learn to read the language, and a chip showing Latin letters quietly removes that possibility for good. So the real script is non-negotiable, and the readable romanization rides alongside it rather than replacing it.

This regressed on us once, instructively. An earlier rule said "write it in the same script as the vocabulary list" — sensible, except a new learner's list is empty. So the model romanized, which made the list Latin, which pinned it to Latin permanently. One reasonable-sounding instruction, and a Japanese learner would never have seen a kana character.

There's a limit, and it's about pixels rather than principle. Klingon's native pIqaD lives in the Unicode Private Use Area, which means on essentially every real device it renders as a row of empty boxes. Empty boxes teach nothing. So for scripts a phone can't display, Wade uses the community's standard Latin orthography — nuqneH, Qapla' — and the real-script rule applies only to scripts that will actually appear.

Why bother

None of this shows up in a feature list. Nobody chooses a language app because its otter has correct vowel placement.

But hearing a word said properly, by something patient enough to say it again, is most of what voice practice is for. If we got that wrong, the rest of the app would be teaching you to be confidently mispronounced — and doing it in a voice you trust.

Come wade in.