OpenAI Prompt-to-Voice: Build Custom Voices for GPT-Live
Create, refine, reuse, and cost prompt-generated voices for live AI applications
OpenAI released prompt-to-voice for all API customers on October 16, 2026. Developers can now create a saved custom voice from a text description, without uploading a reference recording or a consent recording, and use that voice in a GPT-Live session. The same release added nine natural voices for German, French, Hindi, Japanese, and Korean.
This guide shows the complete workflow: create a prompt-generated voice, start a GPT-Live session with its ID, refine the result without confusing voice design with conversation behavior, estimate session cost, and plan the production safeguards that the API does not provide automatically.
Verification note: Product behavior, limits, compatibility, and prices in this article were checked against OpenAI's official documentation on October 17, 2026. Recommendations and test plans are Rubic8 analysis, not OpenAI requirements or independent performance benchmarks.
What OpenAI launched on October 16
The official OpenAI API changelog lists two related GPT-Live updates:
- Prompt-to-voice: create a custom voice from a plain-language description through
POST /v1/audio/voicesor the voice Playground, then reuse the saved voice in GPT-Live. - Nine natural voices: Nuri, Juni, and Flitz for German; Brise and Sillage for French; Nira for Hindi; Harema and Shida for Japanese; and Noeul for Korean.
Creating a prompt-generated voice is free. Speech generated with it is charged at the normal GPT-Live session rate. OpenAI currently lists gpt-live-1 at $0.05 per minute, billed per second. Backend models and tools are charged separately.
Prompt-generated voices have an important boundary: they work with GPT-Live, but not with the Text to Speech API, the Realtime API, or Chat Completions audio output. That differs from approved recording-based custom voices, which can be used across more audio surfaces.
Prompt-generated voice versus recorded custom voice
Both workflows return a saved voice ID, but they solve different problems.
| Question | Prompt-generated voice | Recording-based custom voice |
|---|---|---|
| Input | Text description; optional script hint | Consent recording plus reference sample |
| Consent recording | Not required | Required |
| Supported output surfaces | GPT-Live only | GPT-Live, Text to Speech, Realtime, and Chat Completions audio |
| Best fit | Designing a new synthetic voice from qualities | Using an approved speaker's vocal identity |
If a product needs a distinctive assistant voice but does not need to reproduce a real person, prompt-to-voice removes the recording and consent workflow. If the requirement is to use a specific person's approved voice, the recording-based route remains the relevant option and carries additional access, consent, and project-scoping requirements.
Create a voice with the API
Send JSON to POST /v1/audio/voices with type set to prompt. Keep the API key on a trusted server and never embed it in browser or mobile client code.
curl --fail-with-body https://api.openai.com/v1/audio/voices \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "prompt",
"name": "Calm support assistant",
"prompt": "A warm adult voice with a mid-range pitch, smooth timbre, clear American English pronunciation, and a steady, reassuring pace.",
"script_hint": "Thanks for calling. I can help check your order and explain the next step.",
"model": "auto"
}' \
-o voice.json
The response contains metadata, not a preview audio file. Save the returned id and the original description:
{
"object": "audio.voice",
"id": "voice_123",
"name": "Calm support assistant",
"created_at": 0,
"type": "prompt",
"prompt": "A warm adult voice with a mid-range pitch..."
}
The API reference currently allows a voice name of up to 256 characters, a description of up to 2,000 characters, and an optional script_hint of up to 2,000 characters. The model may be auto or the documented dated voice-creation model. Using auto is the safer default unless a reproducibility policy requires a pinned version.
For readable test fixtures, format the response with Rubic8's JSON Formatter and check edited request bodies with the JSON Validator. Remove API keys, customer data, internal URLs, and proprietary prompts before pasting any payload into an online tool.
What to put in the voice description
Describe audible qualities rather than a person's identity. OpenAI's guide suggests qualities such as accent, perceived adult age, presentation, pitch, timbre, texture, vocal effort, speech rate, and distinctiveness. A useful prompt is specific enough to test but short enough to change one variable at a time.
A calm adult voice for account-support calls.
Use clear Canadian English, a mid-range pitch, a smooth and lightly textured timbre,
moderate vocal effort, and an unhurried conversational pace.
Do not ask the system to imitate a named person, public figure, or fictional character. OpenAI also prohibits children's voices and tells developers to disclose that the speech is AI-generated. Prompt-generated voices are not guaranteed to be unique, so do not build a brand claim around acoustic exclusivity.
Use script_hint deliberately
script_hint gives the creation process representative words to speak. It is not the assistant's conversation prompt. Choose a short passage that contains the names, numbers, abbreviations, and sentence rhythms your product will actually use. For a travel assistant, that might include airport codes and times; for support, it might include an order ID and an apology.
If it is omitted, the service creates a script from the voice description. A blank or too-short custom script is rejected. The exact minimum beyond the documented validation behavior is not stated, so do not invent one; use a few complete representative sentences and handle a validation error explicitly.
Start a GPT-Live session with the saved voice
At session startup, set audio.output.voice.id to the saved ID. OpenAI also recommends including the original voice description in session.instructions so the model retains the intended performance.
{
"model": "gpt-live-1",
"instructions": "You are a concise support assistant. A warm adult voice with a mid-range pitch, smooth timbre, clear American English pronunciation, and a steady, reassuring pace.",
"audio": {
"output": {
"voice": { "id": "voice_123" }
}
}
}
For WebRTC, put this configuration in the session JSON sent to the session-creation endpoint. For WebSockets, send it in the first session.start event. The voice must be selected at startup; create a new session to switch to another voice.
Separate voice identity from conversation behavior
A common implementation mistake is to put every rule into the voice description. Treat the two controls separately:
- Voice description: how the voice sounds—accent, pitch, timbre, pace, and vocal effort.
- Session instructions: how the assistant behaves—response length, interruption handling, backchannels, escalation, delegation, and confirmation rules.
The distinction makes tests easier to interpret. If a new build sounds too fast, change the voice or delivery instruction. If it talks too long or announces a result before the backend finishes, change the conversation policy. Do not regenerate a voice to fix a workflow problem.
Limits and data controls to check before production
The official custom voices guide documents several operational constraints:
- An organization can store up to 100 prompt-generated voices. The same limit applies if an application creates voices for its customers.
- Every successful creation request saves a new voice. Repeated experimentation can consume the limit unless the application tracks and reuses IDs.
- Voice creation through
/v1/audio/voicesis not compatible with Zero Data Retention. - GPT-Live speech generation can be eligible for Zero Data Retention when it is enabled for the organization or project, but stored recordings, downloads, and session forking are unavailable in that configuration.
- A deleted or revoked voice, a voice from another project, or missing access can surface as a
404.
Build a registry with the voice ID, name, source description, creation time, project, owner, intended locale, review status, and last validation date. Do not silently create a new voice whenever a session cannot find an old one; distinguish a missing ID from an authorization or project-scoping error.
How GPT-Live pricing works
OpenAI's current pricing page lists GPT-Live 1 sessions at $0.05 per minute, measured per second. Active time includes user speech, assistant speech, silence, and time spent waiting for backend work. Muting the microphone does not close the session.
The basic session estimate is:
voice session cost = active seconds / 60 × $0.05
A 7-minute 30-second session is 450 seconds:
450 / 60 × $0.05 = $0.375
That is only the voice-session component. Add normal charges for any delegated Responses model, search, code execution, or third-party tool. Creating the prompt-generated voice itself is free, but listening to it in the Playground starts a billed GPT-Live session.
Rubic8 recommendation: log the duration reported by the API, backend request IDs, and tool usage as separate fields. Closing idle sessions promptly is a cost control; measuring only the seconds containing audible speech will understate billed session time.
A practical refinement and evaluation loop
OpenAI does not publish a benchmark that can tell you whether a generated voice is right for your callers. Use a small, repeatable listening study instead of subjective one-off reactions.
- Define the job. Write the target locale, channel, background-noise conditions, vocabulary, and emotional range.
- Create a baseline. Start with five or six audible qualities and one representative script.
- Change one quality. Adjust pace, pitch, texture, or accent strength—not all at once.
- Use the same passages. Test names, numbers, abbreviations, questions, interruptions, and a frustrated-user turn.
- Score observable criteria. Rate pronunciation, intelligibility, pace, consistency, interruption recovery, and fit for the task.
- Test live behavior. A clean preview does not prove that the full-duplex session handles interruptions or backend delays well.
- Record the decision. Keep the selected ID, prompt, test set, reviewers, date, and reasons for rejection.
This is a proposed evaluation method, not an OpenAI requirement. It does not claim statistically significant preference or quality. For higher-stakes domains, add native-language reviewers and accessibility testing, and evaluate with production-like microphones and networks.
Production checklist
- Keep API keys and session creation on a trusted server.
- Use an adult voice description and avoid imitation requests.
- Disclose clearly that users are hearing AI-generated speech.
- Preserve provenance metadata, watermarks, or other synthetic-origin indicators.
- Store and reuse approved voice IDs instead of generating duplicates.
- Keep the original description with the ID and include it in session instructions.
- Choose the voice before session startup and create a new session to change it.
- Separate voice-quality tests from conversation-policy tests.
- Close sessions when the conversation ends and monitor API-reported duration.
- Add backend model and tool charges to the total cost estimate.
- Test a built-in voice as a fallback if a custom voice becomes unavailable.
- Review data-retention requirements before enabling voice creation in a Zero Data Retention project.
Frequently asked questions
Is prompt-to-voice the same as voice cloning?
No. Prompt-to-voice creates a synthetic voice from described qualities and does not require a reference speaker. OpenAI's separate recording-based workflow uses an approved speaker's consent and sample.
Can I use a prompt-generated voice with the Text to Speech API?
No. As of October 17, 2026, prompt-generated voices are supported only in GPT-Live. Recording-based custom voices have broader API compatibility.
How many prompt-generated voices can an organization create?
OpenAI documents a limit of 100 saved prompt-generated voices per organization. Because each successful request creates a saved voice, track experiments and reuse the approved ID.
Does creating a voice cost money?
Creating a prompt-generated voice is free. Previewing or using it produces speech through a GPT-Live session, which is billed at the current session rate.
Can I change the voice during a live session?
No. Choose the voice at startup. Start a new session to use another voice.
Build the voice as a versioned product asset
Prompt-to-voice makes initial creation unusually simple, but production quality still depends on disciplined versioning, listening tests, disclosure, and session design. Treat the description, script, voice ID, and evaluation record as one versioned asset. Keep conversation rules separate, monitor the complete session cost, and retain a tested fallback.
The practical first step is small: create one adult voice for one narrow workflow, reuse a fixed test script, and run it through a real GPT-Live conversation. Expand only after reviewers can explain why the selected voice works—not merely that it sounds impressive in a preview.
Rubic8 Editorial Team
Editorial Team
Rubic8 creates practical guides and free tools for developers, webmasters, and digital publishers. Our fast-changing technical content is reviewed against current primary documentation before publication.