Skip to content
  1. OPERATORS
  2. PIPELINES

TTS

v1.0.0new

tts turns text into spoken audio through swappable local and cloud providers. Use it for narration, agent voice responses, installation feedback, or any patch that needs synthesized speech plus TouchDesigner playback control.

The operator discovers built-in and custom TTS providers, loads the selected Provider, and creates that provider’s voice/model parameters. Synthesize sends the Text value to the active backend, writes decoded audio into the internal audio buffer, and triggers playback through the Playback page. Audio can replace the previous buffer or append across syntheses, and it can be saved as WAV files.

Local providers use the speech worker path and may need dependencies or model downloads. Cloud providers can auto-connect on first synthesis and need API keys when their provider page requires them.

  1. Choose Provider and configure the provider page, such as Voice, Language, or Speed.
  2. For local providers, pulse Install Dependencies and Download Model if needed, then Initialize Engine. Leave Auto Initialize on when you want first synthesis to start the engine for you.
  3. Enter Text and pulse Synthesize.
  4. Use Playback Mode, Device, Volume, and the transport controls to route or replay audio.
  5. Choose Buffer Mode depending on whether each synthesis should replace or accumulate audio.
  6. Set Save Audio to Auto or Manual when you need WAV output, then choose Save Folder or use Save Now.
  • Inputs: No connector inputs. Text enters through the Text parameter or synthesis calls from other operators.
  • Output 1: Synthesized audio CHOP output from the internal audio buffer.
  • Output 2: Secondary packaged output surface for the TTS component.
  • Internal tables/DATs: synthesis_log and callback_log track sent text and callback activity.
  • stt: Builds speech-in / speech-out interaction loops.
  • voice_activity: Helps gate microphone capture in voice systems that also speak.
  • agent: Supplies generated text for synthesis.
  • chat: Provides conversational text that can be voiced.
  • Provider switches replace the provider-specific page and clear playback/buffer state.
  • Cloud providers may connect automatically on Synthesize; local providers usually need dependencies and a model first.
  • Playback Mode changes which device controls matter: CHOP uses TouchDesigner audio output, while Threaded uses the threaded device selector.
  • Save Folder defaults to audio_out under the current project when left empty.
  • Callback DAT hooks include synthesis start/complete, playback start/finished, provider changes, initialization/shutdown, and errors.
Provider (Provider) op('tts').par.Provider StrMenu
Default:
kokoro
Menu Options:
  • Kokoro (kokoro)
  • Cartesia (cartesia)
  • ElevenLabs (elevenlabs)
  • Pocket TTS (pocket_tts)
