Google TTS Plugin Timeout with Gemini Model & Chirp_3 Streaming Error (livekit-plugins-google==1.4.4)

Hi Team,

I’m facing an issue with the Google TTS plugin while using LiveKit Agents.

I am currently using:

livekit-plugins-google==1.4.4
Issue 1 – chirp_3 Model Not Working with Streaming

When I try to use the chirp_3 model for TTS, I receive the following error:

{“message”: “failed to synthesize speech: Streaming for this Gemini-TTS model is currently not supported. Please use another Gemini-TTS model or Chirp3: HD voices for streaming., retrying in 0.1s”,
“level”: “WARNING”,
“name”: “livekit.agents”,
“tts”: “livekit.plugins.google.tts.TTS”,
“attempt”: 1,
“streamed”: true,
“timestamp”: “2026-03-13T10:47:24.540323+00:00”}

From the message, it appears that streaming is not supported for this model. However, the error message itself suggests using Chirp3 HD voices for streaming, which is confusing because the chirp_3 model fails when used.

Issue 2 – Gemini Default Model Random Timeout

If I switch to the default Gemini TTS model, the agent initially starts speaking correctly. However, after some time, it randomly fails with a timeout error:

{“message”: “failed to synthesize speech, retrying in 0.1s
Traceback (most recent call last):
File “/app/.venv/lib/python3.12/site-packages/livekit/agents/tts/tts.py”, line 456, in _main_task
await self._run(output_emitter)
File “/app/.venv/lib/python3.12/site-packages/livekit/plugins/google/tts.py”, line 398, in _run
await asyncio.gather(*tasks)
File “/app/.venv/lib/python3.12/site-packages/livekit/plugins/google/tts.py”, line 391, in _run_segments
await self._run_stream(input_stream, output_emitter, streaming_config)
File “/app/.venv/lib/python3.12/site-packages/livekit/plugins/google/tts.py”, line 443, in _run_stream
raise APITimeoutError() from None
livekit.agents._exceptions.APITimeoutError: Request timed out. (body=None, retryable=True)”,
“level”: “WARNING”,
“name”: “livekit.agents”,
“tts”: “livekit.plugins.google.tts.TTS”,
“attempt”: 1,
“streamed”: true
}

Can you please share your full AgentSession configuration?

 # -------------------------
    # STT CONFIG
    # -------------------------
    stt = deepgram.STT(
        api_key=os.getenv("DEEPGRAM_API_KEY"),
        model="nova-3",
        language="en-US",
        smart_format=True,
        numerals=True
    )

    # -------------------------
    # LLM CONFIG
    # -------------------------
    llm = LLM.with_azure(
        azure_deployment=os.getenv("AZURE_OPENAI_MODEL"),
        azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"),
        api_key=os.getenv("AZURE_OPENAI_API_KEY"),
        api_version="2025-01-01-preview",
        temperature=0.3
    )

    # -------------------------
    # GOOGLE TTS CONFIG
    # -------------------------
    credentials_info = json.loads(os.getenv("GOOGLE_APPLICATION_CREDENTIALS"))

    tts = google.TTS(
        model_name="chirp_3",	
        language="en-US",
        credentials_info=credentials_info,
        voice_name="Achernar",
        audio_encoding=texttospeech.AudioEncoding.PCM,
        use_streaming=True,
        location="eu"
    )

    # -------------------------
    # AGENT SESSION
    # -------------------------
    session = AgentSession(
        stt=stt,
        llm=llm,
        tts=tts,
        vad=silero.VAD.load(min_speech_duration=0.3),
        turn_detection=None,
        min_interruption_words=2,
        user_away_timeout=60,
    )

    await session.start(
            agent=agent,
            room=ctx.room,
            room_input_options=RoomInputOptions(
                  noise_cancellation=noise_cancellation.NC(),
            )
        )

@darryncampbell hi mate, any updates ??

I think it’s the voice name, at least for issue 1, can you try:

    tts = google.TTS(
        model_name="chirp_3",
        language="en-US",
        credentials_info=credentials_info,
        voice_name="en-US-Chirp3-HD-Achernar", <-- Changed
        audio_encoding=texttospeech.AudioEncoding.PCM,
        use_streaming=True,
        location="eu",
    )

ok with changing the voice name chirp 3 model initialised and speaks but it’s only working one out of five times the rest four times i’m getting this error

{“message”: “assignment for job AJ_uBEMzuVNkFRi timed out”, “level”: “WARNING”, “name”: “livekit.agents”, “job_request”: “<livekit.agents.job.JobRequest object at 0x00000206D46B7E90>”, “agent_name”: “”, “timestamp”: “2026-03-17T05:51:11.315263+00:00”} {“message”: “job_request_fnc failed”, “level”: “ERROR”, “name”: “livekit.agents”, “exc_info”: “Traceback (most recent call last):\n File \“C:\\Users\\Sahil Dutta 2\\Desktop\\axl\\axlai-voicekit\\.venv\\Lib\\site-packages\\livekit\\agents\\worker.py\”, line 1244, in _job_request_task\n await self._request_fnc(job_req)\n File \“C:\\Users\\Sahil Dutta 2\\Desktop\\axl\\axlai-voicekit\\.venv\\Lib\\site-packages\\livekit\\agents\\worker.py\”, line 70, in _default_request_fnc\n await ctx.accept()\n File \“C:\\Users\\Sahil Dutta 2\\Desktop\\axl\\axlai-voicekit\\.venv\\Lib\\site-packages\\livekit\\agents\\job.py\”, line 809, in accept\n await self._on_accept(accept_arguments)\n File \“C:\\Users\\Sahil Dutta 2\\Desktop\\axl\\axlai-voicekit\\.venv\\Lib\\site-packages\\livekit\\agents\\worker.py\”, line 1211, in _on_accept\n raise AssignmentTimeoutError() from None\nlivekit.agents._exceptions.AssignmentTimeoutError”, “job_request”: “<livekit.agents.job.JobRequest object at 0x00000206D46B7E90>”, “agent_name”: “”, “timestamp”: “2026-03-17T05:51:11.315263+00:00”}

That’s talking about the job assignment failing, that’s not an error about the TTS.

Quite possibly that error is a result of some issue with STT initialization, but you can’t tell from the error message.

Can you try with the GitHub - livekit-examples/agent-starter-python: A complete voice AI starter for LiveKit Agents with Python. · GitHub first to check that the TTS issue is fixed.

Hi mate,

I checked and can confirm that the Chirp 3 TTS is now working much better and as expected.

As always, I really appreciate your help on this. However, I’m still not fully convinced about one thing … why was the default Gemini TTS model suddenly timing out?

Would love your thoughts on that.

My initial assumption would be service availability on Google’s side, but it looks like the Google TTS service health page is here: Google Cloud Service Health and says that there have been no incidents since June 2025 :thinking:

We only monitor the health of providers that we offer through LiveKit Inference, so I haven’t got any internal dashboards I can look at for Google TTS I’m afraid.

Incidentally, it is recommended to use a FallbackAdapter so your app can continue even in the event of provider downtime: Events and error handling | LiveKit Documentation