fix: propagate skip_tts flag through LLM response frames

- Add skip_tts as an init parameter for TextFrame, LLMFullResponseStartFrame,
  and LLMFullResponseEndFrame instead of setting it post-init
- Update all LLM services to pass skip_tts when creating frames:
  - Anthropic, AWS (Bedrock, Nova Sonic, AgentCore), Google (Gemini, Gemini Live)
  - OpenAI (base, realtime), OpenAI Realtime Beta, SambaNova
- Add _get_skip_tts() helper method in LLMService base class
- Remove push_frame override that was setting skip_tts after frame creation
This commit is contained in:
James Hush
2025-11-28 13:40:09 +01:00
parent b78eb5de6b
commit 98df964e68
14 changed files with 84 additions and 89 deletions

View File

@@ -50,6 +50,10 @@ async def main():
),
)
await transport.update_subscriptions(
profile_settings={"base": {"camera": "unsubscribed", "screenVideo": "unsubscribed"}}
)
tts = CartesiaTTSService(
api_key=os.getenv("CARTESIA_API_KEY"),
voice_id="71a7ad14-091c-4e8e-a314-022ece01c121", # British Reading Lady