Voices
The Voices list and its four pages, what a voice and a take are, which audio is protected, what spends credits, and why a line will not voice.
All documentation — Voice and audio
Boards and the canvas
The node builder
Modelling the world
Variables, logic and commands
Voice and audio
AI
Working together
Project settings
On this page
The Voices section is where a project gets its sound: voice-over for every line a character
speaks, and music and sound effects for the scenes around them. It has no Ctrl number; open it
from the activity bar.
Voice-over has no presence on a board or a node — no row, no chip, no icon. Everything happens in this section. The one per-field setting is Spoken aloud in the node builder, which decides which text gets a voice-over take (see Translatable and spoken aloud).
The list and its four pages
The section’s list, titled Voices, is the voice library. Its title row carries four buttons — Cast · Lines · Music · Sound FX, named when you rest the pointer on them — and each opens that page as a tab beside your boards. The button whose tab is in front is lit.
| Where | What it holds | Layout |
|---|---|---|
| Voices, the list | The voice library — one entry per voice, in folders. Opening one shows its design page. | Each voice opens as a tab |
| Cast | Every entity with the voice it speaks with, and the project’s pronunciation dictionary | A tab |
| Lines | One board at a time: every voiced line, its audio and its takes, and the bulk actions | A tab, with a board picker on its left and the lines on its right |
| Music | Describe music and generate several takes at once | A tab |
| Sound FX | The same, for sound effects | A tab |
Closing one of these tabs does not stop it: a batch of lines or takes still being generated carries on, and reopening the tab shows it where you left it.
The three voice-over places are one chain. A voice is designed in Voices, given to a character in Cast, and speaks that character’s lines in Lines. A line is always spoken by its speaker’s voice — there is no per-line voice picker. The how-to pages follow the same order: designing a voice, casting, producing the lines, working with a studio, and music and sound effects.
What counts as a line
A line is one field of one node, in one language: any Text or Rich text field marked Spoken aloud, which is on by default for both types. Turn it off on a field nobody should hear.
The line’s speaker is the node’s first Entity field. A line on a node with no Entity field has no speaker, and cannot be voiced until it has one.
A board appears on the Lines page once it holds at least one voiced line.
A voice
| Part | What it is |
|---|---|
| Name | The display name. The voice’s code is made from it when the voice is created. |
| Colour | Assigned when the voice is created; the dot beside it in the drawer, on its page and in Cast |
| Who speaks | The engine that speaks this voice |
| How they sound | The description a voice is designed from — one for the voice itself, and one for each language cast separately |
| How they perform | Steady, Natural or Volatile, where the engine offers it |
| Reference take | The audition you kept. It is what the play button in Cast sounds. |
| Details | The engine’s own controls, and a read-only record of how the voice was made |
A voice that has never been auditioned or given a ready-made voice still does a job: its page reads casting only — no audio is generated for this voice, and it is the casting a studio’s recording script carries. That is a complete voice, not a broken one.
A take
Every line holds a history of takes, per language, and one of them plays.
| State | What it means | Made by |
|---|---|---|
| AI draft | Audio generated in TaleShard | Generate missing, Regenerate, a line’s own regenerate button, a re-cast |
| delivered | A file you supplied | Import recordings, Match from library, or picking a clip on the line |
| approved | Signed off with Approve | The take’s own button |
| was approved | A signed-off take that another take has replaced as the one that plays | Use or Approve on another take, a re-cast with Re-record the approved takes too ticked, or a ticked import |
A line has at most one approved take; a replaced sign-off is kept, marked, rather than deleted.
Two markers sit beside the state: plays names the take the player sounds, and text changed appears when the line’s words were edited after its take was made.
An imported or attached file is never marked as AI audio, and that cannot be changed later.
What is protected
Approved and delivered audio is never touched by Generate or by a re-cast. A replaced take is not deleted either — it stays in the line’s take history.
| Action | AI drafts | Approved takes | Delivered recordings |
|---|---|---|---|
| Generate missing | Lines with audio are skipped | Skipped | Skipped |
| Regenerate selected, or one line’s regenerate button | Replaced; the old take stays in the history | Left alone | Left alone |
| Re-cast | Replaced in the new voice | Left alone, unless you tick Re-record the approved takes too | Never touched, in any mode |
| Match from library | Lines that already have audio are skipped | Skipped | Skipped |
| Import recordings | Skipped unless you tick them | Skipped unless you tick them | Skipped unless you tick them |
| Clear board | Removed | Removed | Removed |
Clear board is the one action that reaches signed-off audio. It takes the audio off every line of
the board in the language you are looking at. It is an ordinary edit, so Ctrl+Z brings it back, and
the files themselves stay in Media.
Removing a single take from a line’s history removes the take, not the audio file.
Languages
A take belongs to one language. The language control in the project header decides which language the Lines page works in, which language a voice’s page edits, and which language an import fills.
There is no fallback to another language. A line with no take in the active language plays nothing, and a line not yet translated into it shows not translated rather than borrowing the original’s audio. Translation itself is Localization.
Where the audio goes
Everything this section makes or imports is an ordinary file in Media.
| Audio | Media folder |
|---|---|
| Generated and re-recorded lines | Voiceovers / «board name» |
| Imported recordings | Voiceovers / «board name» |
| Music takes | Audio / Music |
| Sound FX takes | Audio / Sound FX |
The folders are created the first time something lands in them, and reused afterwards.
Credits
Generating audio spends credits, the same balance as every other AI action — see how credits work.
| Spends credits | Free |
|---|---|
| Audition, Re-design… and a Remix — three voices for one charge | Keep this one — keeping an audition |
| Speak this and Hear it — charged for the audio; nothing is saved | Use this voice — keeping a ready-made voice |
| Start from this voice — one short clip, which is kept | Casting, and the pronunciation dictionary |
| Generate missing, Regenerate, a re-cast and its preview | Approve, Use, Reopen |
| Suggest direction | Match from library and Import recordings |
| Music and Sound FX takes, and Improve | The recording script and the AI audio report |
Every button that spends shows the figure before you press it — Generate missing · ~N
credits. A ~ in front means it is an estimate rather than an exact figure. Speech is charged by the
length of the text, so a long line costs more than a short one.
A line or take that fails is not charged. A run you stop is charged only for the lines it had already finished. After a run, a note under the toolbar says what it spent, and each take in a line’s history shows its own cost (12 cr.).
Plans
Voice-over, music and sound effects are on every plan; credits are the meter.
The recording script export needs the Pro plan or above. Below that, its button stays visible with the plan’s badge, and pressing it explains the gate. The AI audio report beside it is free on every plan.
Hearing it in play mode
The player’s settings carry two voice-over controls, beside Text speed and Accessibility (see Player settings):
| Control | What it does |
|---|---|
| Play voice-over | On by default. Remembered per project, in this browser — the only player setting that outlives the visit. |
| Volume | 0–100%, in steps of 5. Shown only while Play voice-over is on, and remembered on its own, so turning voice-over off and on again keeps your level. |
Both are offered to a visitor on a share link as well as to the author.
Each line plays its current take in the active language. Audio never holds up the story: if a clip cannot play — it is missing, or the browser refuses to start it — the line still goes on.
Limits
| Limit | Value | Enforced by |
|---|---|---|
| Takes per music or sound batch | Each engine’s own maximum — the Takes control offers no more | The server refuses a larger batch |
| A designing passage | Each engine’s own minimum and maximum, shown as a character count under the passage | The Audition button, and the server |
| A music or sound description | Each engine’s own minimum and maximum | The server |
| An imported recording | Your plan’s per-file upload limit, and the project’s storage | The upload — see Media |
| A re-cast preview | 5 lines | The dialog |
What breaks
A line that cannot be voiced says why on its own row in Lines, and is skipped — never sent, never charged.
| On the row | Why | The fix |
|---|---|---|
| not translated | The line has no text in the active language | Translate it, or switch language |
| nothing written | The field is empty | Write the line |
| speaker not cast | The speaker has no voice — or the node has no Entity field, so there is no speaker | Cast them in Cast, or give the node its speaker |
| voice missing | The speaker is cast to a voice that no longer exists | Cast them again |
| voice not minted | The voice — or this language’s separate cast — has no audio of its own yet | Audition and keep one, or pick a ready-made voice |
| failed — retry | The last generation of this line failed. Nothing was charged. | Generate it again |
| text changed | The words were edited after this take was made | Regenerate it, or have it re-recorded |
| Situation | What you see |
|---|---|
| A character is cast to a deleted voice | voice “«code»” is gone on their Cast row. The record is kept, not cleared, so you can see who they were. |
| Out of credits | Insufficient AI credits. Please purchase more credits or wait for your monthly reset. |
| The engine cannot speak right now | «Engine» cannot speak a line right now. Pick another engine for this voice. |
| A line too long for the engine | That line is too long to speak. |
| A music or sound description out of bounds | «Engine» needs a description of at least N characters, or takes a description of at most N characters |
| A preview the server could not render | The preview could not be rendered. — nothing was written |