From 408da63daf90e5f88688246d22a4ccc1cca1ab3a Mon Sep 17 00:00:00 2001 From: Kiyeon Jeon Date: Sun, 21 Jun 2026 20:53:10 +0900 Subject: [PATCH] =?UTF-8?q?feat(audio):=20scene-fitted=20Kokoro=20narratio?= =?UTF-8?q?n=20=E2=80=94=20reframe=20narrate=20(0.6.44)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make voiceover first-class and fit it to the scene. Narration is addressable DATA (text + label anchor + voice) authored as a sibling -vo/script.json the scene imports into audio.narration; `reframe narrate` reads the label clock, synthesizes each line with a Kokoro python sidecar, and auto-fits its speech rate to the slot between its anchor and the next line. The scene graph drives the voice timing, and (being label-anchored) it survives retiming/regen. Core (golden-safe, additive): - AudioIR.narration: NarrationLineIR[] (ir.ts) — { at, text, voice?, gain?, offset? } + baked { file, speed, duration }. - resolveAudioPlan expands narration → label-anchored file cues; the baked `duration` sizes the bed's duck window; an un-synthesized line warns (not fatal). - validate.ts: narration-* structural checks. No-narration scenes stay byte-identical (404 tests green, goldens unchanged). CLI + sidecar: - `reframe narrate [--voice] [--max-speed] [--script] [--dry-run]` (narrate.ts): slot from compiled.labelTimes, ≤2-pass auto-fit (speed clamped 1.0–maxSpeed, warn on overrun), bakes file/voice/speed/duration into script.json, prints a fit table. --dry-run estimates with no synthesis. - narrate.py Kokoro sidecar (stdin JSON → wavs + durations); shipped beside dist/narrate.js. python+kokoro preflighted like ffmpeg/chromium (optional dep). Determinism: the .wav are external assets (same-machine, not golden), like images; only the AudioPlan is deterministic. Example: examples/scenes/narrated-demo.ts (+ narrated-demo-vo/script.json), AGENTS.md / CHANGELOG / docs, scene count 67→68. PATCH bump reframe-video → 0.6.44. Co-Authored-By: Claude Opus 4.8 --- AGENTS.md | 7 +- CHANGELOG.md | 21 ++ README.md | 5 +- docs/cli-reference.mdx | 1 + docs/examples.mdx | 4 +- docs/gallery.mdx | 2 +- examples/README.md | 3 +- examples/scenes/narrated-demo-vo/close.wav | Bin 0 -> 79244 bytes examples/scenes/narrated-demo-vo/intro.wav | Bin 0 -> 85244 bytes examples/scenes/narrated-demo-vo/point.wav | Bin 0 -> 133244 bytes examples/scenes/narrated-demo-vo/script.json | 23 ++ examples/scenes/narrated-demo.ts | 45 ++++ examples/tsconfig.json | 3 +- packages/core/src/audio.ts | 43 +++- packages/core/src/ir.ts | 33 +++ packages/core/src/validate.ts | 19 ++ packages/core/test/audio.test.ts | 48 ++++ packages/reframe-video/package.json | 2 +- packages/reframe-video/scripts/build.ts | 4 + packages/render-cli/src/narrate.py | 45 ++++ packages/render-cli/src/narrate.ts | 217 +++++++++++++++++++ packages/render-cli/src/reframe.ts | 27 +++ 22 files changed, 542 insertions(+), 10 deletions(-) create mode 100644 examples/scenes/narrated-demo-vo/close.wav create mode 100644 examples/scenes/narrated-demo-vo/intro.wav create mode 100644 examples/scenes/narrated-demo-vo/point.wav create mode 100644 examples/scenes/narrated-demo-vo/script.json create mode 100644 examples/scenes/narrated-demo.ts create mode 100644 packages/render-cli/src/narrate.py create mode 100644 packages/render-cli/src/narrate.ts diff --git a/AGENTS.md b/AGENTS.md index 8a30035..942b34e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -18,6 +18,7 @@ deterministic mp4 render. Human edits survive AI regeneration of the base. - `pnpm reframe compile [-o out.json] [--stdin] [--code ""] [--json]` — bundle + validate eDSL source into SceneIR JSON, NO render (no ffmpeg/chromium; fast). On failure: a concise classified error (`bundle`/`eval`/`validation`), never the base64 bundle; `--json` makes it `{ok:false,error,kind,issues?}` where `issues` is the structured validation problems (each `{code,path,message}` — e.g. `code:"unknown-blend", path:"nodes.box"`). The in-process equivalent is exported as `reframe-video/compile` (`loadScene`/`loadSceneFromCode`/`checkDeterminism`, server-only); a thrown `SceneValidationError` carries `.issues` (and `.problems` for back-compat), and `SceneLoadError.issues` propagates them across the scene bundle. Entry `packages/render-cli/src/compile.ts`; loader `loadScene.ts`. - `pnpm reframe frame [--t ] [-o out.png]` — render ONE frame at time `t` to a PNG (same renderer as `render`, no ffmpeg muxing; chromium only). For an agentic render-and-look loop (feed the frame back to a model). Reuses `renderFrameAt` (`frameLoop.ts`); entry `packages/render-cli/src/frame.ts`. - `pnpm reframe assemble [-o name] [--title "…"] [--bgm ] [--hold s] [--seed N]` — the **files → scene** path: probe each image/video for its real duration (ffprobe) and scaffold an editable montage scene `.ts` wiring `photoMontage` (clip-aware holds, no freeze) + an optional `title` + a music bed. Probed numbers are baked in → the emitted scene is a normal deterministic scene. Probe `packages/render-cli/src/media/probe.ts`; entry `assemble.ts`. +- `pnpm reframe narrate [--voice ] [--max-speed n] [--script ] [--dry-run]` — **scene-fitted Kokoro voiceover**. Reads a sibling `-vo/script.json` of `{ at, text }` lines (imported into `audio.narration`), computes each line's slot from the compiled label clock, synthesizes it with a Kokoro python sidecar (`narrate.py`), and **auto-fits** its speech rate to the slot (bounded by `--max-speed`, default 1.3; warns if even max overruns). Bakes `file`/`voice`/`speed`/`duration` back into `script.json` (like `assemble` bakes ffprobe numbers); the scene then plays each line as a label-anchored `file` cue (survives retiming/regen) with the bed ducking under the whole utterance. `--dry-run` prints the fit table from a length *estimate* (no synthesis, no Kokoro needed). Kokoro is an **optional dep** (`pip install kokoro` + espeak-ng), preflighted like ffmpeg/chromium; the `.wav` are external assets (same-machine, not golden) — commit `script.json` + wavs together. Entry `packages/render-cli/src/narrate.ts` + sidecar `narrate.py`; the IR field is `AudioIR.narration` (`packages/core/src/ir.ts`), resolved in `resolveAudioPlan` (`audio.ts`). See `examples/scenes/narrated-demo.ts`. - `pnpm reframe manifest [--json]` — dump the scene's **addressable surface**: every node (+ its `editableProps` and `animatedProps`), state, timeline label (+ `patchable` params), beat, and behavior, each with the overlay address that reaches it. The map an AI/human editor reads to patch a scene surgically (vs regenerating). Core `sceneManifest(compiled)` (`packages/core/src/manifest.ts`, exported); entry `packages/render-cli/src/manifest.ts`. - `pnpm reframe lint [--json] [--strict]` — the **studio-readiness gate**: (a) flag un-addressable motion (a tween/to/motionPath with no `label` can't be retimed by an overlay and a regen can silently drop it) + a `motionAddressableRatio` summary, and (b) for a `.ts` source, verify the scene is a **pure function of time** (`non-deterministic-render` finding) — it bundles once and evaluates TWICE, reporting the first IR address that differs (e.g. a `Math.random()`/`Date` baked into a prop), since a non-pure scene silently compiles to a different IR each time. `--strict` exits non-zero on findings (CI gate). Core `lintScene(compiled)` (addressability); `checkDeterminism(path)` (purity, exported via `reframe-video/compile`, `packages/render-cli/src/determinism.ts`); entry `lint.ts`. - `pnpm reframe verify-overlay ... [--json]` — compose an overlay onto a base and report applied-vs-orphaned, NO render. The regen-survival check: run vs the original base (all applied), then vs the AI-regenerated base — any orphan is a broken stable address. Non-zero exit on orphans (CI gate). Reuses `composeScene`/`formatComposeReport`; entry `verifyOverlay.ts`. @@ -290,7 +291,11 @@ addition to the git push, so both channels carry the same skill. - Audio: `scene.audio` cues anchor to timeline labels (they survive retiming); sfx are procedurally synthesized, CC0 samples live in `assets/sfx/` (LICENSE.md records provenance). Determinism contract covers the AudioPlan - and WAV bytes, not AAC-encoded mp4 bytes. + and WAV bytes, not AAC-encoded mp4 bytes. `audio.narration` lines (spoken VO) + resolve to label-anchored `file` cues after `reframe narrate` synthesizes them; + the Kokoro `.wav` are **external assets** (same-machine, version-dependent, like + images) — NOT part of the golden contract. Synthesis is out-of-band; only the + AudioPlan (cue timing + the baked `duration`-sized duck window) is deterministic. - Golden snapshots in `packages/core/test/__snapshots__` encode the determinism contract; if they change unexpectedly, that's a regression, not noise. diff --git a/CHANGELOG.md b/CHANGELOG.md index 440b74d..589404f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,27 @@ versions may change them. ## [Unreleased] +## [0.6.44] - 2026-06-21 + +### Added + +#### Scene-fitted Kokoro narration (`reframe narrate` + `audio.narration`) + +- New IR field **`AudioIR.narration`** — spoken voiceover lines (`{ at, text, voice? }`) + authored as a sibling `-vo/script.json` the scene imports. Each line resolves to a + **label-anchored `file` cue** (so VO survives retiming/regen), with a baked `duration` + sizing the bed's duck window. Additive + golden-safe (no narration → byte-identical plan). +- New command **`reframe narrate [--voice] [--max-speed] [--dry-run]`** — reads the + compiled **label clock**, synthesizes each line with a Kokoro python sidecar (`narrate.py`), + and **auto-fits** its speech rate to the slot between its anchor and the next line (bounded; + warns if even max speed overruns). Bakes `file`/`voice`/`speed`/`duration` back into + `script.json` (like `assemble` bakes ffprobe numbers). `--dry-run` prints the fit table from + a length estimate with no synthesis. +- Kokoro is an **optional dependency** (`pip install kokoro` + espeak-ng), preflighted like + ffmpeg/chromium. The `.wav` are external assets (same-machine, not golden) — the determinism + contract still covers the AudioPlan, not the synthesized audio bytes. +- Example `examples/scenes/narrated-demo.ts` (+ `narrated-demo-vo/script.json`). + ## [0.6.43] - 2026-06-21 ### Added diff --git a/README.md b/README.md index e211f7f..6251291 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,7 @@ your scene. | `pnpm reframe verify-overlay ... [--json]` | compose an overlay onto a base and report applied-vs-orphaned, no render — the regen-survival check (non-zero exit on orphans) | | `pnpm reframe labels ` | print the compiled event clock (every timeline label → exact seconds) — the timing source for audio cues | | `pnpm reframe assemble [-o name]` | probe images/videos (ffprobe) and scaffold an editable montage scene `.ts` wired with `photoMontage` | +| `pnpm reframe narrate [--voice ] [--max-speed n] [--dry-run]` | scene-fitted Kokoro voiceover: synth each `audio.narration` line and auto-fit its rate to the slot (needs python + `kokoro`) | | `pnpm reframe player [-o out.html]` | bundle a scene into one self-contained HTML that plays the motion live in any browser | | `pnpm reframe logo [--motion ]` | animate a logo (or a simple-icons brand) into a sting | | `pnpm reframe diff [scene.ts] [--t ] [--mode side\|blend\|diff\|grid]` | compare a render against a reference image | @@ -362,7 +363,7 @@ site. The [`docs/`](docs/) folder is its [Mintlify](https://mintlify.com) source |---|---| | [Introduction](docs/introduction.mdx) · [Quickstart](docs/quickstart.mdx) · [The loop](docs/the-loop.mdx) | the pitch, install, and the AI-write / human-edit / deterministic-render model | | [Gallery](docs/gallery.mdx) | a curated visual reel of scenes | -| [Examples](examples/README.md) | all 67 example scenes, by category | +| [Examples](examples/README.md) | all 68 example scenes, by category | | [Guides](docs/guides/) | the eDSL, directing, HTML/GSAP, and regeneration-contract guides (also `pnpm reframe guide`) | Curated renders live in [`docs/assets/gallery/`](docs/assets/gallery) and accumulate via `pnpm gallery` (the committed home; `out/` stays scratch). @@ -375,7 +376,7 @@ Curated renders live in [`docs/assets/gallery/`](docs/assets/gallery) and accumu | `packages/renderer-canvas` | DisplayList → Canvas 2D (browser + capture shared) | | `packages/render-cli` | Playwright capture + ffmpeg encode; also renders arbitrary HTML/GSAP deterministically via a virtual clock | | `packages/preview` | the Vite editor | -| `examples/` | 67 example scenes (see [`examples/README.md`](examples/README.md)), overlays, compositions, the edit-survival demo | +| `examples/` | 68 example scenes (see [`examples/README.md`](examples/README.md)), overlays, compositions, the edit-survival demo | | `labs/` | experiments and product probes (live-data → baked scene → render), kept out of `examples/` so it stays purely demonstrative | | `docs/` | the [Mintlify](https://mintlify.com)-ready docs site + the authoring guides (also `pnpm reframe guide`) | | `benchmark/` | **measurement artifacts, not product code**: LLM generation benchmark (RESULTS/ANALYSIS.md), regeneration-contract experiment (regen/), calibrated motion profiler (harness/motion/, MOTION.md) | diff --git a/docs/cli-reference.mdx b/docs/cli-reference.mdx index 909f223..ea6a3c0 100644 --- a/docs/cli-reference.mdx +++ b/docs/cli-reference.mdx @@ -15,6 +15,7 @@ Run any command with `npx reframe-video ` (no clone needed) or `pnpm re | `player [-o out.html]` | bundle a scene into one self-contained HTML that plays the motion live in any browser | | `logo [--motion ] [--energy n] [--seed n]` | animate a logo (or a simple-icons brand) into a sting | | `assemble [-o name] [--title "…"] [--bgm ]` | probe images/videos (ffprobe) and scaffold an editable montage scene `.ts` | +| `narrate [--voice ] [--max-speed n] [--dry-run]` | scene-fitted Kokoro voiceover — synth each `audio.narration` line and auto-fit its rate to the slot (needs python + `kokoro`; `--dry-run` estimates without synthesis) | ## Inspect & validate diff --git a/docs/examples.mdx b/docs/examples.mdx index 9d880a3..ad7661b 100644 --- a/docs/examples.mdx +++ b/docs/examples.mdx @@ -1,6 +1,6 @@ --- title: Examples -description: "All 67 example scenes, by category — each a single self-contained file you can render." +description: "All 68 example scenes, by category — each a single self-contained file you can render." --- Every scene is one `.ts` file in [`examples/scenes/`](https://github.com/kiyeonjeon21/reframe/tree/main/examples/scenes) — self-contained and dependency-free. Render any of them: @@ -35,7 +35,7 @@ The [gallery](/gallery) has the curated visual reel; the [repo README](https://g [annual-report](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/annual-report.ts) · [chart-buildup](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/chart-buildup.ts) · [data-explainer](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/data-explainer.ts) · [flow-diagram](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/flow-diagram.ts) · [github-year](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/github-year.ts) ## Audio -[audio-visualizer](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/audio-visualizer.ts) · [auto-foley-demo](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/auto-foley-demo.ts) · [sample-showcase](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/sample-showcase.ts) · [sfx-compare](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/sfx-compare.ts) · [sfx-showcase](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/sfx-showcase.ts) +[audio-visualizer](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/audio-visualizer.ts) · [auto-foley-demo](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/auto-foley-demo.ts) · [narrated-demo](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/narrated-demo.ts) · [sample-showcase](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/sample-showcase.ts) · [sfx-compare](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/sfx-compare.ts) · [sfx-showcase](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/sfx-showcase.ts) ## Logo stings [logo-reveal](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/logo-reveal.ts) · [logo-reveal-regen](https://github.com/kiyeonjeon21/reframe/blob/main/examples/scenes/logo-reveal-regen.ts) diff --git a/docs/gallery.mdx b/docs/gallery.mdx index eabb65d..d02507f 100644 --- a/docs/gallery.mdx +++ b/docs/gallery.mdx @@ -3,7 +3,7 @@ title: Gallery description: "A reel of reframe scenes — each a few-line declaration, each a deterministic render." --- -Every clip below is a scene in [`examples/scenes/`](https://github.com/kiyeonjeon21/reframe/tree/main/examples/scenes). Render any of them yourself with `npx reframe-video render examples/scenes/.ts`. The full list — 67 scenes by category — is on the [Examples](/examples) page. +Every clip below is a scene in [`examples/scenes/`](https://github.com/kiyeonjeon21/reframe/tree/main/examples/scenes). Render any of them yourself with `npx reframe-video render examples/scenes/.ts`. The full list — 68 scenes by category — is on the [Examples](/examples) page. These gifs are the curated showcase. New renders accumulate here via `pnpm gallery` (the committed home, vs the gitignored `out/` scratch). diff --git a/examples/README.md b/examples/README.md index 2e1d3eb..2a7672a 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,6 +1,6 @@ # Examples -67 curated scenes, one per `.ts` file in [`scenes/`](scenes). Each is a single, self-contained, dependency-free document — render any of them: +68 curated scenes, one per `.ts` file in [`scenes/`](scenes). Each is a single, self-contained, dependency-free document — render any of them: ```bash pnpm reframe render examples/scenes/.ts # in this repo @@ -90,6 +90,7 @@ Also here: [`overlays/`](overlays) (human-edit layers), [`compositions/`](compos |---|---| | `audio-visualizer` | "THE DROP": radial spectrum bars, a pulsing core, a particle burst. | | `auto-foley-demo` | `autoFoley` scoring motion — whoosh / thud / pop following the tweens. | +| `narrated-demo` | Scene-fitted Kokoro voiceover: `audio.narration` from a sibling `script.json`, each line auto-fitted to its slot by `reframe narrate`, bed ducking under it. | | `sample-showcase` | The CC0 sample library: keypress / footstep / click / confirm / UI sounds. | | `sfx-compare` | Synth vs sample A/B for the six original names. | | `sfx-showcase` | The procedural SFX palette, per-cue seeded variation as a little melody. | diff --git a/examples/scenes/narrated-demo-vo/close.wav b/examples/scenes/narrated-demo-vo/close.wav new file mode 100644 index 0000000000000000000000000000000000000000..ebc8a70598a0697b1b32b0c2da77cd9f021d8969 GIT binary patch literal 79244 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 literal 0 HcmV?d00001 diff --git a/examples/scenes/narrated-demo-vo/intro.wav b/examples/scenes/narrated-demo-vo/intro.wav new file mode 100644 index 0000000000000000000000000000000000000000..98df9e08357164a21b2855fa425bb5e262df02a6 GIT binary patch literal 85244 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

