Configurable paths (config.sh + generated env), vendored speech.h, merge docs

This commit is contained in:
Fisto
2026-09-16 08:38:19 +02:00
parent 6d010292f2
commit 805c960a4a
11 changed files with 6841 additions and 73 deletions
+37
View File
@@ -391,6 +391,43 @@ not need to parse or implement them:
- Verified on the dev host: `/rate 50` doubles the line duration; `/pitch 150` raises
the median F0 from 122 Hz to 177 Hz.
### Paths and configuration (standalone)
The engine project is standalone: it has no path dependency on Veskslop and only a
default sibling-directory dependency on the asset checkouts, both overridable.
`setup/install.sh` writes `setup/microslopsam.env` with absolute paths; environment
variables take precedence over that file, so anything can be relocated without editing
scripts:
| Variable | Default | Meaning |
| --- | --- | --- |
| `MICROSLOP_ROOT` | repo root | project root |
| `MICROSLOP_BUILD` | `$MICROSLOP_ROOT/build` | host binaries, samples |
| `MICROSLOP_PREFIX` | `~/.wine-microslopsam` | wine prefix (exported as `WINEPREFIX`) |
| `MICROSLOP_ASSETS` | `../Microsoft-Sam-Mary-Mike-TruVoice-WSAPI4` | SAPI4/MSTTS payloads |
| `MICROSLOP_FLEXTALK_DIR` | `../flextalk` | Flextalk archive/extraction |
| `MICROSLOP_SPEECH_H_DIR` | `$MICROSLOP_ROOT/third_party` | `speech.h` include dir (vendored) |
| `MICROSLOP_DISPLAY` | `:77` | Xvfb display used for Wine |
| `MICROSLOP_WINE` / `_XVFB` / `_PYTHON` / `_FFMPEG` | tool names | tool overrides |
The wrapper needs only `VESKSLOP_TTS_CMD` to point at its absolute path; it derives
everything else from its own location plus the env file. `speech.h` is vendored in
`third_party/`, so the build no longer needs the SDK checkout.
### Merging into Veskslop
This tree is written to survive a copy into the Veskslop repository next to its daemon:
1. Copy `microslopsam/` (or replace the existing copy), then refresh the configuration:
`MICROSLOP_UPDATE_ENV=1 microslopsam/setup/install.sh`. Re-running install is
idempotent; it rewrites `setup/microslopsam.env` for the new absolute paths.
2. No daemon changes are required. The env/placeholder contract is unchanged
(`VESKSLOP_TTS_*`, `{out}`, `{text_file}`, voice/speed/pitch/expression/profile/
highpass/echo/words/word_gap_ms). New features are additive and default off.
3. Optional Veskslop-side follow-up: a `tts.vox` preference that exports
`VESKSLOP_TTS_VOX` (like `words`) and a line in the TTS panel help. The inline
`/rate` and `/pitch` controls need no UI work at all.
### Transport and latency
- Installation is one command: `setup/install.sh` (system dependencies with sudo, wine