Skip to content
Primary navigation

Create speech

client.audio.speech.create(SpeechCreateParams { input, model, voice, 4 more } body, RequestOptionsoptions?): Response
POST/audio/speech

Generates audio from the input text.

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

ParametersExpand Collapse
body: SpeechCreateParams { input, model, voice, 4 more }
input: string

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

maxLength4096
model: (string & {}) | SpeechModel

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

Accepts one of the following:
(string & {})
SpeechModel = "tts-1" | "tts-1-hd" | "gpt-4o-mini-tts" | "gpt-4o-mini-tts-2025-12-15"
Accepts one of the following:
"tts-1"
"tts-1-hd"
"gpt-4o-mini-tts"
"gpt-4o-mini-tts-2025-12-15"
voice: (string & {}) | "alloy" | "ash" | "ballad" | 7 more

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. Previews of the voices are available in the Text to speech guide.

Accepts one of the following:
(string & {})
"alloy" | "ash" | "ballad" | 7 more
"alloy"
"ash"
"ballad"
"coral"
"echo"
"sage"
"shimmer"
"verse"
"marin"
"cedar"
instructions?: string

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

maxLength4096
response_format?: "mp3" | "opus" | "aac" | 3 more

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

Accepts one of the following:
"mp3"
"opus"
"aac"
"flac"
"wav"
"pcm"
speed?: number

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?: "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.

Accepts one of the following:
"sse"
"audio"
ReturnsExpand Collapse
unnamed_schema_1 = Response

Create speech

import fs from "fs";
import path from "path";
import OpenAI from "openai";

const openai = new OpenAI();

const speechFile = path.resolve("./speech.mp3");

async function main() {
  const mp3 = await openai.audio.speech.create({
    model: "gpt-4o-mini-tts",
    voice: "alloy",
    input: "Today is a wonderful day to build something people love!",
  });
  console.log(speechFile);
  const buffer = Buffer.from(await mp3.arrayBuffer());
  await fs.promises.writeFile(speechFile, buffer);
}
main();
Returns Examples