keryx voice¶
Generate voiceover narration with the ElevenLabs voice clone — a faithful port
of the blog gen-vo.py (single-line mode). Voice settings default to the reel
theme's voice block unless overridden by flags.
keryx voice --text "the line to narrate" [--out vo.mp3]
[--theme <reel-theme>] [--voice <id>] [--stability x] [--similarity y]
| Flag | Meaning | Default |
|---|---|---|
--text |
the line to narrate (required) | — |
--out |
output MP3 path | vo.mp3 |
--theme |
reel theme supplying the voice defaults | the configured reel default |
--voice |
override the clone voice id | theme voice.id |
--stability |
override stability | theme voice.stability |
--similarity |
override similarity | theme voice.similarity |
The credential comes from the ELEVENLABS_API_TOKEN environment variable (never
config). Add --output json for machine-readable output.
Notes¶
- Provider-selected via
providers.voice(default ElevenLabs) — see Providers. - Take management (
keryx voice select) and batch narration from a storyboard land with the authoring loop (Phase 1.5). - Flag overrides apply only when non-zero/non-empty; otherwise the theme default is used.
Take management¶
Generate candidate takes into a workspace, then promote one:
keryx voice --workspace <slug> --line <N> --takes <K> # K candidate takes for line N → vo/takes/
keryx voice select <line> <take> --workspace <slug> # promote one → vo/NN.mp3 (R-WS-1)
--takes reads line N's vo (or text) from the workspace storyboard and the
reel theme's voice settings (plus any per-card voice override). Generation is
bounded (max 25) and each call is timed.