Snap misheard character names to GM-defined "heard as" aliases after transcription #579
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem. On the 2026-09-09 session, "Viq" (Viquilonto's nickname) was transcribed as Vic, Vick or Nick in all 22 mentions, and Idani as Adani/Bidani/Dani in 5 of 31, with the campaign vocabulary in the prompt and, per #577's measurement, equally with it as hotwords. Whisper's bias cannot overturn a common English word the acoustics already match, so no prompt setting fixes this. It matters twice: the transcript reads wrong, and the beat validator checks a claimed actor against speaker labels and character names, so a line about "Vic" cannot support a beat about Viq.
Design. A deterministic, GM-controlled correction applied to the segment list after the hallucination filter (#569) and before the merge:
campaign_charactersrow (and optionally each NPC / lore entry) gets a list of "heard as" aliases the GM types: for Viq,Vic, Vick; for Idani,Adani, Bidani. Reuselore_entry_aliaseswhere the character has a lore entry; add a smallheard_asJSON column oncampaign_charactersotherwise. No automatic fuzzy matching: "Nick" is also a real name, and a GM is the only one who knows their table.name_snaps, JSONB likehallucination_drops), never log the text.Measure on the dev replay with
Vic, Vickon Viq andAdani, Bidanion Idani: expect Viq 22 / 0 and Idani 31 / 0 in the spelling query used on #577, and a higher beat validation rate for beats naming Viq.Related: #569 (filter, same seam), #574 (the vocabulary cleaner), #577 (why prompting is not the fix).
Picking this up now (2026-09-09). Plan:
heard_asaliases oncampaign_characters(JSON list, raw-SQL migration), a snap step inprocess_audioright after the hallucination filter and before the merge,name_snapscounts onsummarisation_runs, the aliases folded into the ASR vocabulary, and an "Also heard as" field on the character card. Measured afterwards on the dev replay withVic, Vickon Viq andAdani, Bidanion Idani against the numbers on #577.Measured on the dev replay (same audio; aliases set to Vic, Vick on Viquilonto (Viq); Adani, Bidani on Idani; Parahark on Harrowhark; vocabulary grew from 36 to 41 terms with the aliases at the alias tier).
name_snapson the run:{"Viquilonto (Viq)": 27, "Idani": 60, "Harrowhark": 5}. Idani's count is higher than the mangled figure suggests because putting the aliases in the vocabulary made Whisper emit "Adani" consistently, which is exactly the spelling the snap wants; the mention count rose too (26 to 42 correct) because several lines that had been transcribed as other words now resolve. The one remaining Idani variant is "Dani", which was not in the alias list.Shipped in #581, closing. #580 carries the export/import gap.