- OPERATORS
- PIPELINES
TTS
v1.0.0newtts 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.
What It Does
Section titled “What It Does”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.
Typical Workflow
Section titled “Typical Workflow”- Choose Provider and configure the provider page, such as Voice, Language, or Speed.
- 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.
- Enter Text and pulse Synthesize.
- Use Playback Mode, Device, Volume, and the transport controls to route or replay audio.
- Choose Buffer Mode depending on whether each synthesis should replace or accumulate audio.
- Set Save Audio to Auto or Manual when you need WAV output, then choose Save Folder or use Save Now.
Inputs And Outputs
Section titled “Inputs And Outputs”- 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_logandcallback_logtrack sent text and callback activity.
Works Well With
Section titled “Works Well With”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.
Gotchas
Section titled “Gotchas”- 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_outunder the current project when left empty. - Callback DAT hooks include synthesis start/complete, playback start/finished, provider changes, initialization/shutdown, and errors.
Parameters
Section titled “Parameters”op('tts').par.Inputtext Str - Default:
Text to speak...
op('tts').par.Synthesize Pulse - Default:
False
op('tts').par.Autoinitialize Toggle - Default:
True
op('tts').par.Enginestatus Str - Default:
"" (Empty String)
op('tts').par.Active Toggle - Default:
False
op('tts').par.Initialize Pulse - Default:
False
op('tts').par.Shutdown Pulse - Default:
False
op('tts').par.Installdependencies Pulse - Default:
False
op('tts').par.Initializeonstart Toggle - Default:
False
op('tts').par.Downloadmodel Pulse - Default:
False
op('tts').par.Monitorworkerlogs Toggle - Default:
True
op('tts').par.Autoreattachoninit Toggle - Default:
True
op('tts').par.Forceattachoninit Toggle - Default:
False
op('tts').par.Speechvenv Folder - Default:
"" (Empty String)
op('tts').par.Smartchunking Toggle - Default:
False
op('tts').par.Maxchunkduration Float - Default:
8.0- Range:
- 1 to 30
op('tts').par.Pausesensitivity Float - Default:
0.5- Range:
- 0 to 1
op('tts').par.Scanproviders Pulse - Default:
False
op('tts').par.Providersfolder Folder - Default:
"" (Empty String)
op('tts').par.Saveaudiofolder Folder - Default:
"" (Empty String)
op('tts').par.Saveaudiopulse Pulse - Default:
False
Kokoro
Section titled “Kokoro”op('tts').par.Speed Float - Default:
1.0- Range:
- 0.5 to 2
Playback
Section titled “Playback”op('tts').par.Resetplayback Pulse - Default:
False
op('tts').par.Playbackactive Toggle - Default:
True
op('tts').par.Volume Float - Default:
1.0- Range:
- 0 to 1
op('tts').par.Play Pulse - Default:
False
op('tts').par.Pause Pulse - Default:
False
op('tts').par.Stop Pulse - Default:
False
op('tts').par.Replay Pulse - Default:
False
Callbacks
Section titled “Callbacks”op('tts').par.Callbackdat DAT - Default:
./emptyCallbacks
op('tts').par.Printcallbacks Toggle - Default:
False
Changelog
Section titled “Changelog”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