Synthesize Speech¶
A recording from text. Type a line, pick a voice and a language, and get a clip you can bake like any other.
This is how a project gets dialogue before it has actors. It is also how it gets the hundred placeholder lines nobody wants to record twice, and how a line that changed in the script gets a new take without booking anything.
A Synthesized Line Bakes Like a Real One
Nothing downstream treats it differently. It goes through the same recognizers, the same tuned language paths, and the same emphasis and emotion handling as a recording of a person. FaceCue's own demo is baked on synthesized voice.
Input¶
Single synthesizes one thing. Batch works through a source of many.
| Mode | What it reads |
|---|---|
| Plain Text | A line you type into the window |
| TXT | One .txt file, spoken as written |
| CSV | One row, chosen by its clip_id |
Batch takes either a folder of .txt files, skipping ones that already have audio, or a CSV index, one row per clip as clip_id, an optional language, and the text. The CSV is the better of the two for real work: a whole scene lives in one file, the per-row language column means a multilingual scene needs no separate passes, and it is the same shape the transcript tools read and write.
Language¶
Pick one, or use Auto to detect it from the text.
The language decides how the text is read aloud, so it matters more than it looks. The same letters are pronounced differently in different languages, and a line tagged wrongly is not a small error.
Speech generation covers a smaller set of languages than recognition does. Check yours in Language Support.
One Line, More Than One Language¶
The language you pick is the line's base. Mark a stretch of the text as another language and that stretch is spoken in it.
They are the same language spans the baker reads, written the same way, so a line marked up once carries through both. Synthesis speaks each stretch in its own language and joins the takes back into one clip, and every per-language decision is made per stretch: which guard applies, how the tail is shaped, how much is spoken in one go. A French sentence inside an English line is generated as French, not as an English speaker reading French.
Give a Stretch Enough to Work With
A very short span generates poorly, because there is not much for the model to establish a voice and an accent from. FaceCue says so in the console when it sees one, and names the line.
A word or two of another language is usually better handled as its own clip than as a span inside a longer line.
Voice¶
Whichever voice is selected in Registered Voices, which is either the built-in voice or one you made yourself.
Exaggeration controls how much character the delivery has. Low is flat and even, which is what you want for a narrator or for placeholder lines you do not want distracting anyone. Higher is more performed, with more movement in the pitch and more contrast between stressed and unstressed words. It is the one control here worth experimenting with, because it changes the read more than anything else does.
Numbers and Punctuation¶
Text is normalised before it is spoken, and those settings belong to the project, not to this window. 1995 becomes words according to a rule the Cue Baker reads from the same file, so a line you synthesize and a line you bake agree on what a number sounds like.
That is why the setting is mirrored here instead of duplicated. Editing it in either window edits one file. See The Settings Pane.
Long Lines¶
A line longer than the model can speak in one go is split into several takes and joined back together.
The split happens at sensible places instead of at a fixed length, and the joins use the same logic that stitches a multilingual line where the language changes mid-sentence. In practice you can paste a paragraph in and get one clip out.
Output¶
Output Beside Source writes the clip next to the .txt it came from. Turn it off and everything goes to the output folder instead.
Naming is automatic unless you take it over: a single take uses the file name you give it, or auto-names from the text, the .txt filename, or the clip id. Auto-naming matters more than it sounds, because the name is what pairs a clip with its cues later, so a batch named from its clip ids drops straight into a bake and a registry without renaming anything.
When a name is already taken you can Skip, which keeps the existing file and saves the new take beside it under a free name, Overwrite, or Ask each time. Skip is the safe one for a batch you are re-running.
Then Bake It¶
The Results row carries the same routes the baker's does: reveal the clip in the Project window or on disk, and take it onward.
You can also skip the trip entirely. The Cue Baker can generate a line and bake it in one action, using the same voices and the same settings, which is the shorter path when you are producing a clip specifically to bake it.