Field report: gemini-3.5-live-translate-preview — setup schema docs/runtime mismatch, voice pinning silently ignored, within-session voice drift

We’re building live speech-to-speech translation for church services (Spanish to English, 60-90 min sessions) on gemini-3.5-live-translate-preview over the raw Live API WebSocket (v1beta BidiGenerateContent), streaming 16 kHz PCM in / 24 kHz out. We’ve been on this model since launch week and have field findings plus questions. All findings re-verified 2026-07-01/02 with standalone probes on real sermon audio.

  1. Docs/runtime mismatch on transcription setup fields (since launch, still open)

The live translation guide (ai.google.dev/gemini-api/docs/live-api/live-translate) places inputAudioTranscription / outputAudioTranscription inside generationConfig. The runtime rejects exactly that shape and closes with 1007:

`Invalid JSON payload received. Unknown name “inputAudioTranscription” at ‘setup.generation_config’: Cannot find field.`

Placing both fields top-level on setup works (reaches setupComplete, full translation). Reproduced 2026-06-20 and again 2026-07-01. Which placement is the intended contract?

  1. Voice pinning is accepted but silently ignored

speechConfig.voiceConfig.prebuiltVoiceConfig.voiceName: "Kore" (female) on male Spanish sermon audio: setup accepted, full translation returned, output voice male (style transfer of the speaker). Same result on 2026-06-10 and 2026-07-02. If voice pinning is unsupported on this model, a setup rejection or a documented limitation would be clearer than silent acceptance.

  1. Within-session voice drift (not rotation-related)

In a single uninterrupted ~10-minute session, the translated narrator audibly changed character a few minutes in (confirmed by ear on multiple dates). Notably, two independent fresh sessions on the same input start with similar voices - so the style transfer is consistent across sessions but unstable within one. Is this a known preview limitation, and is a stable-voice mode planned for GA?

  1. Session-management fields flipped from rejected to working

On 2026-06-20, sending sessionResumption / contextWindowCompression in setup closed the session with 1007 before setupComplete. On 2026-07-02, both are accepted and a goAway-then-reconnect resume with the stored handle works. Is this now officially supported for the translate model, or an unannounced rollout that may revert? We’d like to know before building on it.

  1. Speaking-rate control

We can’t find a documented speech-speed / speaking-rate control for translated audio output on this model. Does one exist, and if not, is client-side playback-rate adjustment the recommended approach for live audio?

Happy to provide sanitized event logs (close codes, timings, config shapes) for any of these. This model is otherwise a great fit for our use case - continuous streaming translation with speaker-like voice is exactly what live services need.