mirror of
https://github.com/hanzoai/video.git
synced 2026-11-03 04:21:39 +00:00
Separates creative grammar (renderer_family) from technical engine (render_runtime) so HyperFrames can stand alongside Remotion as a first-class runtime instead of masquerading as a Remotion sub-case. Locks runtime choice at proposal stage and enforces it end-to-end: the schemas require it, video_compose routes by it, the reviewer fails closed on silent swaps, and a parametrized contract test walks every pipeline manifest to ensure each planning-stage skill explains the conversation to the user. Adds hyperframes_compose (scaffold/lint/ validate/render/doctor/add_block), a playbook -> CSS style bridge, and vendored HyperFrames Layer 3 skills from commit d291358, pinned via PROVENANCE.md for future re-sync. Final_review now records render_runtime_used and runtime_swap_detected so compose lies are catchable after the fact.
1.6 KiB
1.6 KiB
Text-to-Speech
Generate speech audio locally using Kokoro-82M (no API key, runs on CPU).
Voice Selection
Match voice to content. Default is af_heart.
| Content type | Voice | Why |
|---|---|---|
| Product demo | af_heart/af_nova |
Warm, professional |
| Tutorial | am_adam/bf_emma |
Neutral, easy to follow |
| Marketing | af_sky/am_michael |
Energetic or authoritative |
| Documentation | bf_emma/bm_george |
Clear British English |
| Casual | af_heart/af_sky |
Approachable, natural |
Run npx hyperframes tts --list for all 54 voices (8 languages).
Speed Tuning
- 0.7-0.8 — Tutorial, complex content
- 1.0 — Natural pace (default)
- 1.1-1.2 — Intros, upbeat content
- 1.5+ — Rarely appropriate
Usage
npx hyperframes tts "Your script here" --voice af_nova --output narration.wav
npx hyperframes tts script.txt --voice bf_emma --output narration.wav
In compositions:
<audio
id="narration"
data-start="0"
data-duration="auto"
data-track-index="2"
src="narration.wav"
data-volume="1"
></audio>
TTS + Captions Workflow
npx hyperframes tts script.txt --voice af_heart --output narration.wav
npx hyperframes transcribe narration.wav # → transcript.json with word-level timestamps
Requirements
- Python 3.8+ with
kokoro-onnxandsoundfile - Model downloads on first use (~311 MB + ~27 MB voices, cached in
~/.cache/hyperframes/tts/)