Description of the bug:
When generating long-form speech (generations longer than 2 minutes) using the gemini-3.1-flash-tts-preview model, the generated audio suffers from severe volume fading and prosody drift.
Specifically, if the model is instructed to speak in soft or relaxed tones (either via inline style tags like [softly], [relaxation], or through system instructions), the autoregressive nature of the model causes a style/volume drift over time. By minute 2, the volume drops significantly, and by minute 4, the voice degenerates into a barely audible whisper or total silence.
To work around this, we had to add a flag to completely strip all inline style tags, which forces the model to generate in a flat, neutral tone. However, this defeats the purpose of Gemini's rich expressive audio capabilities.
Steps to Reproduce
- Initiate a TTS request using the Python SDK with
response_modalities=["AUDIO"].
- Model:
gemini-3.1-flash-tts-preview
- Voice:
Kore (or any other built-in voice).
- Input Text: A long-form story (500+ words, approx. 4–5 minutes of speech) containing style directives in the system prompt or inline tags (e.g.,
[softly], [relaxation], [serenity]).
- Observe the volume envelope of the output audio over time.
Actual vs expected behavior:
Expected Behavior
The voice should maintain a consistent, audible volume level throughout the entire length of the narration, adjusting the expressive style without dropping the master gain to zero.
Actual Behavior
- 0:00 - 1:30: High quality, expressive, correct volume.
- 1:30 - 3:00: Gradual but steady drop in volume.
- 3:00 - End: The voice degenerates into a quiet whisper, mumbling, or complete silence.
Any other information you'd like to share?
- SDK:
google-genai (Python)
- Model:
gemini-3.1-flash-tts-preview
- Output Format: AUDIO
Description of the bug:
When generating long-form speech (generations longer than 2 minutes) using the
gemini-3.1-flash-tts-previewmodel, the generated audio suffers from severe volume fading and prosody drift.Specifically, if the model is instructed to speak in soft or relaxed tones (either via inline style tags like
[softly],[relaxation], or through system instructions), the autoregressive nature of the model causes a style/volume drift over time. By minute 2, the volume drops significantly, and by minute 4, the voice degenerates into a barely audible whisper or total silence.To work around this, we had to add a flag to completely strip all inline style tags, which forces the model to generate in a flat, neutral tone. However, this defeats the purpose of Gemini's rich expressive audio capabilities.
Steps to Reproduce
response_modalities=["AUDIO"].gemini-3.1-flash-tts-previewKore(or any other built-in voice).[softly],[relaxation],[serenity]).Actual vs expected behavior:
Expected Behavior
The voice should maintain a consistent, audible volume level throughout the entire length of the narration, adjusting the expressive style without dropping the master gain to zero.
Actual Behavior
Any other information you'd like to share?
google-genai(Python)gemini-3.1-flash-tts-preview