Skip to content

use case

verified July 2026

Every line voiced, including the ones nobody planned.

Game scripts are enormous and mostly unheard. Barks, branch lines, the dialogue behind the door the player never opens — all of it needs a voice, and almost none of it justifies a studio session. A meter makes that a triage exercise; an unmetered seat makes it a build step.

01

The lines that never get recorded

The economics of voice acting decide which lines exist. A guard who says one of three things is cheap; a guard who reacts to what you are carrying, the time of day and whether you have been here before is a recording session nobody booked. So the writing shrinks to fit the budget.

When synthesis is unmetered, the constraint moves from cost to writing time. The branch that fires for two percent of players can be voiced, and re-voiced when the writer changes it in the next pass.

The branch almost nobody reaches

Film

Barks, reactive lines, the conversation behind a door most players never open — voiced because voicing them is not billed.

02

Directing a performance from the request

  • Sixteen emotion names over eight tuned presets, so the same NPC can be tired, frustrated or confident without a second voice.
  • Five prosody dials, including the one that sets melodic range — measured across a 7.9-semitone span on a single voice.
  • Reproducible seeds, so a rebuilt dialogue bank does not silently change lines the player has already heard.
  • Streaming over WebSocket for dialogue generated at runtime, or one-shot WAVs for a baked bank.

03

Notes — an engineer's checklist

01Can one voice cover a whole cast?

No, and it should not. Each character wants its own reference clip — cloning is instant and carries no per-voice fee, so a cast of forty is forty clips rather than forty contracts. The emotion and prosody fields then vary the performance within each character.

02Can dialogue be generated at runtime?

Yes. The WebSocket surface holds one socket per session with first audio at a measured 107 ms p50, which is inside the window a player reads as immediate. A baked bank uses the bytes endpoint instead.

See also — related sheets

A key and one seat to build this on — the same production API this page measures.

Request access for this use case