Text (Inputtext) op('tts').par.Inputtext Str
Default:
Text to speak...
Synthesize (Synthesize) op('tts').par.Synthesize Pulse
Default:
False
Auto Initialize (Autoinitialize) op('tts').par.Autoinitialize Toggle
Default:
True
Engine Status (Enginestatus) op('tts').par.Enginestatus Str
Default:
"" (Empty String)
Active (Active) op('tts').par.Active Toggle
Default:
False
Initialize Engine (Initialize) op('tts').par.Initialize Pulse
Default:
False
Shutdown Engine (Shutdown) op('tts').par.Shutdown Pulse
Default:
False
Dependencies OK (Installdependencies) op('tts').par.Installdependencies Pulse
Default:
False
Initialize On Start (Initializeonstart) op('tts').par.Initializeonstart Toggle
Default:
False
Download Model (Downloadmodel) op('tts').par.Downloadmodel Pulse
Default:
False
Worker Log Level (Workerlogging) op('tts').par.Workerlogging Menu
Default:
INFO
Options:
OFF, CRITICAL, ERROR, WARNING, INFO, DEBUG
IPC Mode (Ipcmode) op('tts').par.Ipcmode Menu
Default:
tcp
Options:
tcp, stdio
Monitor Worker Logs (Monitorworkerlogs) op('tts').par.Monitorworkerlogs Toggle
Default:
True
Auto Reattach (Autoreattachoninit) op('tts').par.Autoreattachoninit Toggle
Default:
True
Force Attach (Skip PID) (Forceattachoninit) op('tts').par.Forceattachoninit Toggle
Default:
False
Speech Venv (Speechvenv) op('tts').par.Speechvenv Folder
Default:
"" (Empty String)
Smart Chunking (Smartchunking) op('tts').par.Smartchunking Toggle
Default:
False
Max Chunk Duration (s) (Maxchunkduration) op('tts').par.Maxchunkduration Float
Default:
8.0
Range:
1 to 30
Pause Sensitivity (Pausesensitivity) op('tts').par.Pausesensitivity Float
Default:
0.5
Range:
0 to 1
Scan Providers (Scanproviders) op('tts').par.Scanproviders Pulse
Default:
False
Custom Providers Folder (Providersfolder) op('tts').par.Providersfolder Folder
Default:
"" (Empty String)
Buffer Mode (Buffermode) op('tts').par.Buffermode Menu
Default:
replace
Options:
replace, append
Save Audio (Saveaudio) op('tts').par.Saveaudio Menu
Default:
off
Options:
off, auto, manual
Save Folder (Saveaudiofolder) op('tts').par.Saveaudiofolder Folder
Default:
"" (Empty String)
Save Now (Saveaudiopulse) op('tts').par.Saveaudiopulse Pulse
Default:
False
Voice (Voice) op('tts').par.Voice StrMenu
Default:
af_heart
Menu Options:
  • Heart (F, American) (af_heart)
  • Bella (F, American) (af_bella)
  • Nicole (F, American) (af_nicole)
  • Sarah (F, American) (af_sarah)
  • Sky (F, American) (af_sky)
  • Adam (M, American) (am_adam)
  • Michael (M, American) (am_michael)
  • Emma (F, British) (bf_emma)
  • Isabella (F, British) (bf_isabella)
  • George (M, British) (bm_george)
  • Lewis (M, British) (bm_lewis)
Language (Language) op('tts').par.Language Menu
Default:
en-us
Options:
en-us, en-gb, fr-fr, ja, ko, zh
Speed (Speed) op('tts').par.Speed Float
Default:
1.0
Range:
0.5 to 2
Playback Mode (Playbackmode) op('tts').par.Playbackmode Menu
Default:
threaded
Options:
chop, threaded
Audio Device Settings Header
Reset Playback (Resetplayback) op('tts').par.Resetplayback Pulse
Default:
False
Active (Playbackactive) op('tts').par.Playbackactive Toggle
Default:
True
Driver (Driver) op('tts').par.Driver Menu
Default:
default
Options:
default, asio
Device (Audiodevice) op('tts').par.Audiodevice Menu
Default:
default
Options:
default
Threaded Device (Threadeddevice) op('tts').par.Threadeddevice StrMenu
Default:
default
Menu Options:
  • default (default)
Volume (Volume) op('tts').par.Volume Float
Default:
1.0
Range:
0 to 1
Transport Header
Play (Play) op('tts').par.Play Pulse
Default:
False
Pause (Pause) op('tts').par.Pause Pulse
Default:
False
Stop (Stop) op('tts').par.Stop Pulse
Default:
False
Replay (Replay) op('tts').par.Replay Pulse
Default:
False
Callbacks DAT (Callbackdat) op('tts').par.Callbackdat DAT
Default:
./emptyCallbacks
Print Callbacks (Printcallbacks) op('tts').par.Printcallbacks Toggle
Default:
False
v1.0.02026-05-02
  • added experimental_providers/ to .gitignore
  • added script1_callbacks.py for 6-channel CHOP status output - added docs/compose.json
  • added auto-initialize engine on Synthesize when model not ready - added parameter ordering for TTS page layout - added provider sync from menu on Synthesize/Initialize - added venv path resolution with walk-up directory search - removed chatterbox and zonos providers from shipping operator (moved to experimental_providers) - bumped version to 1.0.0 - updated category to Pipelines
  • set release_level to prod
  • Initial tts structure