Let word mode combine with the VOX preset

This commit is contained in:
Fisto
2026-09-21 11:47:38 +02:00
parent 7ad0a691db
commit 51d42b3a16
6 changed files with 44 additions and 16 deletions
+8 -4
View File
@@ -158,8 +158,10 @@ from the TTS panel:
default 0), and word mode (`tts.words`) with a gap in ms (`tts.wordGapMs`) for the radio/robot
character. **VOX prosody** (`tts.vox`) routes the line through the NetTTS-style encoder first -
sentence breaks, lead-ins, weighted pauses, and Flextalk vendor tags - for Black Mesa
announcement energy; **clean** (`tts.voxClean`) drops the staccato wrapper. VOX outranks word
mode and needs `python3` on the host. Both travel to the command provider as
announcement energy; **clean** (`tts.voxClean`) drops the staccato wrapper. Word mode **combines
with the presets** and takes precedence over VOX prosody: each word is its own engine instance,
so the parser is skipped and the vendor tags go on every word (`\!R` rate, `\!%` pitch). VOX
needs `python3` on the host. Both travel to the command provider as
`VESKSLOP_TTS_VOX` / `VESKSLOP_TTS_VOX_CLEAN` (or the `{vox}` / `{vox_clean}` placeholders).
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
@@ -168,8 +170,10 @@ from the TTS panel:
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
preset is reproduced exactly. `sh microslopsam/setup/test-wrapper.sh` checks this contract with
stubbed wine and engine binaries, no Wine install needed. The preset values also show up in the
preset is reproduced exactly. The daemon always exports `VESKSLOP_TTS_VOX` (0 or 1) so an
explicit off is honored, and the panel lets a preset, VOX, and word mode be combined.
`sh microslopsam/setup/test-wrapper.sh` checks this contract with stubbed wine and engine
binaries, no Wine install needed. The preset values also show up in the
voice metadata defaults, so the panel's "default" snap points match what the engine gets.
- **Test lines** - Attention, Laboratory, Critical, Health, and Radiation, plus two custom lines
kept in `localStorage`. Each button speaks the line with the current profile, so a change can be