wip
This commit is contained in:
parent
f1601257c7
commit
c2070693fb
68 changed files with 2305 additions and 212 deletions
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
Reads two manifests inside ``output/<storyboard>/``:
|
||||
|
||||
* ``audio/index.json`` (synth output) — per-cue WAV filename + measured
|
||||
* ``audio/index.json`` (synth output): per-cue WAV filename + measured
|
||||
duration. Generated BEFORE recording in one batched Qwen3-TTS call.
|
||||
* ``narration.json`` (recorder output) — per-cue ``videoTimeMs`` against
|
||||
* ``narration.json`` (recorder output): per-cue ``videoTimeMs`` against
|
||||
the trimmed video. Generated DURING recording.
|
||||
|
||||
Joins them by ``cueIndex`` (index in the cue list, 1:1 between manifests),
|
||||
|
|
@ -115,7 +115,7 @@ def main() -> int:
|
|||
}
|
||||
)
|
||||
|
||||
# Refuse to mux overlapping cues — amix would silently mash voices on top
|
||||
# Refuse to mux overlapping cues: amix would silently mash voices on top
|
||||
# of each other. Sort by start so the order matches what we'll actually
|
||||
# play, then check that each cue ends before the next one starts.
|
||||
ordered = sorted(items, key=lambda it: it["videoTimeMs"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue