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

Create speech

client.Audio.Speech.New(ctx, body) (*Response, error)
POST/audio/speech

Generates audio from the input text.

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

ParametersExpand Collapse
body AudioSpeechNewParams
Input param.Field[string]

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

maxLength4096
Model param.Field[SpeechModel]

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

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 param.Field[string]Optional

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

maxLength4096
ResponseFormat param.Field[AudioSpeechNewParamsResponseFormat]Optional

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

Speed param.Field[float64]Optional

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

minimum0.25
maximum4
StreamFormat param.Field[AudioSpeechNewParamsStreamFormat]Optional

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

ReturnsExpand Collapse
type AudioSpeechNewResponse interface{…}

Create speech

package main

import (
  "context"
  "fmt"

  "github.com/openai/openai-go"
  "github.com/openai/openai-go/option"
)

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  speech, err := client.Audio.Speech.New(context.TODO(), openai.AudioSpeechNewParams{
    Input: "input",
    Model: openai.SpeechModelTTS1,
    Voice: openai.AudioSpeechNewParamsVoiceUnion{
      OfAudioSpeechNewsVoiceString2: openai.String("ash"),
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", speech)
}
Returns Examples