VOX preset tuned against game word assets; add vox_compare tool

This commit is contained in:
Fisto
2026-09-22 13:51:51 +02:00
parent 3d82a98b69
commit 3c896bac4d
6 changed files with 356 additions and 24 deletions
+8 -4
View File
@@ -129,10 +129,14 @@ without them.
- VOX mode is Flextalk-only. The wrapper enables it with `VESKSLOP_TTS_VOX=1`
(`VESKSLOP_TTS_VOX_CLEAN=1` drops the stutter wrapper) and it takes precedence
over `VESKSLOP_TTS_WORDS`.
- Half-Life presets (`VESKSLOP_TTS_PRESET=vox|hev`) target Keith Bell only. VOX values
come from NetTTS `nettts_flextalk_vox_profile.reg`: pitch 3, rate 17, prominences 22,
head size 52, volume 70 (factory: 27/33/17/46/100); `vox` also implies VOX prosody.
`hev` (pitch 15, rate 24) is an unverified starting point - HL1 credits the suit
- Half-Life presets (`VESKSLOP_TTS_PRESET=vox|hev`) target Keith Bell only. VOX starts
from NetTTS `nettts_flextalk_vox_profile.reg` (pitch 3, rate 17, head 52, lowering 40)
and is tuned against the game's word assets from `suchipi/half-life-vox-console`:
shipped values are pitch 0, rate 15, prominences 22, head size 34, lowering 50,
volume 70. Measured on 38 words vs the game assets: F0 82.3 vs 82.3 Hz, duration
22.99 vs 23.36 s, >2 kHz share 0.0172 vs 0.0186 (old approximation: 87.5 Hz /
22.28 s / 0.0137). `tools/vox_compare.py` reproduces the comparison. `hev`
(pitch 15, rate 24) remains an unverified starting point - HL1 credits the suit
sounds to Kelly Bailey with no published settings.
- Flextalk rate/pitch are applied as **vendor tags** (`\!R` = duration factor,
`\!%` = pitch multiplier), never `-s`/`-p`, because ITTSAttributes override the