Do TTS wait for whole LLM response ?
# ask-ai
e
Do TTS wait for whole LLM response ?
t
Thanks for reaching out, Aman. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Regarding whether TTS waits for the whole LLM response: No — LiveKit streams LLM output and TTS can begin synthesizing as text chunks arrive, so speech starts incrementally rather than waiting for the full response. Would you like details on how to enable or tune streaming behavior for lower latency? Sources: Live Conversations with AI using ChatGPT and WebRTC
e
yes share the options
t
You asked for the options to enable/tune streaming TTS with LLMs — here are the practical choices you can use to reduce latency and start audio as text arrives. • Plugin latency params ◦ ElevenLabs: set
streaming_latency
(seconds) — lower = faster first audio.
Copy code
tts = elevenlabs.TTS(voice_id="ODq5z...", streaming_latency=1)
• Rime:
reduce_latency=True
disables text normalization for faster output (may affect pronunciation).
Copy code
tts = rime.TTS(model="arcana", speaker="celeste", reduce_latency=True)
• Hume:
instant_mode=True
enables ultra-low latency (higher cost); auto-enabled when a voice is specified.
Copy code
tts = hume.TTS(voice=hume.VoiceByName(name="Colton Rivers"), instant_mode=True)
• Choose streaming-capable TTS engines ◦ Use providers/plugins that stream audio (Cartesia, ElevenLabs, OpenAI, etc.) so audio is generated incrementally as tokens arrive. • Preemptive / incremental synthesis ◦ Let the TTS node synthesize chunks as the LLM yields tokens (TTS begins before the full response finishes). • Use LiveKit Inference / co-location ◦ Run models via LiveKit Inference for lower network latency and provisioned capacity (reduces TTFB and token latency). • Pick low-latency models ◦ Prefer models built for real-time (e.g., Cartesia Sonic, Rime Arcana) to reduce Time To First Byte (TTFB). • Monitor and tune metrics ◦ Track TTFB (first audio byte), TTFT (first token), and overall end-to-end latency. Adjust plugin params and model choices accordingly. • Avoid non-streaming models ◦ Don’t use TTS models that require full-text input before synthesis if you need low latency. Would you like example code for your stack (Node or Python) or help picking specific plugin settings for a particular provider? Sources: ElevenLabs TTS plugin guide | LiveKit Docs | Rime TTS plugin guide | LiveKit Docs | Hume TTS plugin guide | LiveKit Docs | Agents (Node.js) | livekit/livekit_composite | DeepWiki | Pipeline nodes and hooks | LiveKit docs