On this page
OpenAI’s Custom voices docs open with a fork: describe the voice in text, or clone from a recording. The two paths do not share the same API surface. A common mistake is to save a prompt-generated voice id, then try it on Text to Speech or Realtime and assume any failure is auth or billing. Often the voice type simply is not supported on that endpoint. The notes below stay on the official Custom voices guide. They are not a “shipped today” launch post—the capability already appeared on the developer Changelog around mid-October 2026. For reference only; voice quality has not been measured on this site. Feedback with production results can go through the site-owner contact link in the footer.
Two creation paths
| Path | How it is created | Where the saved voice works |
|---|---|---|
Prompt-to-voice (type: prompt) | Text description of vocal qualities. No reference or consent recording. | GPT-Live only. Not supported by Text to Speech, Realtime, or Chat Completions. |
| Recording clone | Consent recording (exact phrase for the language) + sample reference from the same person. | GPT-Live, Text to Speech API, Realtime API, or Chat Completions with audio output (per the docs intro). |
Prompt-to-voice is generally available to API customers. Recording-created voices are limited to eligible customers—contact OpenAI sales, then use the Voices tab under Audio once enabled.
Prompt-to-voice: free to create, GPT-Live to use
Creating and saving a prompt-generated voice is free. Listening in the Playground or generating speech with that voice in GPT-Live is billed at regular GPT-Live session rates.
Send JSON to /v1/audio/voices with "type": "prompt", a name, a prompt that describes the voice, and "model": "auto". Optional script_hint (up to 2,000 characters) can steer the sample script; blank or too-short scripts are rejected. A successful response returns metadata—including the voice id—but no audio preview. Hearing it requires running a GPT-Live session.
Limits and prompt hygiene from the docs:
- Up to 100 prompt-generated voices per organization (including voices an app creates for end customers).
- Describe qualities—accent, perceived age, pitch, timbre, texture, loudness, speech rate, distinctiveness—in plain language.
- Do not ask the model to imitate a named person, public figure, or fictional character.
- Adult voices only. Children’s voices are not allowed.
In GPT-Live, set session.audio.output.voice.id to the returned id. For voice performance, include the original description in session.instructions next to the app’s conversation rules. Choose the voice at session start; start a new session to try another saved voice.
Recording clone: consent, sample, wider APIs
Recording clone needs two uploads from the same speaker:
- Consent recording — the actor reads one of the official consent phrases for the chosen language (English example: “I am the owner of this voice and I consent to OpenAI using this voice to create a synthetic voice model.”). Any divergence from the script fails.
- Sample recording — the reference the model should match. Same person as the consent take.
Upload consent via /v1/audio/voice_consents, then create the voice via /v1/audio/voices with the sample and the consent id. Requirements called out in the guide:
- At most 20 recording voices per organization.
- Each sample 60 seconds or less.
- Formats:
mpeg,wav,ogg,aac,flac,webm, ormp4. - Additional GPT-Live upload notes in the same guide: at least five seconds of real speech, enough transcribed tokens, uploads capped (e.g. 10 MiB on that path)—re-check the live docs before shipping.
When enabled, a recording voice can be used with GPT-Live, the Text to Speech API, the Realtime API, or Chat Completions with audio output, per the Custom voices intro. That wider surface is the main product difference from prompt-to-voice—not “better quality” as a blanket claim.
Pitfall: voice id on the wrong API
Getting a voice_… id does not mean every speech endpoint will accept it.
- A prompt voice on Text to Speech, Realtime, or audio Chat Completions is unsupported for that voice type.
- A recording voice still needs project access, a valid consent in the same project, and an eligible org. Deleted or revoked voices, consents from another project, or missing custom-voice access can surface as errors (the GPT-Live section notes some of these as
404-shaped failures).
Match the creation path to the runtime API before debugging keys or quotas.
Responsible use
The Custom voices guide’s responsible-use rules apply to both paths:
- Do not impersonate others or violate OpenAI Usage Policies.
- Use adult voices only.
- Be transparent: tell listeners the speech is AI-generated, and preserve provenance metadata or watermarks when present.
- Voices are not guaranteed unique; others may generate similar output.
- Recording voices also point at the Text-to-Speech Supplemental Agreement for extra terms.
This page does not walk through how to impersonate a real person. Describe qualities, or use a consenting speaker’s own sample under the official flow.
What this is not
- Not the ChatGPT App. Settings and limits here are for the developer Custom voices product on the OpenAI API.
- Not a claim that prompt voices work on every speech API. Prompt = GPT-Live only.
- Not a quality bake-off. Prompt vs recording has not been A/B’d on this site, and Chinese or Japanese output quality has not been measured here—treat locale results as untested on this site.
- Not today’s exclusive launch story. This page is an evergreen “which path / which API” map.
