Pronunciation Corrector

The Operator node that re-synthesizes just the mispronounced words — inside the existing take, in the same voice.

Family: Operator · type: operator_pronunciation_corrector · canvas name “Pronunciation Corrector” · beta

The Pronunciation Corrector fixes mispronounced words without regenerating the line. For each word the Pronunciation validator flagged, it re-synthesizes that word inside the existing take and splices it in — the surrounding audio, the delivery, and the voice all stay exactly as they were.

That’s the difference between it and a plain retry loop. Sending a failing line back to the Generator gets you a whole new read, which may fix the name and change everything else about the line. The Corrector changes only the word that was wrong.

English only. The Generator branch feeding a Corrector must produce en-us or en-gb audio. Unrelated branches of the same workflow may use other languages.

Where it goes

Only on a Pronunciation validator’s fail or pass port. Both are legitimate:

  • On fail — the usual placement. It may send its corrected takes back to the same check to be re-graded, which forms a bounded retry loop: a pass ends it, and still-wrong words are corrected again within that check’s retry budget.
  • On pass — a passing line can still carry individual flagged words, because the check routes on the line’s score independently of its per-word findings. A pass line with nothing flagged passes through untouched. A pass-fed Corrector must send its output forward; looping it back onto an earlier node makes the workflow unrunnable.

It must have at least one outgoing lines edge — either onward to a sink (the corrected take is delivered ungraded) or back to the same check to be re-graded.

Pronunciation ──fail──▶ Pronunciation Corrector ──▶ back to Pronunciation (re-grade)
pass ──▶ Export

Config

Config keyDefaultRange
n_candidates21–8 (correction attempts drawn per word)
seednone0–2147483647 (pin sampling for reproducible candidates)
node["config"] = {"n_candidates": 2}

n_candidates is a ceiling, not a fixed cost: candidates are drawn one at a time and the first one that aligns well enough wins, so raising it only matters for words the model finds hard.

What it costs

Billed per word actually respliced — not per character, and not per line. A line where one word out of forty was wrong costs one word, and a pass where every correction was skipped costs nothing, because your audio came back unchanged. Each retry iteration bills on its own, like every other node.

Inspect this node

client.nodes.get_node_detail(node_type="operator_pronunciation_corrector").data