decktalk build voices again only the sections whose text changed. Use this guide to find
what an edit runs again, and to rebuild only the sections you changed.
Before you start
Check which kind of build the project had last, because you run the same kind again.(estimated: silent placeholders). After a voiced build, it does not. If you run the other kind, read
A silent build and a voiced build first.
Find the command for your edit
Find your edit in the first column.N is the number of the section you changed.
After a silent build, add
--silent to each decktalk build command.
A page can show the words of the section before it, which it reads from
prevwords. The scaffold’s scene 2 opens on the Open’s last frame with
the Open’s count times. So after an edit to section 1, record section 2 as well.
After an edit to section 1, only section 1 is voiced again, and --only 1 records only section 1.
What each edit runs again
The next table gives the reason for each row of the first table.
A recording stays valid when a neighbor section changes length. Cue times count from the start of their
own section, so a longer section 2 does not move a cue in section 3. A page that reads
prevwords is the
exception. It shows the words of the section before it, so record it again after that section changes.
The narration cache
The narration cache isbuild/audio/manifest.json. It holds one hash per section, made from these values:
- the speech provider’s name and the voice id
- the model and the output format
- the voice settings
- the exact text sent for the section
narrate stage skips a section when all four of these are true:
- The hash matches.
- The audio file name is unchanged.
- The mp3 exists.
- The words file exists.
narrate copies
its take from the old file names to the new ones and prints a [move] line. The first spoken section is the
exception, because only its take starts with the lead-in silence. A take never moves into or out of that place.
A section that is voiced again costs the characters of its whole text, not only the changed sentence.
Requirements lists every command that spends credits. The record
stage has no cache, so --only is the way to keep a recording.
Limit a build to some sections
Pass--only with a section number. Repeat the flag for more sections, because it does not take commas.
record, measure, and check to the sections you name. The other stages still work on
every section:
narratevoices any section whose text changed, even a section you did not name.assemblecuts and joins every section, because the final mp4 needs all of them.- The verify stage checks every section start and every cut.
--only needs a page section, because a clip section has no recording.
Record one section again
Use these steps when a recording of sectionN is bad, for example after STALLED or TRUNCATED. The
steps voice nothing when the text is unchanged, and they keep every other recording.
1
Build the section again
If the last build was voiced, run this command.If the last build was silent, run
decktalk build --silent --only N instead.2
Measure the cues of the section
The build checks section starts, cuts, and cut continuity, but not cues. Run Every cue row of section
decktalk verify for the cues.N reads changed or skipped.
The verify reference explains each result.Run the stages by hand
Each stage is also a command. These are the commands thatdecktalk build --only 3 runs, plus a cue check.
Voice every section again
Use--force to ignore the narration cache. A forced run spends credits on every section.
decktalk narrate --dry-run makes no API call. It prints the text that each section would send, and a take
plan that says which sections a voiced run would voice, keep cached, or move. So you can count the characters
first. decktalk narrate --dry-run --json gives the same plan as JSON. decktalk preflight adds the cue check and
an estimate of each reveal from frozen frames, so you can fix a small reveal before you pay for the takes.
A silent build and a voiced build
A silent build after a voiced build would empty the narration cache. The next voiced build would then voice every section again and spend credits on all of them. So a silentnarrate or build stops when
build/audio/manifest.json holds voiced takes, and it writes nothing.
- The manifest notes whether its entries came from a silent build.
narratereuses the previous manifest only when it is the same kind of build.- A silent build writes a click track over the voiced mp3 of the same name, and it replaces the manifest.
--force, as in decktalk build --silent --force. Neither kind of
build replaces the final mp4 until it finishes. A timestamped copy of each finished video stays next to
build/out/<name>.mp4.
Next
- Learn why a recording stays valid: How it works
- Check the video after a rebuild: Verify
- See what spends credits: Requirements