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
Theme

Create speech

audio.speech.create(**kwargs) -> BinaryResponseContent
POST
/audio/speech

Generates audio from the input text.

Returns the audio file content, or a stream of audio events.

The tts-1, tts-1-hd, gpt-4o-mini-tts, gpt-4o-mini-tts-2025-03-20, and gpt-4o-mini-tts-2025-12-15 models are deprecated and scheduled to shut down on January 6, 2027. These examples use the existing Speech API; for new integrations, migrate to gpt-realtime-2.1-mini through the Realtime API. See the deprecation schedule for migration details.

Parameters
input: str

The text to generate audio for. The maximum length is 4096 characters.

maxLength4096
model: Union[str, SpeechModel]

One of the available TTS models: tts-1, tts-1-hd, gpt-4o-mini-tts, or gpt-4o-mini-tts-2025-12-15.

Deprecated values:

voice: Voice

The voice to use when generating the audio. Supported built-in voices are alloy, ash, ballad, coral, echo, fable, onyx, nova, sage, shimmer, verse, marin, and cedar. You may also provide a custom voice object with an id, for example { "id": "voice_1234" }. Previews of the voices are available in the Text to speech guide. Custom voices must be created from audio samples. Voices created from text prompts are supported only in Live.

instructions: Optional[str]

Control the voice of your generated audio with additional instructions. Does not work with tts-1 or tts-1-hd.

maxLength4096
response_format: Optional[Literal["mp3", "opus", "aac", 3 more]]

The format to audio in. Supported formats are mp3, opus, aac, flac, wav, and pcm.

speed: Optional[float]

The speed of the generated audio. Select a value from 0.25 to 4.0. 1.0 is the default.

minimum0.25
maximum4
stream_format: Optional[Literal["sse", "audio"]]

The format to stream the audio in. Supported formats are sse and audio. sse is not supported for tts-1 or tts-1-hd.

Returns
BinaryResponseContent

Create speech

from pathlib import Path
import openai

speech_file_path = Path(__file__).parent / "speech.mp3"
with openai.audio.speech.with_streaming_response.create(
  model="gpt-4o-mini-tts",
  voice="alloy",
  input="The quick brown fox jumped over the lazy dog."
) as response:
  response.stream_to_file(speech_file_path)
Returns Examples