Skip to content
Michii edited this page Oct 12, 2026 · 4 revisions

English · 简体中文 · 日本語

Choose and manage voices

The Voices tab assigns a sound to each speaker in the script. Start with a few representative lines in the Editor and listen before rendering the whole book.

Changes save automatically. Watch the status beside the card filters for saved before leaving the page or switching books. If you see save failed — edits retained, keep the tab open and resolve the save problem first.

Choose a voice type

Custom voice

This is the simplest starting point. Select one of the nine presets: Aiden, Dylan, Eric, Ono_anna, Ryan, Serena, Sohee, Uncle_fu, or Vivian.

The character-style field describes persistent traits, such as a restrained tone or an accent. The app combines that style with the line's delivery direction. Put the words to be spoken in the script's Text field, not in the character style.

Custom voices work with local or external TTS. Set the synthesis language in Setup, then audition pronunciation and delivery in Editor.

Clone voice

A clone uses reference audio and its exact transcript. Choose an item from Uploaded Voices or Designed Voices, or use Upload to add your own reference.

With external TTS, the configured server also receives the reference audio and transcript for cloning. Check that destination before using a private recording.

Ordinary clone generation does not apply the script's delivery instructions as Custom or LoRA generation does. If you need direction-following for each line, test another voice type rather than assuming edits to Delivery will change a clone's emotion.

Custom path... is available for an existing reference on the machine running the app. A path on your browser's computer is not automatically available to a remote or Docker installation. Imported library references are easier to keep track of and validate.

Built-in LoRA voice and LoRA voice

These use adapters with the local TTS model. They combine the learned voice identity with the character style and the line's delivery direction.

  • Built-in LoRA voice selects from the bundled catalog. A greyed-out (not downloaded) entry needs its weights downloaded in Training first.
  • LoRA voice selects an available adapter, including one you trained.

The catalog is not proof that the weights are already installed. Listen to held-out lines before committing to a whole book. Training a new adapter is optional; see Optional Voice Tools.

Voice Design

Enter a Base voice description. Each line's delivery instruction is appended to it, and the local VoiceDesign model generates the voice for that line.

For a reusable reference instead, open Designer:

  1. Enter Voice Description and Sample Text.
  2. Click Generate Preview and listen.
  3. Enter a Voice Name, then select Save Voice.
  4. Return to Voices, choose Clone voice, and select the saved designed reference.

Voice Design requires local TTS. Direct Voice Design and using a designed reference as a clone are different generation paths; audition whichever one you choose.

Character ensemble

Select the characters to speak together. The app generates each member with its assigned voice, then mixes the clips, aligned to the longest. Expect a chorus effect rather than exact unison.

Configure the member voices first. External TTS can use an ensemble of supported Custom/Clone members; it cannot make a local-only LoRA or Voice Design member work externally.

Import a reference clip safely

Only import a recording and voice you have the right to use. The app requires your confirmation, but it does not establish ownership or permission for you.

  1. On a speaker card, select Clone voice → Upload and choose WAV, MP3, FLAC, or OGG audio.
  2. In Import reference clip, enter Exact transcript of the clip. Transcribe the actual words in the audio, not a summary or a line you want the clone to say later.
  3. Add Source title, Source URL, and Rights basis when available. These are optional provenance fields; keeping them filled in makes later review easier.
  4. Select I have the right to use this voice only if that is true, then click Import.
  5. After successful import, select the new item from Uploaded Voices on the intended speaker card. Listen with the reference-play control and check Reference Text before generating a test line.

Choose one clear speaker in a clean, complete sentence. Remove unrelated silence, music, and other voices before importing. The app converts accepted input to 24 kHz mono, 16-bit WAV and rejects clips that are:

  • Under 3 seconds or over 30 seconds
  • Near-empty or too quiet under its peak-level check
  • Clipped above its allowed threshold
  • Mostly silence
  • Undecodable

Read the specific refusal and fix the recording. Passing those measurements does not prove that the transcript matches, that there is only one speaker, or that the voice will sound right in the audiobook. Listen to both the reference and generated samples.

