# skald — `engine/tortoise` variant This branch is the **Tortoise-TTS backend** variant of [skald](https://git.sulkta.com/Sulkta-OSS/skald). It carries engine-specific tuning for Tortoise that doesn't generalise to the other backends; everything else tracks `main`. For the full project — the story-writer, the schema, the narration pipeline — see `main` and the root `README.md`. ## What's different here Tortoise-TTS is the highest-quality narrator of the three backends, at the cost of speed: it is far slower than real-time and is meant for batched, overnight renders rather than interactive use. The tuning in `engines/tortoise/server.py` covers: - **Sentence chunking** — long passages are split so each chunk conditions cleanly. - **Device selection** — explicit GPU/CPU placement. - **Pitch / rate modulation** — post-processing for single-voice multi-character rendering. Tortoise has ~25 named built-in voices, so no voice cloning is required. On an 8GB GPU it wants the card largely to itself — stop the other engines for the duration of a Tortoise run, or give it a dedicated GPU. ## Usage The Tortoise sidecar speaks the same `POST /synthesize` + `GET /healthz` contract as the other engines (see `engines/README.md`). Point skald's `TORTOISE_URL` at it and route `tortoise_*` voices to it. ```bash docker compose up -d # skald + postgres # bring up the Tortoise sidecar from engines/tortoise/ ``` ## License AGPL-3.0-or-later — see `LICENSE`.