It seems that our TTS is speaking too fast and som...
# ask-ai
e
It seems that our TTS is speaking too fast and sometimes skipping shorts parts of the sentence. Is this the result of how streaming works or is it TTS that needs to be slowed down. Intonation is sometimes very off as well so we wonder whether its an issue with how text is streamed back
t
Thanks for reaching out, Arthur. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Thanks — this is a great question. You’re describing three related symptoms: speech that sounds too fast, parts of sentences being clipped/skipped, and odd intonation. I’ll explain what’s likely happening and give clear, actionable steps you can try. What’s likely happening • Streaming can cause rushed or clipped speech when TTS starts speaking before the LLM has emitted a full, natural text chunk. If the TTS receives very small fragments or tokens, it may begin speaking mid-phrase and miss later words or end sentences abruptly. • TTS settings (speaking rate / prosody controls) also directly affect speed and intonation. If rate is too high or no prosody/SSML hints are provided, speech will sound rushed and flat. • Some providers handle streaming and prosody better than others; provider-specific differences can make the same input sound very different. What you can try (short checklist) 1. Control chunking before TTS ◦ Ensure the LLM pushes complete sentences or logical phrases to the TTS (not tiny token fragments). ◦ Use sentence boundaries or punctuation to delay sending until a natural pause (periods, commas, newlines). ◦ If you have a custom
llm_node
, confirm it isn’t forwarding overly small chunks to
tts_node
. 1. Slow down the speaking rate ◦ Lower the TTS
speed
/
speaking_rate
(for example, try values around 0.8–1.0 as a starting point). ◦ Different plugins name this differently; set the provider-specific rate parameter. 1. Improve prosody / intonation ◦ Use SSML or provider voice instructions (emotion, emphasis, pauses) to guide tone and rhythm. ◦ Send structured output from the LLM that includes voice instructions or break markers the TTS can consume. 1. Try provider differences to isolate cause ◦ Test the same input against another TTS provider (e.g., ElevenLabs, Cartesia, etc.). If another provider sounds correct, the issue is likely provider-specific configuration rather than streaming logic. ◦ Some providers support word-level timing or richer SSML which helps when streaming. 1. Enable better alignment if available ◦ If your setup supports options like
use_tts_aligned_transcript
(or equivalent), enable it to improve sync and reduce clipping. How to proceed (quick troubleshooting flow) 1. Send a complete sentence chunk (with punctuation) and a slower
speaking_rate
. See if clipping stops. 2. If clipping continues, switch providers for a quick A/B test. If the other provider behaves, tune the original provider’s prosody/SSML options. 3. If speech is still unnatural, include explicit SSML breaks/pauses in the text the TTS receives. If you want, tell me: • Which TTS provider(s) you’re using now (plugin name), • How you’re streaming (are you sending sentence-delimited chunks or token-by-token?), and • The typical `speed`/`speaking_rate` value you’re using. With that, I can suggest exact parameter names and values or sample SSML snippets to try. Sources: Live Conversations with AI using ChatGPT and WebRTC | Text-to-speech (TTS) models overview | LiveKit Documentation | Tool definition and use | LiveKit Documentation | Pipeline nodes and hooks | LiveKit Documentation | MiniMax TTS plugin guide | LiveKit Documentation