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 voice

POST/audio/voices

Create a custom voice you can use for audio output (for example, in Text-to-Speech and the Realtime API). This requires an audio sample and a previously uploaded consent recording.

Send name, audio_sample, and the consent recording ID as multipart form data. The optional type defaults to audio_sample.

Returns the saved voice’s metadata. See the custom voices guide for requirements and best practices. Custom voices are limited to eligible customers.

Body ParametersForm DataExpand Collapse
body: AudioSample { audio_sample, consent, name, type }

Creates a voice from a consent recording and an audio sample. Requires multipart/form-data.

One of the following:
AudioSample object { audio_sample, consent, name, type }

Creates a voice from a consent recording and an audio sample. Requires multipart/form-data.

audio_sample: file

The sample audio recording file. Maximum size is 10 MiB.

Supported MIME types: audio/mpeg, audio/wav, audio/x-wav, audio/ogg, audio/aac, audio/flac, audio/webm, audio/mp4.

name: string

The name of the new voice.

minLength1
maxLength256
type: optional "audio_sample"

The voice creation method. Defaults to audio_sample when omitted.

ReturnsExpand Collapse
Voice object { id, created_at, name, 2 more }

A custom voice that can be used for audio output.

id: string

The voice identifier, which can be referenced in API endpoints.

created_at: number

The Unix timestamp (in seconds) for when the voice was created.

formatunixtime
name: string

The name of the voice.

object: "audio.voice"

The object type, which is always audio.voice.

type: "audio_sample"

How the voice was created.

Create voice

curl https://api.openai.com/v1/audio/voices \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "name=My new voice" \
  -F "consent=cons_1234" \
  -F "audio_sample=@audio_sample.wav;type=audio/x-wav"
{
  "id": "id",
  "created_at": 0,
  "name": "name",
  "object": "audio.voice",
  "type": "audio_sample"
}
Returns Examples
{
  "id": "id",
  "created_at": 0,
  "name": "name",
  "object": "audio.voice",
  "type": "audio_sample"
}