Skip to content
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Primary navigation

Audio

ModelsExpand Collapse
AudioModel = :"whisper-1" | :"gpt-transcribe" | :"gpt-4o-transcribe" | 3 more
AudioResponseFormat = :json | :text | :srt | 3 more

The format of the output, in one of these options: json, text, srt, verbose_json, vtt, or diarized_json. For gpt-4o-transcribe and gpt-4o-mini-transcribe, the only supported format is json. For gpt-4o-transcribe-diarize, the supported formats are json, text, and diarized_json, with diarized_json required to receive speaker annotations.

AudioSpeech

Turn audio into text or text into audio.

Create speech
audio.speech.create(**kwargs) -> StringIO
POST/audio/speech
ModelsExpand Collapse
SpeechModel = :"tts-1" | :"tts-1-hd" | :"gpt-4o-mini-tts" | :"gpt-4o-mini-tts-2025-12-15"

AudioTranscriptions

Turn audio into text or text into audio.

Create transcription
audio.transcriptions.create(**kwargs) -> TranscriptionCreateResponse
POST/audio/transcriptions
ModelsExpand Collapse
class Transcription { text, languages, logprobs, usage }

Represents a transcription response returned by model, based on the provided input.

TranscriptionCreateResponse = Transcription { text, languages, logprobs, usage } | TranscriptionDiarized { duration, segments, task, 2 more } | TranscriptionVerbose { duration, language, text, 3 more }

Represents a transcription response returned by model, based on the provided input.

class TranscriptionDiarized { duration, segments, task, 2 more }

Represents a diarized transcription response returned by the model, including the combined transcript and speaker-segment annotations.

class TranscriptionDiarizedSegment { id, end_, speaker, 3 more }

A segment of diarized transcript text with speaker metadata.

TranscriptionInclude = :logprobs
class TranscriptionLanguage { code }

A language detected in transcribed audio.

class TranscriptionSegment { id, avg_logprob, compression_ratio, 7 more }
TranscriptionStreamEvent = TranscriptionTextSegmentEvent { id, end_, speaker, 3 more } | TranscriptionTextDeltaEvent { delta, type, logprobs, segment_id } | TranscriptionTextDoneEvent { text, type, languages, 2 more }

Emitted when a diarized transcription returns a completed segment with speaker information. Only emitted when you create a transcription with stream set to true and response_format set to diarized_json.

class TranscriptionTextDeltaEvent { delta, type, logprobs, segment_id }

Emitted when there is an additional text delta. This is also the first event emitted when the transcription starts. Only emitted when you create a transcription with the Stream parameter set to true.

class TranscriptionTextDoneEvent { text, type, languages, 2 more }

Emitted when the transcription is complete. Contains the complete transcription text. Only emitted when you create a transcription with the Stream parameter set to true.

class TranscriptionTextSegmentEvent { id, end_, speaker, 3 more }

Emitted when a diarized transcription returns a completed segment with speaker information. Only emitted when you create a transcription with stream set to true and response_format set to diarized_json.

class TranscriptionVerbose { duration, language, text, 3 more }

Represents a verbose json transcription response returned by model, based on the provided input.

class TranscriptionWord { end_, start, word }

AudioTranslations

Turn audio into text or text into audio.

Create translation
audio.translations.create(**kwargs) -> TranslationCreateResponse
POST/audio/translations
ModelsExpand Collapse
class Translation { text }
TranslationCreateResponse = Translation { text } | TranslationVerbose { duration, language, text, segments }
class TranslationVerbose { duration, language, text, segments }

AudioVoice Consents

Turn audio into text or text into audio.

AudioVoices

Turn audio into text or text into audio.