Skip to content
FIRERUN.

The BaaS & deploy-platform newsroom for builders

Subscribe

Firebase

Gemini Speech Preview Dies Nov. 17, and Its Successor Returns WAV

Swap the model name, move voice styles out of prompts and stop adding WAV headers before Nov. 17, when Firebase AI Logic's TTS preview shuts down.

Abstract flat-vector editorial illustration for "Gemini Speech Preview Dies Nov. 17, and Its Successor Returns WAV"

Firebase AI Logic apps that generate speech with gemini-3.1-flash-tts-preview have until Nov. 17 to move to a new model, and the move changes how prompts are written and what audio comes back. Firebase announced the shutdown in its Nov. 11 release notes (Firebase release notes, Nov. 11, 2026), alongside support for the stable gemini-3.8-flash-tts and gemini-3.8-flash-lite-tts models.

Key Takeaways

  • The preview text-to-speech model shuts down Nov. 17. Firebase said apps using it should update the model name, prompt format and audio handling before that date.
  • Unary requests now return a complete WAV file instead of headerless raw PCM. Streaming still returns raw PCM.
  • Voice styles move out of the prompt text, and systemInstruction, temperature and other sampling settings now fail with a 400 error.

What Changes

Firebase added text-to-speech to AI Logic on July 30, with gemini-3.1-flash-tts-preview as the model its client SDKs could call directly. The Nov. 11 notes replace it with the two 3.8 models, which Firebase said support more than 100 languages, 30 core prebuilt voices and multi-speaker dialogue.

The migration guide in Firebase’s speech-generation docs lists the changes:

  • Model name: replace the preview name with gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts.
  • Prompt format: delivery style goes into SpeechMetadata.style on each TextPart. Multi-speaker scripts become one TextPart per turn, each with a speaker. Square-bracket tags such as [sigh] become angle-bracket tags such as <sigh>. Firebase said legacy prefixes like “Say cheerfully:” and [Director's Notes] blocks should be removed because the model could read them aloud.
  • Audio: unary generateContent responses switch from raw PCM to audio/wav with a 44-byte RIFF header. Sample rate stays at 24 kHz, mono, 16-bit. Streaming responses stay headerless.
  • Config: systemInstruction, temperature, topP, topK, candidateCount, presencePenalty and frequencyPenalty are rejected with 400 INVALID_ARGUMENT.

Google’s Gemini API deprecations page lists the same Nov. 17 date for two older preview models, gemini-2.5-flash-preview-tts and gemini-2.5-pro-preview-tts, with the same 3.8 replacements. It also retires two Live API previews, gemini-3.1-flash-live-preview and gemini-2.5-flash-native-audio-preview-12-2025, in favor of gemini-3.8-live. Google said the listed dates are the earliest possible shutdowns and that a shut-down endpoint “is no longer available.”

The Take

This one fails in quieter ways than a dead endpoint. An app that wrapped raw PCM in its own WAV header will now produce a file with two headers. Some players may reject it, and code that feeds samples to a low-level audio buffer will play the 44 header bytes as a click. Firebase’s guide says to drop the hand-built header for unary calls and skip the first 44 bytes when writing raw samples.

The prompt change is the one most likely to reach listeners, because old style cues left in the text don’t throw errors. The model speaks them. A narration app could start reading “Say cheerfully” out loud, and a test that only checks for a 200 would pass.

Four days is short for a mobile release. Apps that pick the model in client code should ship the new name now. Teams that need more room can serve the model name from Remote Config, which Firebase already recommends for short-lived models.

Stay in the loop

Get new articles in your inbox

We'll only email you when a new article drops. Unsubscribe anytime.