cool-queen-46059
04/13/2026, 5:23 PMtall-airline-16756
04/13/2026, 5:24 PMtall-airline-16756
04/13/2026, 5:24 PMlk agent update-secrets (or equivalent) so prod has the keys.
One targeted question to narrow scope
• Do you run TTS via plugin-based providers (requiring API keys) or via LiveKit Inference string descriptors?
Send:
• a recent excerpt of the agent logs showing the TTS attempt (error lines around the time the agent should speak)
• how you configure TTS in AgentSession (code snippet) and whether API keys are set in prod
I’ll use that to give exact next steps.
, with interactive elementscool-queen-46059
04/13/2026, 5:25 PMtall-airline-16756
04/13/2026, 5:25 PMtts=).
4. Whether your prod environment restricts outbound network egress (firewall, VPC rules) to provider endpoints.
With those I can identify whether this is auth, network, config, or runtime (e.g., blocked callbacks/caching) and give exact next steps.
, with interactive elementscool-queen-46059
04/13/2026, 7:10 PMtall-airline-16756
04/13/2026, 7:11 PMsession.say() does not interfere with the TTS plugin. It calls the configured TTS to synthesize speech; if TTS is missing or failing, session.say() will produce no audio.
What to check next (since STT works but TTS silent in prod)
• Confirm a TTS instance/plugin is actually configured when you create the AgentSession (or you’re using a LiveKit Inference string descriptor).
• Ensure the TTS plugin package is installed in prod (you listed the packages, but confirm they are present in the running environment).
• Verify provider credentials in prod (even if STT keys work, TTS may use different keys or env names).
• Check prod logs around the session.say() call for TTS errors (auth, network timeouts, “no audio generated”). Share that excerpt if possible.
• Verify outbound network egress from prod allows calls to TTS provider endpoints (firewall/VPC rules can block synthesis requests).
• If you pass pre-generated audio via audio= to session.say(), confirm those frames exist — supplying audio bypasses TTS.
Quick clarifying question
• Are you passing a TTS plugin instance to AgentSession or using a string descriptor (e.g., "cartesia/…")?
If you can paste a short prod log snippet around the session.say() attempt and your AgentSession TTS config, I’ll pinpoint the exact failure and next step.
Sources: Agent speech and audio | LiveKit Documentation | Cartesia TTS | LiveKit Documentation | OpenAI TTS plugin guide | LiveKit Documentation, with interactive elements