Files
UmbraAudio/samples/translations
B.D. Murphy 2f46be9520 Sample translations: formal -> casual register, all 10 languages
The Korean render sounded formal because the Korean translation was in
합쇼체 (-입니다/-합니다/-습니다) - the written formal register, like a
news anchor. Every line used it.

Korean politeness is grammatical, not stylistic: it lives in the verb
endings. 합쇼체 -습니다, 해요체 -이에요/-예요, 해체 -아/-어 are different
morphemes, so no TTS instruction can convert them. The fix has to be in
the text. The same applies to Japanese です/ます and to the T/V languages,
where Sie->du changes the words themselves.

This was not a Korean-only problem. All 9 translated languages were in
formal register while the English source is neutral and friendly:

  DE 12 markers  FR 13  PT 5  ES 4  IT 3  RU 3  JA polite  KO 합쇼체
  ZH 3 honorific 您          EN 0 (source)

Applied:
  KO  합쇼체 -> 해요체. 해체/반말 deliberately NOT used: speech level is
      social, and Nanny speaking 반말 to Kainda would be wrong.
  DE/FR/ES/IT/PT  Sie/vous/usted/Lei/você -> du/tu/tú/tu/tu
  RU  kept вы; ты is too intimate for narration. Softened instead.
  JA  polite-but-warm, fewer ください
  ZH  您 -> 你

Re-verified against the formal-pronoun probe (not the earlier loose one,
which flagged possessives: su/suo/seu are 'his', and Japanese です is the
copula while います is existential - both register-neutral).

This is Pass 3 from specs/27 (register and voice consistency), which was
specified and then never applied.

Also fixed a drift trap: build_sample_translations.py wrote to
scripts/translations, a directory nothing reads and nothing tracks, while
the tracked record is samples/translations and the renderer reads
<project>/samples/translations. One regeneration silently left both stale.
It now writes the repo copy and, with --project, the renderer's copy in
the same run.

Re-rendered 120 clips, 0 failed. All 120 bitwise-different from the
formal render, confirming the new text was synthesized rather than a
replay. Korean total 117.8s -> 110.1s, consistent with the shorter 해요체
endings. Previous render kept as Lang_test_formalRegister.

Suite: 721 passed, 8 pre-existing.
2026-10-13 20:54:36 -07:00
..

Deal Hunter sample chapter - translated

Sample chapter 1 (the voice-introduction sample) in all 10 languages Qwen3-TTS produces. Files are named <base>_<LANG>.json.

These are LLM-produced samples from a single pass. They are not the multi-pass semantic translation the production pipeline is meant to do (see specs/27-translation-pipeline-multipass.md). They exist to evaluate the audio stage per language and to agree the file format early. Native-speaker review required.

Register

Casual/informal register throughout, matching the English source. Korean uses 해요체 (everyday polite), NOT 합쇼체 (formal written) and NOT 해체 (반말, which would be socially wrong between these characters). T/V languages use the informal form (du/tu/tú). Russian keeps вы, because ты is too intimate for narration. Japanese stays polite-but-warm.

Files

  • deal_hunter_sample_ch1_DE.json
  • deal_hunter_sample_ch1_EN.json
  • deal_hunter_sample_ch1_ES.json
  • deal_hunter_sample_ch1_FR.json
  • deal_hunter_sample_ch1_IT.json
  • deal_hunter_sample_ch1_JA.json
  • deal_hunter_sample_ch1_KO.json
  • deal_hunter_sample_ch1_PT.json
  • deal_hunter_sample_ch1_RU.json
  • deal_hunter_sample_ch1_ZH.json

Source issues found while translating

  • utt 3: 'Kianda's aunt' — 'Kianda' is a typo for 'Kainda'.
  • utt 5: 'the AI the runs the ship' — 'the' should be 'that'.
  • utt 8: 'I trade salvage' — double space.
  • The narrator's cues are telegraphic ('Princess Kainda say hello'), which a translator has to resolve by guessing. The production pipeline should decide whether to normalise these at the source.
  • Every utterance in this chapter is typed 'narration' even where a character speaks in the first person. Same class of finding as the speaker-review audit; it matters because emotion and pace are set per utterance.

Decisions to confirm

  • Deal Hunter and Umbra Audio kept in English in every language. Deal Hunter is both the title and the ship AI's name, so translating it would break the referent inside the story. Localisation decision, yours.
  • Character names transliterated by sound, not translated by meaning.