diff --git a/README.md b/README.md index cbc8edf..8936ccc 100644 --- a/README.md +++ b/README.md @@ -113,11 +113,9 @@ wrapper, so the WebUI does not need to implement them. See `docs/TTS-DESIGN.md`. - The Flextalk archive lacks `data2.cab`; `unshield -O` extracts `data1.cab` but one tail file (`WatsonUNInstall.dll`) is incomplete. -## Reference material (not in this repo) +## Reference material -- `third_party/speech.h` — SAPI4 SDK header (vendored, so the build is standalone) -- `../reference/SAPI4-CLI`, `../reference/TETYYS-SAPI4` — host examples -- `../reference/NetTTS` — VOX parser reference for `setup/vox_parser.py` -- `../Microsoft-Sam-Mary-Mike-TruVoice-WSAPI4` — installers/payloads -- `../flextalk` — Flextalk installer archive + extraction -- `/mnt/ghidra/decomp/{msttssyn.dll,speech.dll}/` — decompiled corpora +- `third_party/` — vendored dependencies; see `third_party/README.md`. Everything the + tool needs is in the repo (SAPI4 runtime, MSTTS voices, Flextalk cabinet, `speech.h`, + NetTTS parser source). +- `/mnt/ghidra/decomp/{msttssyn.dll,speech.dll}/` — decompiled corpora (external, optional) diff --git a/docs/TTS-DESIGN.md b/docs/TTS-DESIGN.md index 50eedb0..99fe98f 100644 --- a/docs/TTS-DESIGN.md +++ b/docs/TTS-DESIGN.md @@ -393,8 +393,20 @@ not need to parse or implement them: ### 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. +The engine project is standalone and archival: it has no path dependency on Veskslop, +and every non-installable dependency is vendored under `third_party/`, so nothing is +fetched from the network at build or run time: + +- `third_party/speech.h` — SAPI4 SDK header used by the build. +- `third_party/sapi4/` — SAPI4 runtime (`SPEECH.DLL` + INF), MSTTS engine + voices, + and the original installers. +- `third_party/flextalk/data1.cab` — AT&T Flextalk installer (Keith Bell / Kerry Watson). +- `third_party/nettss-reference/` — NetTTS VOX parser source, kept to validate + `setup/vox_parser.py`. + +Only toolchain packages are installed by `setup/install-deps.sh` (Wine/Winelib, ffmpeg, +python3, unshield, mingw). Everything else lives in the repository. + `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: @@ -411,16 +423,16 @@ scripts: | `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. +everything else from its own location plus the env file. ### 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. +1. Copy `microslopsam/` (or replace the existing copy). The vendored assets under + `third_party/` come along, so the merged tree stays self-contained. 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.