# AI voice for game dialogue — barks, menus and placeholder VO

> Cast one voice per character, batch a thousand lines from a spreadsheet, and know what it costs before you start. Plus the honest limit — no lip-sync.

Published 2026-09-06 · eroq.ai — canonical: https://eroq.ai/blog/ai-voice-for-game-dialogue


A build with silent characters reads as a prototype no matter how good the art is. Thirty barks and a voiced menu change that perception in an afternoon, which is why placeholder VO has quietly become one of the first things indie teams generate rather than one of the last things they record.

Before anything else, the limit that decides your scope: **there is no lip-sync**. No talking avatars, no viseme track, no real-time synthesis. What comes back from the speech models is an MP3 file. Everything below is designed around that, and it turns out most of a game's dialogue never needed a mouth on screen anyway.

## What generated voice is actually good for in a build

- **Barks.** Combat callouts, idle chatter, aggro lines, hit reactions, shopkeeper greetings. Short, numerous, off-screen or far enough away that nobody reads lips.
- **Menus and systems.** Tutorial prompts, accessibility readback, "save complete", confirmation lines.
- **Radio and comms.** The single best fit — a voice on the other end of a headset has no face by design.
- **Narrator and codex.** Lore entries, level intros, death screens.
- **Placeholder VO for a slice.** Temp lines in a vertical slice so the pacing can be judged before a casting budget exists.

What it is not for: cinematics where a character speaks on camera. Cut around the mouth, put the line over a reaction shot, or leave that scene for real recording.

## Cast once, per character, forever

The rule that saves the most pain later is boring: one character, one voice, for the life of the project.

A [Character](/studio/characters) in the studio carries a name, a persona and a voice — a roster voice (Aria, warm and intimate; Orion, low and unhurried) or one you cloned. Assign it once and every line you render for that character uses it. Over the API the same thing is a voice id of `char:<id>`, so your export script never has to remember which clone belonged to the quartermaster.

Two roster voices does not sound like a cast until you remember that speed and expressiveness move independently per line, and that the writing carries most of the character anyway. A clipped, procedural quartermaster and a florid innkeeper can share a timbre and still read as two people. When they genuinely cannot, clone the extra voices — cloning is free, only the speech is billed.

## Batching a thousand lines

Keep the lines in a file, not in a tool. A two-column TSV of `line_id` and `text` is the whole pipeline, and it is also your diff when a writer changes eleven lines next sprint.

The `eroq` CLI renders one line per invocation and writes the MP3 where you tell it, which makes the batch a four-line shell loop:

```bash
while IFS=$'\t' read -r id text; do
  eroq speech "$text" -v orion -m eroq-voice-turbo -o "vo/quartermaster/$id.mp3"
done < barks.tsv
```

Three practical notes. Each request is capped at 5,000 characters of input, which no bark will ever approach but a codex entry might. Speech is rate limited to 6 requests per minute per key on a free workspace, multiplied by your plan — 2× on Creator, 4× on Studio — so a thousand-line pass takes a shade under three hours on a free key and about forty minutes on a Studio one. And every render is saved to your library automatically, so a lost local file is an annoyance rather than a re-render.

If your toolchain wants WAV rather than MP3, convert on the way in:

```bash
ffmpeg -i vo/quartermaster/bark_01.mp3 -ar 48000 -ac 1 vo/quartermaster/bark_01.wav
```

## What a thousand lines costs

Speech is billed per **started** block of 100 input characters — 3 credits on [Voice One](/models/eroq-voice-one), 2 on [Voice Turbo](/models/eroq-voice-turbo). The word "started" is the whole cost model for game dialogue, because barks are short and every one of them rounds up to a full block.

So the bill tracks your line **count**, not your character count:

- **1,000 barks** averaging 45 characters each — 1,000 blocks. **3,000 credits on Voice One, 2,000 on Turbo.** At the entry pack rate that is roughly $30 and $20.
- **60 menu and system lines** — 180 credits on Voice One, 120 on Turbo.
- **40 codex entries** at 480 characters each — 5 blocks apiece, so 600 credits on Voice One.

Two consequences worth acting on. First, iterate on Turbo and ship on Voice One: re-rendering the same thousand barks costs a third less while you are still tuning the writing. Second, resist the temptation to merge short lines into one request to dodge the rounding — you would get one MP3 back, and splitting it by hand costs more than the credits you saved.

Refunds are automatic on failed generations, so a batch that dies halfway through a bad network night does not leave you paying for silence.

## Keeping the VO stable across a patch

Treat `barks.tsv` as the source of truth and the audio folder as build output. When a writer edits eleven rows, re-render eleven files — the ids are stable, the paths are stable, and nothing else in the project moves. Keep the voice, speed and expressiveness for each character in the same file or in a small JSON next to it, so a re-render six months from now produces the same performance rather than a new interpretation.

For the character work upstream of the voice — personas, reference art, keeping a cast consistent — [the concept art pipeline for game studios](/blog/ai-concept-art-pipeline-for-games) covers the visual half, and [TTS for AI characters](/blog/tts-for-ai-characters) covers writing lines that sound performed rather than read.

## FAQ

### Can eroq lip-sync generated dialogue to a character model?

No. There is no lip-sync, no viseme output and no talking-avatar feature — the speech models return an MP3 and nothing else. Design the dialogue as barks, comms chatter, narration and off-screen lines, and reserve on-camera speech for recorded VO.

### How much does a thousand barks cost?

Billing is per started 100-character block, so a short bark costs one block regardless of how short it is. A thousand barks is 3,000 credits on Voice One or 2,000 on Voice Turbo, roughly $30 and $20 at the entry pack rate, before any re-renders.

### Can I use generated voice lines in a commercial game?

Outputs are yours under the terms of service and plans include a commercial license, so the remaining constraints are the content rules — adult fiction only, no real identifiable people without consent, and any cloned voice needs permission from its owner. Check the [pricing page](/pricing) for what each plan includes before you ship.

### Is there a way to generate all the lines in one request?

No, and you would not want it. Each request returns one MP3, so one request per line is what gives you per-line files with stable ids. Batch it with a shell loop over your line file and let the rate limit pace it.

Ready to hear the build talk? [Open the Voice studio](/studio/voice), cast one character properly, then point a loop at the rest.
