Repository Public
1# Transcription23> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.45Transcription 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.67## Choose a transcription workflow89<table>10 <thead>11 <tr>12 <th>Workflow</th>13 <th>Use when</th>14 <th>Recommended model</th>15 </tr>16 </thead>17 <tbody>18 <tr>19 <td>20 [File transcription](https://developers.openai.com/api/docs/guides/speech-to-text)21 </td>22 <td>23 You have a completed recording or a bounded audio request. Upload the24 file and receive a final transcript, or stream text while the file is25 processed.26 </td>27 <td>28 [`gpt-transcribe`](https://developers.openai.com/api/docs/models/gpt-transcribe)29 </td>30 </tr>31 <tr>32 <td>33 [Realtime transcription](https://developers.openai.com/api/docs/guides/realtime-transcription)34 </td>35 <td>36 You have a microphone, call, or other live audio stream and need text as37 speech arrives.38 </td>39 <td>40 [`gpt-live-transcribe`](https://developers.openai.com/api/docs/models/gpt-live-transcribe)41 </td>42 </tr>43 </tbody>44</table>4546Streaming 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.4748## Choose a specialized capability4950Start with the recommended model for your workflow. Switch models only when your application requires a capability that the default doesn't provide.5152| If you need | Use |53| ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |54| Speaker-labeled transcripts | `gpt-4o-transcribe-diarize` with [file transcription](https://developers.openai.com/api/docs/guides/speech-to-text#speaker-diarization). |55| Word timestamps or `srt` and `vtt` subtitles | `whisper-1` with [file transcription](https://developers.openai.com/api/docs/guides/speech-to-text#timestamps). |56| Translation of a completed recording into English | `whisper-1` with the [audio translations endpoint](https://developers.openai.com/api/docs/guides/speech-to-text#translations). |57| Detected input languages | `gpt-transcribe` with [file transcription](https://developers.openai.com/api/docs/guides/speech-to-text). |58| Committed-turn transcription over WebSocket | `gpt-transcribe` with [realtime transcription](https://developers.openai.com/api/docs/guides/realtime-transcription#transcribe-a-committed-turn). |5960Existing integrations can continue to use [`gpt-4o-transcribe`](https://developers.openai.com/api/docs/models/gpt-4o-transcribe), [`gpt-4o-mini-transcribe`](https://developers.openai.com/api/docs/models/gpt-4o-mini-transcribe), or [`gpt-realtime-whisper`](https://developers.openai.com/api/docs/models/gpt-realtime-whisper) where supported. These aren't the recommended starting models for a new transcription integration.6162See [transcription pricing](https://developers.openai.com/api/docs/pricing#transcription-and-speech) and test the recommended path with representative audio before moving production traffic.6364## Improve transcription quality6566`gpt-transcribe` and `gpt-live-transcribe` accept three kinds of context:6768- `prompt`: Free-form context about the recording, such as its topic or setting.69- `keywords`: Literal terms that may appear in the audio, such as product names, medications, or acronyms.70- `languages`: A list of expected input languages when the recording may contain more than one language.7172Use 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.7374These models use `languages` instead of the singular `language` field. Existing transcription models that accept one language hint continue to use `language`.7576When `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.7778## Test with representative audio7980Test transcription under the audio conditions your application will encounter. Include:8182- Target languages, accents, and code-switching patterns.83- Background noise, microphone quality, and telephony audio.84- Names, numbers, dates, alphanumeric strings, and domain terminology.85- Short utterances, long recordings, and interrupted speech.8687Track 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.8889## Next steps9091- [File transcription](https://developers.openai.com/api/docs/guides/speech-to-text).92- [Realtime transcription](https://developers.openai.com/api/docs/guides/realtime-transcription).