Context: verbatim STT via litellm.completion(gemini/...) with a system prompt asking for an exact transcript (fillers kept, no commentary) and ogg/opus audio inline. After Google aliased gemini-3.7-flash to gemini-3.8-flash (see the deprecations page), gemini-3.6-flash was the only other GA Flash left to try as a same-vendor fallback.
Measured on a 78-clip set (AMI meetings, Earnings-21 calls, TTS fixtures, real phone recordings), two runs of 3.6 plus a same-day 3.8 control:
- Inline timestamps: 3 of 78 outputs per run (6 different clips across the two runs), e.g. "As I mentioned, this is a wide variety 0:02 of potential tumors" or "Let 0:01 me tell you". 3.8: 0 of 78 in every run.
- Truncation: one ~60 s fixture came back as "Here is my take on versioning. I moved" (38 chars, finish reported as normal); the other run transcribed it in full.
- Filler recall 62-72% vs 3.8's 82-87%; vWER 6.9-7.7% vs 5.5-5.8%; term recall 88.5% vs 93.6%.
- Invented speech on silence probes: about the same as 3.8 (4-5 of 11).
Why it matters: a guard that only catches the model's own reasoning ("The user wants the audio transcribed...", "Audio:" headers) lets both failures through, so timestamps end up downstream as the speaker's words.
What we did: dropped the same-vendor middle fallback and went straight from 3.8-flash to Deepgram nova-2 (filler_words=true). If you must use 3.6, add a post-check that rejects /\b\d{1,2}:\d{2}\b/ tokens that aren't in the audio's likely content, and compare output length against audio duration to catch early stops.