Text-to-Speech

Consequence can automatically generate temporary voice-over using a configured Text-to-Speech provider.

TTS is generally intended for Scratch VO, allowing writers and designers to hear dialogue in game before final actor recordings are available.

Supported TTS Providers

Consequence Client currently supports:

  • ElevenLabs
  • Azure Speech
  • Amazon Polly

Additional TTS providers can be supported upon request.

The active provider and its API credentials are configured on Consequence Client.

See Consequence Client Installation for the available TTS environment variables and provider-specific configuration.

Character Voices

Consequence Characters can be assigned voices for use by the configured TTS provider.

If a Character does not have a specific voice assigned, Consequence Client can fall back to the default voice configured for that provider based on the Character's gender.

This allows a project to configure its Character voices once and then request TTS without selecting a voice separately for every Line.

Requesting TTS

TTS can be requested for individual Lines from Table View or in bulk for a larger group of Lines.

For recording-session workflows, the easiest approach is to use the Recording Wizard:

  1. Select the Events containing the Lines you want to process.
  2. Open the Recording Wizard.
  3. Select the Characters whose Lines should receive TTS.
  4. Enable Initiate Text-to-Speech Processing.
  5. Generally set those Lines to Recording Scratch, since generated TTS is normally temporary VO.
  6. Complete the Recording Wizard.
  7. Run Commands → Submit to Source Control.

TTS requests are processed by Consequence Client as part of the Submit workflow.

TTS Processing

When Consequence Client receives a submission, it checks the submitted Lines for TTS requests.

Requested Lines are placed in a background processing queue containing the Line UID, dialogue text, selected voice, and output filename.

Consequence Client then sends the dialogue to the configured TTS provider and generates a .wav file for each processed Line.

TTS processing happens in the background, so users do not need to wait for the audio generation to finish before continuing to work in Consequence.

Updating Existing TTS

Consequence Client keeps track of the dialogue text and Character voice used for each queued TTS request.

A TTS request will be refreshed when appropriate, including when:

  • the Line is requested again
  • the dialogue text has changed
  • the voice assigned to the Character has changed

This helps prevent previously generated Scratch VO from becoming disconnected from the latest writing.

TTS Dialogue Text

Before sending dialogue to the TTS provider, Consequence Client simplifies text that is intended for Unreal rather than spoken aloud.

For example, square-bracketed closed-caption information is removed, and supported Unreal text variables or conditional formatting are simplified so that the TTS provider receives the spoken text rather than the underlying formatting syntax.

TTS Output

Generated TTS files are written as .wav files and submitted to the Perforce directory configured for TTS in Consequence Client.

The TTS output directory can either be:

  • an intermediate directory used for generated Scratch VO, or
  • a directory directly inside your project's audio workflow, such as the appropriate Wwise Originals directory

Using an intermediate directory allows your audio team to review or move generated files before incorporating them into the normal game-audio pipeline.

See Consequence Client Installation for the TTS directory settings.

Syncing Generated Audio Back Into Consequence

Once generated .wav files are available in Perforce, run:

Commands → Sync Audio

Consequence Client scans the configured audio directory and associates audio with the appropriate Consequence Lines using their UIDs.

For TTS Lines being recorded as Scratch VO, this normally advances the Recording Status to Scratch VO.

The generated audio can then be previewed remotely from Consequence.

See Audio Workflow and Recording Statuses for more information.

TTS and Final VO

TTS is designed to fit into the same UID-based audio pipeline as recorded dialogue, but it does not require your project to use generated voices as final production audio.

A typical workflow is:

Writing → TTS Scratch VO → In-Game Testing → Final Actor Recording

Once final recorded audio is available, the normal recording and audio-sync workflow can replace the temporary TTS audio, at which point the Recording Status should be updated to Actor VO.