Transcription converts speech into text. Choose a workflow based on whether your audio is already recorded or is arriving live. Each workflow has one recommended starting model.
Choose a transcription workflow
| Workflow | Use when | Recommended model |
|---|---|---|
| File transcription | You have a completed recording or a bounded audio request. Upload the file and receive a final transcript, or stream text while the file is processed. | gpt-transcribe |
Realtime transcription | You have a microphone, call, or other live audio stream and need text as speech arrives. | gpt-live-transcribe |
Streaming output and live audio are separate decisions. You can stream the transcription of a completed file without opening a Realtime session. Use Realtime only when your audio is arriving live or you need a persistent connection.
Choose a specialized capability
Start with the recommended model for your workflow:
| If you need | Use |
|---|---|
| Detected input languages | gpt-transcribe with file transcription. |
| Committed-turn transcription over WebSocket | gpt-transcribe with realtime transcription. |
Existing integrations can also use gpt-realtime-whisper where supported. It isn’t the recommended starting model for a new transcription integration.
Existing integrations with deprecated models
whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe,
gpt-4o-transcribe-diarize, and /v1/audio/translations are deprecated and
will shut down on February 26, 2027. See the deprecation
notice. For new
integrations, use the recommended file or realtime transcription workflow
above.
Existing integrations can use the workflows in these specialized examples until the shutdown date. Check the output formats and metadata your application needs before migrating; changing only the model ID doesn’t preserve every capability.
| If you need | Use |
|---|---|
| Speaker-labeled transcripts | gpt-4o-transcribe-diarize with file transcription. |
Word timestamps or srt and vtt subtitles |
whisper-1 with file transcription. |
| Translation of a completed recording into English | whisper-1 with the audio translations endpoint. |
For translation, migrate to Realtime translation. It uses a translation session and a different endpoint instead of the file-upload workflow used by /v1/audio/translations.
See transcription pricing and test the recommended path with representative audio before moving production traffic.
Improve transcription quality
gpt-transcribe and gpt-live-transcribe accept three kinds of context:
prompt: Free-form context about the recording, such as its topic or setting.keywords: Literal terms that may appear in the audio, such as product names, medications, or acronyms.languages: A list of expected input languages when the recording may contain more than one language.
Use these inputs only for context relevant to the audio; don’t restate the transcription task. Keywords are hints, not required output. The transcript should include a keyword only when the audio contains it.
These models use languages instead of the singular language field. Existing transcription models that accept one language hint continue to use language.
When gpt-transcribe performs input transcription in a Realtime API session or runs in a dedicated transcription session, it automatically uses earlier transcribed turns as context.
Test with representative audio
Test transcription under the audio conditions your application will encounter. Include:
- Target languages, accents, and code-switching patterns.
- Background noise, microphone quality, and telephony audio.
- Names, numbers, dates, alphanumeric strings, and domain terminology.
- Short utterances, long recordings, and interrupted speech.
Track errors that matter to the application instead of relying only on word error rate. For example, test medication names in a healthcare workflow or order numbers in a support workflow.