docs: corrected Flextalk pitch/speed mapping (per-voice naturals, REG_DWORD fix)
This commit is contained in:
+16
-11
@@ -230,17 +230,22 @@ record what the engine needs to interpret, add, or hide._
|
||||
|
||||
### Speed and pitch mapping (measured 2026-09-15)
|
||||
|
||||
- SAPI4 uses engine units, not multipliers or semitones. Measured on the dev host:
|
||||
- MSTTS Sam: speed 30-450, natural about 150; pitch 50-200 with a real audible effect
|
||||
(F0 about 134 Hz at pitch 50, about 199 Hz at pitch 200 on the test phrase).
|
||||
- Flextalk: speed 50-390, natural about 300 (output with no setting is byte-identical to
|
||||
`-s 300`); **pitch has no effect** (byte-identical output at pitch 100/150/200), so the
|
||||
wrapper ignores `pitch` for Keith Bell and Kerry Watson.
|
||||
- Mapping implemented in `setup/vekslop-tts.sh`: `speed 1.0` = the voice's natural rate
|
||||
(150 MSTTS, 300 Flextalk), scaled by the multiplier and clamped to the engine range.
|
||||
`pitch` for MSTTS maps ±12 semitones to engine units `100 ± 6.25·st`, clamped to 50-200.
|
||||
Pitch is a no-op for Flextalk voices; the wrapper's `--voices` output marks
|
||||
`keith-bell` and `kerry-watson` with the `no-pitch` flag so the UI disables the slider.
|
||||
- SAPI4 uses engine units, not multipliers or semitones. Measured on the dev host with a
|
||||
correctly typed Flextalk install:
|
||||
- MSTTS Sam: speed 30-450, natural about 150; pitch 50-200 with a real audible effect.
|
||||
- Flextalk: speed 50-390, natural about 150 (durations at 100/200/300 fit a natural rate
|
||||
near 140-150); pitch 50-250 works. Measured F0: Kerry 0 st = 209 Hz, -6 st = 148 Hz,
|
||||
+6 st = 250 Hz (clamped); Keith 0 st = 119 Hz, +6 st = 170 Hz.
|
||||
- **Correction to the earlier note**: the previous "Flextalk ignores pitch / natural 300"
|
||||
finding was an artifact of the speaker registry values being stored as `REG_SZ`. The
|
||||
engine requires `REG_DWORD` for numeric speaker values; with strings it synthesizes a
|
||||
monotone buzz at maximum pitch. Fixed in `setup/setup-flextalk.sh`; no `no-pitch` flag
|
||||
is needed.
|
||||
- Mapping implemented in `setup/vekslop-tts.sh`: `speed 1.0` = natural rate 150 for every
|
||||
voice, scaled by the multiplier and clamped to the engine range. `pitch` semitones scale
|
||||
the voice's natural pitch unit by `2^(st/12)` and clamp to the range. Natural units are
|
||||
about 100 (MSTTS), 106 (Keith Bell) and 186 (Kerry Watson). The engines' F0 response is
|
||||
approximate, not semitone-calibrated.
|
||||
- `{setting}` is unused; the wrapper reads `VESKSLOP_TTS_SPEED` and
|
||||
`VESKSLOP_TTS_PITCH` from the environment when Veskslop later exports them.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user