Text To Speech (ElevenLabs)
Text To Speech input properties for Script Engine. Synthesises speech audio from text by talking to the ElevenLabs cloud service. Useful for AI announcers and presenters, automated voice-overs, multilingual broadcasts, accessibility narration, dynamic alerts and stingers, and any production where voice talent isn't on hand or shouldn't be required for short bits of audio. Generated speech is optionally cached so repeated requests for the same text don't burn ElevenLabs credits. Requires a working ElevenLabs API key in the COMPOSER_ELEVENLABS_APIKEY environment variable. Voice quality and speed depend on the chosen voice and model on ElevenLabs' side.
| Property | Type | Access | Description |
|---|---|---|---|
AutoStart |
bool |
get/set |
Whether to start playback automatically when the project loads. [default=true]. Saves a manual click when the project is loaded fresh; turn off if you want to trigger speech only on demand from a script or Play command. |
ShowAdvancedOptions |
bool |
get/set |
Whether to reveal advanced configuration in the editor. [default=false]. |
VoiceId |
string |
get/set |
ElevenLabs voice ID that generates the speech. Must match a voice your ElevenLabs account has access to. Browse the ElevenLabs Voice Library to find IDs for cloned voices, voices you've designed, or pre-made voices. |
ModelId |
string |
get/set |
ElevenLabs model ID used for generating speech. Different models trade off quality, latency, multilingual support, and credit cost. Pick a "flash" model for low-latency live use, a higher-quality model for prerecorded content. See the ElevenLabs models documentation for the current options. |
Language |
string |
get/set |
Language code (ISO 639-1) for the generated speech (for example "en", "sv", "es"). Leave empty to use the model's default language. Useful when the same model is used for multiple languages and you want to force a specific one. |
Text |
string |
get/set |
The text the model will read aloud on the next Play command. Set from a script for fully automated speech, or type into the field for interactive use. Long text blocks generate longer audio clips and use more ElevenLabs credits. |
Stability |
double |
get/set |
How stable and consistent the voice sounds. [min=0, max=1, default=1]. Lower values give more emotional, varied delivery — good for character voices and performances. Higher values sound calmer and more monotone — good for narration and announcements where consistency matters. |
SpeakerBoost |
bool |
get/set |
Whether to boost similarity to the original speaker. [default=true]. Helps the synthesised voice stay closer to the cloned source. Slightly increases generation time and latency. |
SimilarityBoost |
double |
get/set |
How closely the synthesised voice matches the original. [min=0, max=1, default=0.75]. Higher values stick more tightly to the source voice. Lower values let the model improvise more, which can sound more natural but less recognisable. |
Style |
double |
get/set |
How much the speaker's vocal style is exaggerated. [min=0, max=1, default=0]. Higher values amplify the speaker's natural style — useful for character voices. May increase generation latency. Stick close to 0 for neutral narration. |
Speed |
double |
get/set |
Speech playback speed. [min=0.7, max=1.2, default=1.0]. Values below 1.0 slow the speech down; above 1.0 speed it up. Useful for matching timing to a specific cue or making content easier to follow. |
ResetVoiceSettingsCommand |
Command |
get/set |
Reset voice settings to their defaults (stability, speaker boost, similarity, style, speed). |
PlaybackState |
PlaybackState |
get/set |
Current playback state of the input — Running or Stopped (read-only). |
PlayCommand |
Command |
get/set |
Send the current Text to ElevenLabs and play the resulting speech audio. If caching is on and the same text/voice/model has been generated before, audio is played from disk instead of making a new request. |
StopCommand |
Command |
get/set |
Stop the current speech playback and cancel any in-flight ElevenLabs request. |
Status |
ResponseState |
get |
Current state of the request (read-only). Reports whether the input is standing by, sending, receiving audio, speaking, playing from cache, finished, or in an error state. Useful from a script to wait for speech to finish before triggering the next cue. |
Response |
string |
get |
Latest HTTP response message from the ElevenLabs API (read-only). Shows the status code and any error text. Useful for diagnosing failures (invalid API key, exhausted credits, voice not available) without checking the log. |
ResponseTime |
int |
get |
Time taken until the first audio chunk arrived from ElevenLabs, in milliseconds (read-only). Useful for monitoring service responsiveness. Zero before the first chunk and when playing from cache. |
SpeechDuration |
string |
get |
Length of the generated speech, formatted as seconds or mm:ss (read-only). Populated once the full response has been received (or loaded from cache). |
CacheEnabled |
bool |
get/set |
Whether to cache generated audio so repeated playback doesn't hit ElevenLabs again. [default=true]. On is recommended for any workflow that replays the same lines (announcements, jingles, scripted Q&A) — you only pay the API cost once. Cache key is text\|voice\|model\|language, so changing any of those generates fresh audio. |
CacheRetentionUnit |
CacheRetentionUnit |
get/set |
Time unit used together with CacheRetentionDuration to compute cache expiry. Pick Forever to keep cached audio indefinitely. Pick Minutes/Hours/Days/Months to auto- expire entries older than the chosen interval. |
CacheRetentionDuration |
int |
get/set |
How long cached files are kept before they expire, in units of CacheRetentionUnit. [min=1, max=10000]. Ignored when CacheRetentionUnit is Forever. |
CacheFolder |
string |
get |
Folder where cached audio files are written (read-only). Resolved automatically based on the project location and the Composer media directory. |
CachedFileCount |
int |
get |
Number of cached audio files currently on disk (read-only). Useful for monitoring cache growth. |
ClearCacheCommand |
Command |
get/set |
Delete all cached audio files. Asks for confirmation first; cannot be undone. Useful when voice settings change and you want to force fresh audio everywhere. |
Inherits from: AbstractInput, AbstractAudioProcessing, AbstractAudioMetering.
See also: Text To Speech (ElevenLabs) in Inputs — user-facing introduction, screenshots, and section summaries.