# whisper-1, tts-1 and legacy realtime shutdowns, Nov 2026–Feb 2027

URL: https://infro.io/blog/whisper-1-tts-1-and-legacy-realtime-shutdowns-nov-2026-feb-2027
Author: INFRO Editorial (https://infro.io/blog/editorial)
Publisher: INFRO
Published: 2026-10-28
Last modified: 2026-10-28
Last reviewed: 2026-10-28 (next review due 2026-11-27)
Topic: Agents and multimodal systems
Format: Guide

> Speech and voice ids retire in this order: Gemini preview TTS and Live on 17 Nov, Azure whisper and tts on 15 Dec, OpenAI tts-1 on 6 Jan, legacy realtime on 20 Jan, whisper-1 on 26 Feb. Test each replacement on your own audio for word error and latency before the date. [^infro-calendar][^gemini-deprecations][^azure-schedule]

Key takeaways:
- The first date is 17 November 2026 for Gemini's preview TTS and Live ids, and Google lists it as an earliest possible date, not a promise.
- Azure OpenAI retires whisper, tts and tts-hd on 15 December 2026, while OpenAI's own API retires tts-1 on 6 January and whisper-1 on 26 February 2027.
- Azure OpenAI's 2025-03-20 transcription and TTS versions already passed their 15 October 2026 retirement date, so a deployment on them returns 410 Gone.
- Judge a replacement on your own audio: word error rate with a fixed normalizer and a bootstrap interval, plus p50 and p95 latency at the point your product feels it.
- A speech fallback is a product decision: voices are not portable and transcripts differ, so choose the fallback voice and parser tolerance before an outage, not during one.

## The dates in one sequence

Speech and voice ids leave in five steps between mid-November and the end of February, and the same model id has a different date depending on whether you call OpenAI, Azure OpenAI or the Gemini API. The table is ordered by date. Dates for OpenAI are as listed in INFRO's deprecation calendar, which read OpenAI's deprecations page on 2026-10-13; dates for Azure and Gemini are from Microsoft's and Google's own pages, read on 2026-10-28.

| Date | Platform | What goes | Listed replacement |
| --- | --- | --- | --- |
| 15 Oct 2026 (passed) | Azure OpenAI | gpt-4o-transcribe 2025-03-20, gpt-4o-mini-transcribe 2025-03-20, gpt-4o-mini-tts 2025-03-20 (preview) | none in the schedule's replacement column |
| 17 Nov 2026 | Gemini API | gemini-3.1-flash-tts-preview, gemini-2.5-flash-preview-tts, gemini-2.5-pro-preview-tts | gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts |
| 17 Nov 2026 | Gemini API | gemini-3.1-flash-live-preview, gemini-2.5-flash-native-audio-preview-12-2025 | gemini-3.8-live |
| 13 Dec 2026 | Vertex AI | gemini-live-2.5-flash-native-audio | not listed |
| 15 Dec 2026 | Azure OpenAI | whisper 001, tts 001 (preview), tts-hd 001, gpt-realtime-mini 2025-12-15 | none listed |
| 6 Jan 2027 | OpenAI API | tts-1, tts-1-hd, gpt-4o-mini-tts (both snapshots) | gpt-realtime-2.1-mini |
| 20 Jan 2027 | OpenAI API | gpt-realtime, gpt-4o-realtime, gpt-realtime-mini, gpt-4o-mini-realtime | gpt-realtime-2.1 or -2.1-mini |
| 20 Jan 2027 | Azure OpenAI | gpt-realtime-2 (preview) | gpt-realtime-2.1 |
| 26 Feb 2027 | OpenAI API | whisper-1 and the gpt-4o transcription models | not confirmed |

Table: Speech, transcription and realtime retirements, October 2026 to February 2027. Sources: [1][2][3].

Three things in that table are easy to misread.

- **The Gemini dates are floors.** Google says the dates on its page are the earliest possible shutdown dates and that it will communicate the exact date with advance notice.[2] Plan for 17 November, and treat any later notice as extra time.
- **Azure's 15 October date has already passed.** Microsoft's schedule lists the 2025-03-20 versions of gpt-4o-transcribe, gpt-4o-mini-transcribe and gpt-4o-mini-tts as retiring on 2026-10-15, and inference on a retired model returns 410 Gone.[3][4] The 2025-12-15 versions of gpt-4o-mini-transcribe and gpt-4o-mini-tts run to 2027-06-15.[3]
- **Azure and OpenAI disagree.** Azure retires whisper, tts and tts-hd on 15 December 2026, before OpenAI's own 6 January and 26 February dates.[3][1] Azure retires gpt-realtime and gpt-realtime-mini 2025-10-06 in 2027 (2 March and 6 April), after OpenAI's 20 January date.[3][1] An app that runs against both will see one half fail first and the other half later.

The Azure schedule's replacement column is empty for whisper, tts and tts-hd.[3] Microsoft says it names an official replacement about 90 to 120 days before retirement, and that you should not wait for it before evaluating candidates.[4] For 15 December, that window is already open or about to open, so do not expect a name to appear in time to start testing.

## What a shutdown does to a request

The failure modes differ by platform, and your fallback has to match them.

On Azure OpenAI, a retired model returns 410 Gone. Standard, Data Zone Standard and Global Standard deployments may be upgraded automatically to the named replacement on a rolling, region-by-region schedule, and provisioned deployments are not auto-upgraded.[4] Preview models are different: there is no option to stay on a retiring preview, deployments are force-upgraded or terminated, and Microsoft promises at least 30 days' notice. GA models get at least 60 days' notice, sent to subscription owners with active deployments.[4] The consequence for speech is that an automatic upgrade can change the transcription model under you without a code change, so word error and punctuation can shift on a date you did not choose.

On OpenAI's API, INFRO's read of the deprecations page found no grace period and no automatic upgrade, and no documented error body for a retired id.[5] Do not write a handler that matches one error string. Treat any error on a request naming a retired id as a deployment defect and alert on it.

On the Gemini API, a shut-down endpoint is "no longer available".[2] Google also routes some retired Flash text ids to a newer model automatically; the same page lists no such arrangement for the TTS and Live previews, so assume those fail.

## Pick candidates for each id

Every replacement below is a candidate to test, not a decision. Where a vendor names a successor, start there; where it does not, use the models in the rate comparison.

- **whisper-1 and gpt-4o transcription (OpenAI, 26 Feb).** I could not confirm OpenAI's named replacement. Candidates from INFRO's October rate table are OpenAI's gpt-transcribe ($0.0045 per minute), gpt-4o-mini-transcribe (an estimated $0.003 per minute), and other vendors' pre-recorded models such as Deepgram Nova-3, AssemblyAI Universal-3.5 Pro and ElevenLabs Scribe v2. Whisper is listed at $0.006 per minute.[6] Gemini now lists gemini-3.5-transcribe and a live variant with no shutdown date announced.[2]
- **tts-1 and tts-1-hd (OpenAI, 6 Jan).** The calendar lists gpt-realtime-2.1-mini for tts-1, tts-1-hd and gpt-4o-mini-tts.[1] That is a realtime model, so check the request shape and voice list before you plan around it. Other candidates are Gemini's gemini-3.8-flash-tts, Deepgram Aura-2 and ElevenLabs Flash. OpenAI tts-1 is listed at $15 per million characters; Gemini's TTS is billed in tokens.[6]
- **Legacy realtime (OpenAI, 20 Jan).** gpt-realtime and gpt-realtime-mini are replaced by gpt-realtime-2.1 and gpt-realtime-2.1-mini.[7] The new models bill audio tokens at $32 in and $64 out per million for gpt-realtime-2.1, and $10 and $20 for the mini.[7] For Gemini-based agents, gemini-3.8-live is the listed replacement for the 17 November Live previews.[2]
- **Gemini preview TTS (17 Nov).** The listed targets are gemini-3.8-flash-tts and gemini-3.8-flash-lite-tts.[2] Budget them at the rate from 1 January 2027: Google's rates for these models double then, from $0.50 to $1.00 per million text tokens, with audio tokens at $18 and $12 per million respectively.[6]

## Test method: word error and latency

Run the same test for every candidate, on audio from your own product, and keep the harness so you can repeat it for the next retirement.

**1. Build the set from traffic.** Take two to four hours of real recordings, stratified by the buckets that matter to you: channel (phone line, browser microphone, studio), language, accent, noise, and domain vocabulary such as product names and numbers. Have a human produce the reference transcripts once, with one written convention for numerals, spelling and filler words. Hold out a slice that nobody tunes against.

**2. Normalize before scoring.** Word error rate (substitutions plus deletions plus insertions, divided by reference words) punishes formatting differences unless you remove them. Apply one normalizer to both reference and hypothesis: lowercase, strip punctuation, expand numerals the same way, and apply an explicit list of spelling variants. Score a second time on the raw, un-normalized text, because your downstream parser may depend on casing and punctuation.

```python
import random, re

def norm(s: str) -> list[str]:
    s = s.lower()
    s = re.sub(r"[^\w\s']", " ", s)
    return s.split()

def edits(ref: list[str], hyp: list[str]) -> int:
    prev = list(range(len(hyp) + 1))
    for i, r in enumerate(ref, 1):
        cur = [i]
        for j, h in enumerate(hyp, 1):
            cur.append(min(prev[j] + 1, cur[j - 1] + 1, prev[j - 1] + (r != h)))
        prev = cur
    return prev[-1]

def wer(pairs):  # pairs: list of (reference, hypothesis)
    e = sum(edits(norm(r), norm(h)) for r, h in pairs)
    n = sum(len(norm(r)) for r, _ in pairs)
    return e / n

def bootstrap_ci(pairs, iters=2000, seed=7):
    rnd = random.Random(seed)
    xs = sorted(wer([rnd.choice(pairs) for _ in pairs]) for _ in range(iters))
    return xs[int(0.025 * iters)], xs[int(0.975 * iters)]
```

**3. Compare with an interval, not a point.** Resample whole recordings with replacement, as the code does, and report the 95% interval for each model. If two intervals overlap, you have not found a difference.

> **Example: Illustrative: reading a result**
> Illustrative figures, not measurements. Suppose the incumbent scores 8.1% WER with an interval of 7.2 to 9.0, and a candidate scores 7.6% with 6.8 to 8.5. The intervals overlap, so do not claim an accuracy gain. Now suppose the candidate's phone-line bucket alone is 14% against 9%: that bucket is a blocker even though the overall number looks fine. Decide the accept rule before you run it, for example "no bucket more than 1.5 points worse than today".

**4. Measure latency where the user feels it.** For transcription, time from end of audio to final transcript. For TTS, time from request to first audio byte, plus total time for a typical script. For realtime, time from the end of the user's speech to the first audio frame back. Collect at least a few hundred samples per model at the concurrency you run in production, report p50 and p95, and discard none of the slow ones. Run candidates interleaved in time so a provider incident does not land on one model only. Include session behaviour: Gemini Live ends a session after 15 minutes of audio without context compression, and a connection lasts about ten minutes, so test resumption for long calls.[7]

**5. Check cost on your own units.** Token-billed TTS and realtime cost depends on audio length and conversation length, so per-character and per-minute tables mislead.[6][7] Compute cost per completed task from your own recordings and scripts.

**6. Listen.** Rate TTS candidates blind, with the same script and the same reviewers, covering names, numbers, and your longest sentence. No metric replaces it.

## Fallback routing for speech

Failover for text models is close to invisible. For speech it is not, and the earlier rate comparison already says why: TTS voice ids are vendor-specific, so a fallback to another vendor changes how your product sounds, and transcripts from a different model differ in punctuation, casing and segmentation.[6] Decide these before an incident:

| Case | Fallback that works | What changes |
| --- | --- | --- |
| Transcription, batch | A second STT model, chosen from the test | Casing, punctuation, segmentation; your parser must accept both |
| Transcription, long files | Same model on a second key or account; chunk on silence | Nothing, if timestamps are offset correctly |
| TTS, branded voice | Same vendor on another account | Nothing audible |
| TTS, notifications | A different vendor with a chosen fallback voice | The voice, deliberately |
| Realtime voice | Usually none mid-call; reconnect to the same model | The call restarts; keep state outside the session |

Two rules keep this honest. Never fail over silently on a branded voice. And do not fail over mid-stream: a request that has started returning audio cannot be retried elsewhere without the caller hearing it.

INFRO can carry the routing part for the endpoints it documents. It serves POST /v1/audio/speech and POST /v1/audio/transcriptions over your own provider connections, and its documentation says plainly that TTS fallbacks across vendors rarely work because voice ids are not portable.[6] On those endpoints, a named route with priority targets, health checks and failover retries a request that times out or returns a 5xx before the response starts, and routing rules can send a language, project or key to its own targets. Its model retirement records warn organizations still sending a retiring id and, from the shutdown date, refuse it before any provider call and name the replacement; the console shows each deprecated model's date, successor and what in your organization still uses it. I did not confirm that realtime sessions run through the same endpoints, so treat the realtime cut-over as an application change.

## A cut-over calendar

Work backwards from the dates, starting with the earliest.

1. **Now to 4 November.** Inventory callers from traffic: model id as sent, by key and service, over 30 days. Include Azure deployment names, which may hide the underlying model. Search code and config for `whisper`, `tts-1`, `realtime` and the Gemini preview ids.
2. **By 6 November.** Build the test set and run it on the Gemini TTS and Live candidates; the 17 November date is the nearest.
3. **By 13 November.** Cut Gemini traffic to gemini-3.8-flash-tts or gemini-3.8-live behind a name you control, weighted at 5 to 10 percent first, then to full.
4. **By 1 December.** For Azure, move whisper and tts-hd deployments ahead of 15 December rather than relying on an automatic upgrade, and decide what to do for provisioned deployments that are not upgraded.
5. **By 18 December.** Re-run the test on the TTS and realtime replacements for OpenAI's 6 and 20 January dates, and re-check OpenAI's page for any change to the listed targets.
6. **By 1 February.** Move whisper-1 and gpt-4o transcription callers, with a rollback path, ahead of 26 February.

After each cut-over, keep the old id blocked rather than merely unused, so a forgotten caller fails loudly in staging instead of silently in production, and watch per-request latency and cost for a week.

## Questions

### Does my Azure OpenAI deployment follow OpenAI's dates?

No. Azure retires on Microsoft's schedule, which differs in both directions: whisper 001 retires on 15 December 2026 on Azure, while the same family goes later on OpenAI's API. Read the schedule for the platform you actually call. [3]

### What happens to a request after a retirement date?

On Azure OpenAI, inference on a retired model returns 410 Gone, and Standard deployments may be upgraded automatically to the named replacement while provisioned ones are not. Google lists only earliest possible shutdown dates and says it will communicate the exact date. [4][2]

### Is the replacement OpenAI lists for tts-1 a drop-in?

Do not assume so. The calendar row lists gpt-realtime-2.1-mini for tts-1, tts-1-hd and the gpt-4o-mini-tts snapshots, which is a realtime model name. Check the request shape, voices and billing unit on OpenAI's page, and run the test below before cutting over. [1]

## Sources

1. AI model deprecation calendar: OpenAI, Anthropic, Google (read 2026-10-13, citing OpenAI's deprecations page) — INFRO. https://infro.io/blog/ai-model-deprecation-calendar (accessed 2026-10-28)
2. Gemini deprecations — Google AI for Developers. https://ai.google.dev/gemini-api/docs/deprecations (accessed 2026-10-28)
3. Model retirement schedule - Microsoft Foundry — Microsoft Learn. https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule (accessed 2026-10-28)
4. Microsoft Foundry Models lifecycle and support policy — Microsoft Learn. https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/model-retirements (accessed 2026-10-28)
5. OpenAI's October 23 shutdowns: find every call before it fails — INFRO. https://infro.io/blog/openai-model-shutdowns-october-2026 (accessed 2026-10-28)
6. Speech APIs compared 2026: text-to-speech and transcription rates — INFRO. https://infro.io/blog/speech-apis-compared-2026 (accessed 2026-10-28)
7. Voice agent APIs compared: GPT-Live, Grok Voice, Voxtral, Gemini — INFRO. https://infro.io/blog/voice-agent-apis-compared-2026 (accessed 2026-10-28)
