Expose the Half-Life voices and tidy the radio kit

This commit is contained in:
Fisto
2026-09-21 12:38:47 +02:00
parent c66d00ee59
commit baaaba3dcd
7 changed files with 61 additions and 49 deletions
+5 -4
View File
@@ -173,10 +173,11 @@ from the TTS panel:
word: measured first sound 0.5 s instead of 2.4 s on a ten-word line. Streaming skips the
loudness measurement (`VESKSLOP_TTS_STREAM_GAIN_DB` compensates if needed) and cannot use VOX
prosody, which needs the whole sentence.
A **preset** select (`tts.preset`: factory, VOX, HEV) shifts the Keith Bell speaker profile to
the Half-Life approximation; `vox` also implies VOX prosody unless VOX is explicitly off, and
overrides travel as `VESKSLOP_TTS_PRESET` / `{preset}`. Precedence is preset < profile <
expression, so the sliders still win over the preset. The wrapper writes the audible profile to
The Half-Life voices are first-class entries in the voice list: **VOX (Half-Life)** and **HEV
suit** are Keith Bell with the corresponding profile preset, and VOX carries its prosody with it
(so no separate prosody toggle). Selecting the VOX voice shows its **clean (no stutter)** option
in the profile area. The underlying `tts.preset` / `vox` / `voxClean` values remain available to
the API and MCP; precedence is preset < profile < expression, so the sliders still win. The wrapper writes the audible profile to
both registry hives (plus the preset's Gender/Line Mode and a Default Speaker pointer), and for
Flextalk it sends rate/pitch as the sticky `\!R` / `\!%` vendor tags rather than
`ITTSAttributes`; attributes only apply to MSTTS voices. Neutral sliders emit neither, so the