Skip to content

feat: fit narration, mux audio and compare recordings (#5) - #13

Merged
codeonym merged 2 commits into
mainfrom
feat/5-voice-fit-mux-sync-check
Nov 11, 2026
Merged

codeonym merged 2 commits into
mainfrom
feat/5-voice-fit-mux-sync-check

Conversation

@codeonym

Copy link
Copy Markdown
Contributor

Summary

Short actions previously ended before their separate speech clips, and the delivery MP4 was silent. Capture actions once, synthesize afterward, then fit and mux narration on a shared timeline.

capture once → synthesize → plan frame holds → retime master/events/captions
                                         → normalize voice → mux AAC → validate sync
host compare → validate transcripts → compare content and starts within 150 ms

Preserve original WAVs/hashes and calibration pre-roll. Blank-only demos stay video-only.

Closes #5

Evidence

  • Before: silent MP4s and step windows shorter than speech.
    After: narrated MP4s with at least 200 ms speech tails; playback approved.
  • npm test: 63 passed. Typecheck, build, package dry run and whitespace checks pass.
  • All 19 media checks verified. The full run passed the non-recording files; after a capture overload failure, the unchanged recording file passed all 9 tests on retry with free CPU.
  • Final step-start drift: 5 / 40.333 / 9 ms. Voice: -16.42 LUFS / -1.98 dBTP. Click discrepancy: -12.493 ms, within two frames.
  • Standards and Spec reviews: zero unresolved findings.

Merge Danger

Door: two-way

Blast Radius: recording

Changes final media timing and adds host transcript comparison. The existing capture-overload guard remains unchanged; recording still needs spare CPU. Comparison reads transcript metadata only.

@codeonym
codeonym merged commit bd9ea78 into main Nov 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hold each step for its voice clip, mux the audio, and check sync and reproducibility

1 participant