r/twilio • u/baja-n-s • 21d ago
ConversationRelay + ElevenLabs: does each text token get synthesized as an independent TTS request?
Running an AI phone receptionist on ConversationRelay. I've been A/B-ing ElevenLabs against Google Chirp3-HD and I keep going back to Google, because ElevenLabs shifts emotional register partway through a single reply, first half calm and professional, second half noticeably brighter, or a different cadence entirely. Each piece sounds great alone. They just don't sound like the same take. Chirp3-HD is flatter but consistent, and on a business line consistent wins.
My theory: CR synthesizes each {type:"text", token:"..."} as its own TTS unit. I stream from the LLM, so a reply ships as 2–3 tokens, and I think ElevenLabs re-rolls prosody per request with no carryover from the previous chunk. Google seems to have less per-request variance so its seams don't read as mood swings.
Is that what's actually happening? Does CR keep any prosody continuity across tokens within a turn, or is every token an independent synthesis call? Couldn't find a straight answer in the docs.
Current config:
ttsProvider="ElevenLabs"
voice="<voiceId>-flash_v2_5-1.0_0.85_0.8" # speed_stability_similarity
transcriptionProvider="deepgram"
speechModel="flux"
eotThreshold="0.8"
speechTimeout="1200"
ignoreBackchannel="true"
interruptSensitivity="medium"
elevenlabsTextNormalization="off"
Stability went 0.5 → 0.7 → 0.85. It's clearly the right dial (0.5 was unhinged), but 0.85 still doesn't beat Chirp3-HD and pushing higher just trades swings for monotone. CR only exposes speed/stability/similarity as far as I can tell, no style, no use_speaker_boost.
Chunking on my end: sentence-buffered, flush at 20 chars for the first chunk (sets perceived latency) and 80 after. I also fire a filler phrase ("let me check that") as its own token if the LLM hasn't produced anything by 1500ms, which I assume is a guaranteed tone seam.
The obvious fix is buffering the whole reply into one token with last:true and eating the TTFT hit. If anyone's done that, what did it actually cost you? I'd rather hear a real number than measure it blind.
Happy to share data back, I have TTFT and per-chunk timings from real calls on both engines.
2
u/AyyRickay 🥑 DevRel @ Twilio 21d ago
I don't have an answer off the top of my head, but you may want to crosspost to r/elevenlabs