Gemini 3.8 Live: speechState (SPEECH / NON_SPEECH) is gone, no server-side speech-start signal remains

Hi team,

Thanks for the great Gemini 3.8 Live update. This is a follow-up to my earlier thread “Gemini Live Flash 3.1 API: inputTranscription no longer streams incrementally”. There I reported that gemini-3.1-flash-live-preview started sending

{“serverContent”: {“speechState”: “SPEECH”}}
{“serverContent”: {“speechState”: “NON_SPEECH”}}

which is the speech_started / speech_stopped signal a real-time client needs (hold the mic open while the user is mid-sentence, time the response from end of speech, etc.).

On gemini-3.8-live it no longer exists. Same setup message, tested on both v1alpha and v1beta: nothing is sent while the user is still talking, and the first server message is the full inputTranscription after they stop. So a client cannot extend its listening window or show a listening state from server signals alone.

Was speechState removed on purpose, or is this a regression? Is there any supported speech-start signal on 3.8?

Thanks.

The Live API WebSocket reference now marks `speechState` as deprecated and says “Use VoiceActivity instead” (screenshot attached, from https://ai.google.dev/api/live#BidiGenerateContentServerContent).

So I tested for VoiceActivity directly over raw WebSocket:

  • gemini-3.1-flash-live-preview sends it as a top-level message on both v1alpha and v1beta:
    `{“voiceActivity”: {“type”: “ACTIVITY_START”, “audioOffset”: “0.360s”}}` and the matching `ACTIVITY_END`.
  • gemini-3.8-live and gemini-3.8-live-extended-thinking send nothing. Tested on v1alpha and v1beta, with and without realtime_input_config, and with turnCoverage, endOfSpeechSensitivity, proactivity, historyConfig, NO_INTERRUPTION and context compression variants.

`VoiceActivity` itself is not defined anywhere on the reference page, nor listed in the BidiGenerateContentServerMessage union.

So the documented replacement for the deprecated field exists on 3.1 and is absent on 3.8. Is that intended?

Update (2026-09-29): gemini-3.8-live now sends voiceActivity (ACTIVITY_START / ACTIVITY_END with audioOffset) on both v1alpha and v1beta, same shape as 3.1.