FvU4*wU- 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 >(YO7^8x$Ou>5p9> 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 literal 0 HcmV?d00001 diff --git a/examples/scenes/narrated-demo-vo/script.json b/examples/scenes/narrated-demo-vo/script.json new file mode 100644 index 0000000..ec84705 --- /dev/null +++ b/examples/scenes/narrated-demo-vo/script.json @@ -0,0 +1,23 @@ +[ + { + "at": "intro", + "text": "This is reframe.", + "file": "narrated-demo-vo/intro.wav", + "voice": "af_heart", + "duration": 1.775 + }, + { + "at": "point", + "text": "Anchored to the timeline, it survives.", + "file": "narrated-demo-vo/point.wav", + "voice": "af_heart", + "duration": 2.775 + }, + { + "at": "close", + "text": "Open source.", + "file": "narrated-demo-vo/close.wav", + "voice": "af_heart", + "duration": 1.65 + } +] diff --git a/examples/scenes/narrated-demo.ts b/examples/scenes/narrated-demo.ts new file mode 100644 index 0000000..736c133 --- /dev/null +++ b/examples/scenes/narrated-demo.ts @@ -0,0 +1,45 @@ +// Narrated demo — a pure-vector scene whose voiceover is authored as a sibling +// `narrated-demo-vo/script.json` (imported into `audio.narration`) and synthesized +// + fitted to the timeline by `reframe narrate`. Each line anchors to a timeline +// label, so the VO survives retiming/regen; `narrate` reads the label clock and +// fits each line's speech rate to its slot. +// +// reframe narrate examples/scenes/narrated-demo.ts --dry-run # fit table (no synth) +// reframe narrate examples/scenes/narrated-demo.ts # synth + fit (python+kokoro) +// reframe render examples/scenes/narrated-demo.ts # mp4, bed ducks under the VO +// +// The .wav are out-of-band assets (not bundled to npm, not golden) — commit +// script.json + the generated wavs together. Image/audio file cues don't render +// in player/artifacts; mp4 only. + +import { scene, rect, text, seq, tween, wait, linearGradient } from "@reframe/core"; +import vo from "./narrated-demo-vo/script.json"; + +const W = 1920, H = 1080; + +export default scene({ + id: "narrated-demo", + size: { width: W, height: H }, + fps: 30, + background: "#06070C", + nodes: [ + rect({ id: "bg", x: 0, y: 0, width: W, height: H, fill: linearGradient(["#0A1430", "#06070C"], { angle: 90 }) }), + text({ id: "title", x: W / 2, y: H / 2 - 40, anchor: "center", content: "reframe", fontFamily: "Inter", fontSize: 200, fontWeight: 800, fill: "#FFFFFF", opacity: 0 }), + text({ id: "sub", x: W / 2, y: H / 2 + 110, anchor: "center", content: "voice that fits the scene", fontFamily: "Inter", fontSize: 46, fontWeight: 500, fill: "#7FB4FF", opacity: 0 }), + ], + // labels (intro / point / close) are the stable anchors the narration lines bind to + timeline: seq( + wait(0.4), + tween("title", { opacity: 1 }, { duration: 0.6, ease: "easeOutCubic", label: "intro" }), + wait(2.4), + tween("sub", { opacity: 1 }, { duration: 0.5, ease: "easeOutCubic", label: "point" }), + wait(3.2), + tween("title", { opacity: 0 }, { duration: 0.6, ease: "easeInCubic", label: "close" }), + tween("sub", { opacity: 0 }, { duration: 0.6, ease: "easeInCubic", label: "close-sub" }), + wait(0.6), + ), + audio: { + bgm: { synth: "ambient-pad", gain: 0.25, fadeIn: 1, fadeOut: 1.5, duck: { depth: 0.6 } }, + narration: vo, + }, +}); diff --git a/examples/tsconfig.json b/examples/tsconfig.json index 5919ed7..51bc6cf 100644 --- a/examples/tsconfig.json +++ b/examples/tsconfig.json @@ -2,7 +2,8 @@ "extends": "../tsconfig.base.json", "compilerOptions": { "lib": ["ES2022", "DOM", "DOM.Iterable"], - "types": ["node"] + "types": ["node"], + "resolveJsonModule": true }, "include": ["scenes", "scripts"] } diff --git a/packages/core/src/audio.ts b/packages/core/src/audio.ts index 907e167..7919529 100644 --- a/packages/core/src/audio.ts +++ b/packages/core/src/audio.ts @@ -115,7 +115,8 @@ export function resolveAudioPlan(compiled: CompiledScene): AudioPlan | null { ? autoFoley(compiled, audio.autoFoley === true ? {} : audio.autoFoley) : []; const manualCues = [...(audio?.cues ?? []), ...autoCues]; - if (!audio || (!audio.bgm && manualCues.length === 0)) { + const narrationLines = audio?.narration ?? []; + if (!audio || (!audio.bgm && manualCues.length === 0 && narrationLines.length === 0)) { // a scene with only video-clip audio still gets a plan return clipAudio.length === 0 ? null @@ -160,6 +161,46 @@ export function resolveAudioPlan(compiled: CompiledScene): AudioPlan | null { : { kind: "file", path: cue.file! }, }); } + + // Narration lines render as label-anchored file cues (after `reframe narrate` + // bakes their wav). Each carries a real `duration`, so the bed ducks under the + // whole utterance. An un-synthesized line (no `file`) warns and is skipped. + for (const [index, line] of narrationLines.entries()) { + let anchor: number; + if (typeof line.at === "number") { + anchor = line.at; + } else { + const span = compiled.labelTimes.get(line.at); + if (!span) { + warnings.push(`narration[${index}]: unknown label "${line.at}" — dropped`); + continue; + } + anchor = span.t0; + } + if (!line.file) { + warnings.push(`narration "${line.at}" not synthesized — run reframe narrate`); + continue; + } + const t = Math.max(0, anchor + (line.offset ?? 0)); + if (t >= duration) { + warnings.push(`narration "${line.at}" at ${t.toFixed(2)}s starts past the scene end (${duration.toFixed(2)}s) — dropped`); + continue; + } + const lineDuration = line.duration ?? FILE_CUE_DURATION; + if (t + lineDuration > duration) { + warnings.push(`narration "${line.at}" at ${t.toFixed(2)}s extends past the scene end — it will be truncated`); + } + cues.push({ + t, + gain: line.gain ?? 1.15, + duration: lineDuration, + fadeIn: 0, + fadeOut: 0, + pan: 0, + source: { kind: "file", path: line.file }, + }); + } + cues.sort((a, b) => a.t - b.t); return { diff --git a/packages/core/src/ir.ts b/packages/core/src/ir.ts index b668971..b3ae22a 100644 --- a/packages/core/src/ir.ts +++ b/packages/core/src/ir.ts @@ -468,6 +468,33 @@ export interface AudioCueIR { params?: Record; } +/** + * A narration line — a spoken voiceover anchored to the timeline, fitted to the + * scene. The author writes `at` + `text` (+ optional `voice`/`gain`); the + * `reframe narrate` generator reads the label clock, synthesizes the line with a + * Kokoro TTS sidecar, fits its speech rate to the slot, and bakes `file`/`speed`/ + * `duration` back. At render it behaves as a label-anchored `file` cue (so it + * survives retiming/regen), with `duration` sizing the bed's duck window. + */ +export interface NarrationLineIR { + /** Anchor: a timeline label (the step's start) or absolute seconds. */ + at: string | number; + /** The line to speak. */ + text: string; + /** Kokoro voice (e.g. "af_heart", "am_michael"); default chosen by `narrate`. */ + voice?: string; + /** Linear gain, default ~1.15 (voiceover sits above the bed). */ + gain?: number; + /** Seconds relative to the anchor (default 0). */ + offset?: number; + /** BAKED by `reframe narrate`: scene-relative wav path (e.g. "demo-vo/intro.wav"). */ + file?: string; + /** BAKED by `reframe narrate`: the fitted speech rate (default 1). */ + speed?: number; + /** BAKED by `reframe narrate`: measured wav length (s) — sizes the duck window. */ + duration?: number; +} + export interface AudioIR { bgm?: { file?: string; @@ -480,6 +507,12 @@ export interface AudioIR { duck?: { depth?: number; attack?: number; release?: number } | false; }; cues?: AudioCueIR[]; + /** + * Spoken voiceover lines, each anchored to the timeline and fitted to the scene + * by `reframe narrate`. Render-equivalent to label-anchored `file` cues (after + * synthesis), so they survive retiming/regen. See {@link NarrationLineIR}. + */ + narration?: NarrationLineIR[]; /** * Auto-generate sound cues from node motion (move→whoosh, settle→impact, * scale-in→pop, panned by position). Deterministic + retime-safe (re-derived diff --git a/packages/core/src/validate.ts b/packages/core/src/validate.ts index 8377148..be907cf 100644 --- a/packages/core/src/validate.ts +++ b/packages/core/src/validate.ts @@ -332,6 +332,25 @@ export function validateScene(ir: SceneIR): void { add("audio-range", cp, `${cp}: pan must be in [-1, 1] (-1 left … +1 right)`); } } + for (const [i, line] of (ir.audio?.narration ?? []).entries()) { + const np = `audio.narration[${i}]`; + if (typeof line.at === "string" && !labels.has(line.at)) { + add("unknown-timeline-label", np, `${np}: unknown timeline label "${line.at}" — known labels: ${[...labels].join(", ") || "(none)"}`); + } + if (typeof line.at === "number" && line.at < 0) { + add("bad-duration", np, `${np}: "at" must be >= 0`); + } + if (typeof line.text !== "string" || line.text.trim() === "") { + add("narration-text", np, `${np}: "text" is required and must be non-empty`); + } + if (line.gain !== undefined && line.gain < 0) { + add("audio-range", np, `${np}: gain must be >= 0`); + } + if (line.speed !== undefined && line.speed <= 0) { + add("narration-speed", np, `${np}: speed must be > 0`); + } + } + const duck = ir.audio?.bgm?.duck; if (typeof duck === "object" && duck !== null && duck.depth !== undefined && (duck.depth < 0 || duck.depth > 1)) { add("audio-range", "audio.bgm.duck.depth", "audio.bgm.duck.depth must be in [0, 1]"); diff --git a/packages/core/test/audio.test.ts b/packages/core/test/audio.test.ts index 2b6c286..f3c58a4 100644 --- a/packages/core/test/audio.test.ts +++ b/packages/core/test/audio.test.ts @@ -103,6 +103,42 @@ describe("resolveAudioPlan", () => { }); }); +describe("narration", () => { + it("resolves a synthesized line to a label-anchored file cue with a real duck window", () => { + const plan = resolveAudioPlan( + base({ + narration: [{ at: "move", text: "hello", file: "t-vo/move.wav", duration: 0.8 }], + }), + )!; + expect(plan.cues).toHaveLength(1); + expect(plan.cues[0]).toMatchObject({ + t: 0.5, + gain: 1.15, + duration: 0.8, + source: { kind: "file", path: "t-vo/move.wav" }, + }); + // the bed ducks under the whole utterance, not the 0.4s file default + expect(plan.duckWindows).toEqual([{ t0: 0.5, t1: 1.3 }]); + }); + + it("warns and drops an un-synthesized line (no file yet)", () => { + const plan = resolveAudioPlan(base({ narration: [{ at: "fade", text: "not yet" }] }))!; + expect(plan).not.toBeNull(); + expect(plan.cues).toEqual([]); + expect(plan.warnings.some((w) => w.includes('narration "fade" not synthesized'))).toBe(true); + }); + + it("coexists with cues and sorts by time", () => { + const plan = resolveAudioPlan( + base({ + cues: [{ at: "tail", sfx: "pop" }], + narration: [{ at: "lead", text: "intro", file: "t-vo/lead.wav", duration: 0.4 }], + }), + )!; + expect(plan.cues.map((c) => c.t)).toEqual([0, 2.0]); + }); +}); + describe("clip audio (video nodes)", () => { const vscene = (props: Record, audio?: AudioIR) => compileScene( @@ -165,4 +201,16 @@ describe("audio validation", () => { expect(() => make({ cues: [{ at: "w", sfx: "pop", file: "x.wav" }] })).toThrowError(/exactly one/); expect(() => make({ cues: [{ at: "w", sfx: "kaboom" as never }] })).toThrowError(/unknown sfx "kaboom"/); }); + + it("validates narration: known label, non-empty text, positive speed", () => { + expect(() => make({ narration: [{ at: "nope", text: "hi" }] })).toThrowError( + /unknown timeline label "nope"/, + ); + expect(() => make({ narration: [{ at: "w", text: " " }] })).toThrowError( + /"text" is required and must be non-empty/, + ); + expect(() => make({ narration: [{ at: "w", text: "hi", speed: 0 }] })).toThrowError( + /speed must be > 0/, + ); + }); }); diff --git a/packages/reframe-video/package.json b/packages/reframe-video/package.json index 77e869a..01ac88e 100644 --- a/packages/reframe-video/package.json +++ b/packages/reframe-video/package.json @@ -1,6 +1,6 @@ { "name": "reframe-video", - "version": "0.6.43", + "version": "0.6.44", "description": "Declarative motion graphics that AI can write and humans can tweak — human edits survive AI regeneration. Deterministic mp4 renders from a plain-data scene format.", "keywords": [ "motion-graphics", diff --git a/packages/reframe-video/scripts/build.ts b/packages/reframe-video/scripts/build.ts index 57242d6..2263c56 100644 --- a/packages/reframe-video/scripts/build.ts +++ b/packages/reframe-video/scripts/build.ts @@ -36,6 +36,7 @@ const nodeBundles: [entry: string, out: string][] = [ ["packages/render-cli/src/labels.ts", "labels.js"], ["packages/render-cli/src/compile.ts", "compile.js"], ["packages/render-cli/src/assemble.ts", "assemble.js"], + ["packages/render-cli/src/narrate.ts", "narrate.js"], ["packages/render-cli/src/manifest.ts", "manifest.js"], ["packages/render-cli/src/lint.ts", "lint.js"], ["packages/render-cli/src/verifyOverlay.ts", "verifyOverlay.js"], @@ -175,6 +176,9 @@ if (!/from\s*["']reframe-video["']/.test(rcJs)) throw new Error("renderer-canvas // --- assets & guides ------------------------------------------------------- await cp(join(REPO, "assets", "fonts"), join(PKG, "assets", "fonts"), { recursive: true }); await cp(join(REPO, "assets", "sfx"), join(PKG, "assets", "sfx"), { recursive: true }); +// the Kokoro TTS sidecar ships beside dist/narrate.js (narrate.ts resolves it via +// `new URL("./narrate.py", import.meta.url)`). +await cp(join(REPO, "packages/render-cli/src/narrate.py"), join(PKG, "dist", "narrate.py")); await mkdir(join(PKG, "guides"), { recursive: true }); // Guides ship flat under guides/; sources are the authoring docs under docs/. // Keep this set in sync with the GUIDE map in render-cli/src/reframe.ts. diff --git a/packages/render-cli/src/narrate.py b/packages/render-cli/src/narrate.py new file mode 100644 index 0000000..6b39267 --- /dev/null +++ b/packages/render-cli/src/narrate.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +# Kokoro-TTS sidecar for `reframe narrate`. Reads a JSON request on stdin: +# { "outDir": "...", "lang": "a", "lines": [{ "stem", "text", "voice", "speed" }] } +# synthesizes each line at the given speed, writes /.wav @24kHz, +# and prints { "durations": { "": } } on stdout. +# +# Out-of-band by design: the .wav are external assets (not part of reframe's +# golden/determinism contract), like images. Requires `kokoro` + espeak-ng. +import sys, os, json, warnings + +warnings.filterwarnings("ignore") + + +def main(): + req = json.load(sys.stdin) + out_dir = req["outDir"] + lang = req.get("lang", "a") + os.makedirs(out_dir, exist_ok=True) + + try: + import numpy as np + import soundfile as sf + from kokoro import KPipeline + except Exception as e: # pragma: no cover - environment dependent + print(json.dumps({"error": f"kokoro import failed: {e}"})) + sys.exit(3) + + pipe = KPipeline(lang_code=lang) + durations = {} + for line in req["lines"]: + stem = line["stem"] + text = line["text"] + voice = line.get("voice", "af_heart") + speed = float(line.get("speed", 1.0)) + chunks = [a for _, _, a in pipe(text, voice=voice, speed=speed)] + audio = np.concatenate(chunks) if len(chunks) > 1 else chunks[0] + path = os.path.join(out_dir, f"{stem}.wav") + sf.write(path, audio, 24000) + durations[stem] = round(len(audio) / 24000, 4) + + print(json.dumps({"durations": durations})) + + +if __name__ == "__main__": + main() diff --git a/packages/render-cli/src/narrate.ts b/packages/render-cli/src/narrate.ts new file mode 100644 index 0000000..7524171 --- /dev/null +++ b/packages/render-cli/src/narrate.ts @@ -0,0 +1,217 @@ +#!/usr/bin/env tsx +/** + * `reframe narrate [--voice ] [--lang a] [--max-speed 1.3] + * [--script ] [--dry-run]` — scene-fitted Kokoro voiceover. + * + * Reads a narration script (a sibling `-vo/script.json` of `{ at, text }` + * lines the scene imports into `audio.narration`), computes each line's time slot + * from the compiled label clock, synthesizes it with a Kokoro python sidecar, and + * AUTO-FITS its speech rate so it fits the slot (bounded; warns if even the max + * speed overruns). Bakes `file` / `voice` / `speed` / `duration` back into the + * script.json — the scene then plays each line as a label-anchored `file` cue that + * survives retiming/regen, with the bed ducking under the whole utterance. + * + * Determinism: the .wav are external assets (same-machine, Kokoro-version + * dependent), not part of the golden contract — commit script.json + wavs together. + */ +import { spawn } from "node:child_process"; +import { existsSync } from "node:fs"; +import { mkdir, readFile, writeFile } from "node:fs/promises"; +import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; +import { compileScene } from "@reframe/core"; +import { loadScene } from "./loadScene.js"; + +const NARRATE_PY = fileURLToPath(new URL("./narrate.py", import.meta.url)); +const CWD = process.env.INIT_CWD ?? process.cwd(); +const userPath = (p: string) => (isAbsolute(p) ? p : resolve(CWD, p)); + +interface Line { + at: string | number; + text: string; + voice?: string; + gain?: number; + offset?: number; + file?: string; + speed?: number; + duration?: number; +} + +interface Args { + scene?: string; + voice: string; + lang: string; + maxSpeed: number; + script?: string; + dryRun: boolean; +} + +function fail(msg: string): never { + console.error(`error: ${msg}`); + process.exit(1); +} + +function parseArgs(argv: string[]): Args { + const a: Args = { voice: "af_heart", lang: "a", maxSpeed: 1.3, dryRun: false }; + for (let i = 0; i < argv.length; i++) { + const arg = argv[i]!; + const next = () => argv[++i] ?? fail(`${arg} needs a value`); + if (arg === "--voice") a.voice = next(); + else if (arg === "--lang") a.lang = next(); + else if (arg === "--max-speed") a.maxSpeed = Number(next()); + else if (arg === "--script") a.script = next(); + else if (arg === "--dry-run") a.dryRun = true; + else if (arg.startsWith("-")) fail(`unknown flag "${arg}"`); + else if (!a.scene) a.scene = arg; + else fail(`unexpected argument "${arg}"`); + } + return a; +} + +const slug = (s: string) => s.replace(/[^a-zA-Z0-9_-]+/g, "-").replace(/^-+|-+$/g, "") || "line"; +const stemOf = (line: Line, i: number) => (typeof line.at === "string" ? slug(line.at) : `line${i}`); +const posix = (p: string) => p.split("\\").join("/"); +// ~2.6 words/sec is a typical narration pace — a rough length estimate for --dry-run. +const estimateSecs = (text: string) => Math.max(0.4, text.trim().split(/\s+/).length / 2.6); + +/** Run narrate.py with a JSON request on stdin, parse the JSON result. */ +function synth(req: unknown): Promise<{ durations?: Record; error?: string }> { + return new Promise((res, rej) => { + const proc = spawn("python3", [NARRATE_PY], { stdio: ["pipe", "pipe", "inherit"] }); + let stdout = ""; + proc.stdout.on("data", (d: Buffer) => (stdout += d.toString())); + proc.on("error", rej); // ENOENT — python3 missing + proc.on("close", (code) => { + try { + res(JSON.parse(stdout.trim().split("\n").pop() ?? "{}")); + } catch { + rej(new Error(`narrate.py produced no JSON (exit ${code})`)); + } + }); + proc.stdin.write(JSON.stringify(req)); + proc.stdin.end(); + }); +} + +async function main() { + const args = parseArgs(process.argv.slice(2)); + if (!args.scene) { + fail('narrate needs a scene file\nusage: reframe narrate [--voice ] [--lang a] [--max-speed 1.3] [--script ] [--dry-run]'); + } + const scenePath = userPath(args.scene); + if (!existsSync(scenePath)) fail(`no such file: ${scenePath}`); + + // the label clock — every line's slot is a window in the scene's own timeline + const scene = await loadScene(scenePath); + const compiled = compileScene(scene); + const duration = compiled.duration; + + const sceneDir = dirname(scenePath); + const sceneBase = basename(scenePath).replace(/\.(ts|json)$/, ""); + const scriptPath = args.script ? userPath(args.script) : join(sceneDir, `${sceneBase}-vo`, "script.json"); + if (!existsSync(scriptPath)) { + fail( + `no narration script at ${scriptPath}\n` + + `create it as a JSON array and import it into your scene's audio.narration, e.g.:\n` + + ` [ { "at": "