Long-form story-writer with canon-keeping, sequel-continuity, and self-hosted narration. Database-is-source-of-truth — writer is the tooling.
Find a file
2026-06-28 21:38:51 -07:00
docs v0.2 scaffold: vendor clawdforge SDK + forge module + Whisper plan 2026-05-13 10:18:56 -07:00
engines skald (engine/tortoise): public release prep — AGPL-3.0, generic config, engine-variant README 2026-06-28 21:38:51 -07:00
migrations multi-voice: per-character dialogue rendering 2026-05-14 08:35:33 -07:00
seeds/authors v0.3 step 2: Orson Black soul + author-aware forge + skald continue CLI 2026-05-13 12:06:28 -07:00
skald skald (engine/tortoise): public release prep — AGPL-3.0, generic config, engine-variant README 2026-06-28 21:38:51 -07:00
skald-core multi-voice: per-character dialogue rendering 2026-05-14 08:35:33 -07:00
vendor/clawdforge skald (engine/tortoise): public release prep — AGPL-3.0, generic config, engine-variant README 2026-06-28 21:38:51 -07:00
.gitignore scaffold v0.1: postgres+pgvector inside-container, schema, markdown ingest, CLI 2026-05-13 09:04:28 -07:00
Cargo.lock multi-voice: per-character dialogue rendering 2026-05-14 08:35:33 -07:00
Cargo.toml skald (engine/tortoise): public release prep — AGPL-3.0, generic config, engine-variant README 2026-06-28 21:38:51 -07:00
compose.yml skald (engine/tortoise): public release prep — AGPL-3.0, generic config, engine-variant README 2026-06-28 21:38:51 -07:00
Dockerfile dockerfile: copy vendor/ during cache layer (path-dep needs full crate) 2026-05-13 10:30:58 -07:00
entrypoint.sh scaffold v0.1: postgres+pgvector inside-container, schema, markdown ingest, CLI 2026-05-13 09:04:28 -07:00
LICENSE skald (engine/tortoise): public release prep — AGPL-3.0, generic config, engine-variant README 2026-06-28 21:38:51 -07:00
README.md skald (engine/tortoise): public release prep — AGPL-3.0, generic config, engine-variant README 2026-06-28 21:38:51 -07:00

skald — engine/tortoise variant

This branch is the Tortoise-TTS backend variant of 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.

docker compose up -d            # skald + postgres
# bring up the Tortoise sidecar from engines/tortoise/

License

AGPL-3.0-or-later — see LICENSE.