C.W.K.
Stream
Lesson 02 of 05 · published

Recast: A/B the Same Line

~8 min · recast, casting, clones

Level 0Silent
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Render the same line two ways — the clone and the original — and keep the one that reads best. Per line, not once for everything."

Casting Is a Per-Line Decision

Track 3 kept four independent profiles alive: two clones and the two originals they came from. Studio's recast is where that pays off in production. You can render an utterance across casting choices — most usefully, an original voice against its clone — and compare the two takes of the exact same line. Sometimes the clone nails it; sometimes the original is warmer on that particular sentence. Recast lets you decide per line instead of committing to one voice for the whole piece.

Both Takes Are Real and Kept

An A/B here isn't throwaway. Each recast is a real take, cached and tracked in the utterance's lineage. You keep the one that reads best, and the other remains in history — so a later change of mind doesn't cost a fresh synthesis. This is the coverage-matrix idea: for the lines that matter, you can see how each casting choice sounds and choose deliberately, with the comparisons preserved.

Why Not Just Pick One Voice Globally

A global choice is simpler, but it throws away the exact advantage of keeping originals and clones both selectable. A clone might be excellent across a whole script and just slightly off on one emotional line where the original shines. Recast honors that: the default carries most of the piece, and the specific line that wants the other voice gets it — a fine-grained decision that a single global setting can't express.

Code

Compare clone vs original, choose per line·python
# Recast: render the SAME utterance in different casting choices to compare.
utterance = project.utterance("u1")
takes = {
    "pippa":  recast(utterance, profile="pippa"),   # the clone (default)
    "joanne": recast(utterance, profile="joanne"),  # the original it came from
}

# A/B the same line; keep the take that reads best. BOTH are real, cached takes.
utterance.choose(takes["joanne"])   # this one line is warmer in the original

# Same four independent profiles from Track 3 -- now used for production casting.

External links

Exercise

Find a decision in a system you know where you currently pick one option globally but two options each win in different cases — a font, a model, a rendering path, a copy variant. Design a 'recast': keep both selectable, apply per-instance, and preserve the comparison. Name the case where the non-default clearly wins, and what a single global choice would have cost there.
Hint
The signature of a recast-worthy decision is 'mostly A, but B is better right here.' A global switch forces one answer; keeping both choosable per case captures the exceptions without abandoning the default.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.