Each successful import creates a new reference identity. If the app says the import succeeded but the list failed to refresh, reopen Voices or refresh the list before importing again; avoid creating duplicate copies.

Generate character personas

Generate Personas asks your configured LLM for character descriptions and sample text, then uses VoiceDesign to create reference audio and assign clone voices. It is optional: you can configure voices yourself without it.

Before starting:

  • Set Apply to to Only characters without a voice yet for a conservative first pass.
  • All characters (regenerate) replaces existing assignments. If offered, keep Save the current voices to the library first enabled when you want to preserve them.
  • Context controls the sample spoken lines supplied per character.
  • Advanced → Batch controls discovery batches; it is not the TTS render batch-size setting.

When it finishes, inspect the descriptions and reference audio. A persona is the character description; a voice is the assigned sound. The Approve persona, Mark persona reviewed, and Reject persona controls are separate from the corresponding voice controls. Use them to record your review accurately.

If generation stops, Manual persona recovery lets you choose a Recovery target, use Copy prompt, and paste Persona JSON. Validate & save saves the persona; Validate & resume also requests continuation. Keep the displayed target and speaker correct, and inspect the result after recovery.

Suggest LoRA Voices is a separate LLM-assisted matching tool for downloaded LoRA voices. It uses the same Apply to scope. Review the suggestions before Apply all; use Dismiss to leave them unapplied.

Aliases, readiness, and versions

Share a voice with an alias

Use Alias of for labels that should use another character's configuration, such as DR. SMITH and SMITH. An alias follows the target's voice configuration during generation; it does not rewrite the source words. Avoid circular alias chains. If the labels represent genuinely different speakers, give them independent voices.

Mark reviewed voices ready

The Ready switch is a separate user-set readiness marker. Use it after auditioning the assignment. Hide ready can reduce the number of cards on screen while you work through the cast.

Ready is not a listening test and is not the same as Approve voice. In M4B and chapter export, the optional Require ready check refuses the export while required voice assignments are unready. It does not verify that every audio chunk exists or is correct.

Keep alternate versions and voice changes

Version saves an alternate set of voice settings. Selecting a saved version replaces the current settings, so save the present settings first if you want to return to them.

When detected character states are shown, review the state-specific cards and Voice changes before applying them. A changed age or gender label in the story is not automatically a reason to change the sound. The UI can offer Choose Main voice throughout for a consistent voice.

In Editor, the Voice changes here row control lets you enter a character-style change from that line onward. Regenerate the relevant lines to hear it. For applied voice-version timelines, affected audio becomes pending and can be rebuilt with Render Pending. Existing audio and earlier exports do not magically become new performances when you edit voice settings.

For a first audiobook, leave Narrator selection at Global. Other modes choose a narrator using scene/character focus, chapter versions, or character traits. Missing matches fall back to the main narrator. Preview focus and Preview version only test the choice in the Voices panel; they do not change the script or already rendered audio.

Reuse a cast across books

In Series Cast:

  1. Select a cast, or use New to create one.
  2. Choose Save to cast, review the checked characters, then Save selected. The initial selection favors characters with at least 25 lines plus the narrator; inspect it so a quieter recurring character is not missed.
  3. For the narrator, choose shared (whole series) or this cast only (different narrator) as appropriate.
  4. On another book, choose Apply cast. Inspect the proposed matches, especially fuzzy guesses, then Apply selected.

Applying a cast overwrites the selected characters' current voice assignments. Apply to multiple books does the same for chosen saved books, so check the book list and mappings carefully before applying.

Protect unsaved voice work

The app retains unsaved voice drafts in the current browser where storage is available. Recover edits can restore a draft for the matching book version. If saved voices have changed since the draft, inspect both rather than overwriting newer work blindly. Discard draft and Discard edits and reload intentionally abandon unsaved changes.

Browser drafts are a recovery aid, not a backup. Save script versions and back up the application data, references, adapters, and cast library as described in Updates and Backups. Then continue with Rendering and Export.

Sources

Checked against shipped main commit 8c7a33cb310ab9264594a09ca27e48271585094f: voice UI and save behavior, reference import UI, reference validation, and TTS capabilities.

Clone this wiki locally