OpenAI 自定义声音

2026-11-06 12:39 更新

自定义声音可以为智能体或应用创建声音。可以选择以下创建方式:

选择已有 GPT-Live 声音的方法见声音选项。

根据描述创建声音

提示词生成声音会根据文字描述创建并保存声音。这种工作流不需要参考录音或授权录音。

提示词生成声音已向所有 API 客户正式开放。提示词生成的声音可用于 GPT-Live,不支持文字转语音、Realtime 或 Chat Completions API。

负责任地使用

  • 负责任地使用声音。不要冒充他人或违反使用政策。
  • 使用成年人声音。不允许使用儿童声音。
  • 保持透明。告知听众语音由 AI 生成,并保留来源元数据、水印或其他标识合成来源的信息。
  • 不保证声音独一无二。其他人可能生成相似的声音或输出。输出的所有权仍受你与 OpenAI 的协议约束。
  • 你及终端用户使用提示词生成声音功能时,适用服务条款。

创建并保存声音

可以通过 API 或声音 Playground创建声音。创建提示词生成的声音免费;使用该声音在 GPT-Live 中生成语音,按正常会话费率计费。

向 /v1/audio/voices 发送 JSON 请求,并把 type 设为 prompt:

来源示例 1(bash):

程序文字译释8:名称为“客服助手”;声音描述是平静、令人安心的成年人声音,使用美式英语口音、中等音高、平滑温暖音色与稳定自然的对话语速。

## [中文] 示例 1:创建并保存声音;以下保留本语言原始示例。
## [中文] 本段涉及的 HTTP 端点:/v1/audio/voices;认证和请求体保持原示例形式。
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": "Support assistant",
    "prompt": "A calm, reassuring adult voice for a customer support assistant. Speak with an American English accent, a mid-range pitch, a smooth, warm tone, and a steady, conversational pace.",
    "model": "auto"
  }' \
  -o voice.json

script_hint 是用于引导声音生成的可选示例台词。省略时,服务会根据声音描述生成台词;自行提供时,最多包含 2,000 个字符的代表性语音文本。空白或过短的台词会被拒绝。

每次成功请求都会创建一个新的已保存声音。响应包含 ID、以 Unix 秒表示的创建时间和原始声音描述提示词等元数据,不包含音频或试听片段:

来源示例 2(json):

程序文字译释9:客服助手。

程序文字译释10:平静、令人安心的成年人客服声音;美式英语口音、中等音高、平滑温暖音色、稳定自然的对话语速。

{
  "object": "audio.voice",
  "id": "voice_123",
  "name": "Support assistant",
  "created_at": 0,
  "type": "prompt",
  "prompt": "A calm, reassuring adult voice for a customer support assistant. Speak with an American English accent, a mid-range pitch, a smooth, warm tone, and a steady, conversational pace."
}

保存返回的 id 和原始声音提示词。如果希望另一会话使用相同声音,应复用已保存的声音。每个组织最多创建 100 个提示词生成的声音;应用为自己的客户创建的声音也计入这一限额。

描述声音

用日常语言描述嗓音特征,例如:

来源示例 3(text):

本例中文译文与说明:

平静、令人安心的成年人客服助手声音。使用美式英语口音、中等音高、平滑温暖的音色,以及稳定自然的对话语速。

A calm, reassuring adult voice for a customer support assistant. Speak with an
American English accent, a mid-range pitch, a smooth, warm tone, and a steady,
conversational pace.

下表给出可以描述的特征。这些是提示词中的文字,不是独立 API 参数:

特征 描述内容 措辞示例
口音 地区发音及口音强度 美式英语,口音明显
年龄 听感上的年龄 三十多岁的成年人
声音呈现 声音呈现出的特质 偏女性化
音高 声音的高低 中等音高
音色 声音的色彩 圆润、饱满
质感 沙哑、嘶哑或清晰程度 平滑清晰
响度 发声用力程度 适度用力发声
语速 说话快慢 中等速度
辨识度 希望声音个性有多鲜明 具有适度辨识度

应描述特征本身,不要要求模仿某个具名人物、公众人物或虚构角色。不允许使用儿童声音,应描述成年人的声音。

描述示例

以以下描述为起点,并在应用中聆听生成结果。

平静的助手:

来源示例 4(text):

本例中文译文与说明:

温暖的成年人声音,中等音高、平滑饱满的音色。适度用力发声,以从容、令人安心的方式表达。

A warm adult voice with a mid-range pitch and smooth, rich timbre.
Use moderate vocal effort and an unhurried, reassuring delivery.

活泼的向导:

来源示例 5(text):

本例中文译文与说明:

明亮清晰的成年人声音,音高稍高,音色略带质感。用活泼自然的对话方式表达,语速轻快但容易跟上。

A bright, clear adult voice with a slightly higher pitch and a lightly textured timbre.
Use a lively, conversational delivery at a brisk but easy-to-follow pace.

回答长度、打断处理和委派时机等对话规则,应放在 GPT-Live 会话指令中。

在 GPT-Live 中试听声音

在 Playground 试听声音会运行 GPT-Live 会话,并按正常会话计费。

把 session.audio.output.voice.id 设为返回的声音 ID。为使声音按预期表现,应在 session.instructions 中同时包含原始声音描述和应用的对话指令。

将 voice_123 替换为创建请求返回的 ID:

来源示例 6(json):

程序文字译释11:你是乐于助人的语音助手。使用平静、令人安心的成年人客服声音,美式英语口音、中等音高、平滑温暖音色,稳定自然地交谈。

{
  "model": "gpt-live-1",
  "instructions": "You are a helpful voice assistant. A calm, reassuring adult voice for a customer support assistant. Speak with an American English accent, a mid-range pitch, a smooth, warm tone, and a steady, conversational pace.",
  "audio": { "output": { "voice": { "id": "voice_123" } } }
}

使用 WebRTC时,把此配置放入 JSON 的 session 字段,与 transport 并列;使用 WebSockets时,将它放入第一个 session.start 事件。按照连接指南发送音频并收听声音。声音在启动时选择;要试听其他声音,需要启动新会话。

通过 /v1/audio/voices 创建声音,包括从录音创建,不兼容零数据保留(ZDR)。如果组织或项目启用了零数据保留,GPT-Live 语音生成可以适用该机制;存储的会话录音、录音下载和会话分叉则不可用。会话存储与保留要求见数据控制。

改进并复用

每次只调整一个特征,用相同短文和几个对话轮次比较结果,聆听口音、语速及应用需要的其他特征。保留并复用最合适的声音 ID。

每次创建请求都会保存一个新声音。要尝试另一已保存声音,应使用其 ID 启动新的 GPT-Live 会话。

根据录音创建声音

提供一段简短的参考音频样本,模型会尝试复现其中的声音。

从录音创建自定义声音仅面向符合条件的客户。详情请联系销售团队。组织开通后,可访问 Audio 下的 Voices 选项卡。

准备并上传录音

从录音创建声音必须通过 API 请求完成。完整操作集合见 API 参考。

需要两段独立录音:

  1. 授权录音:录下配音者同意创建其声音副本的声明。配音者必须朗读下表中的一条授权声明。
  2. 样本录音:模型实际参照的声音样本,声音必须与授权录音一致。

制作高质量声音的建议:

自定义声音的质量很大程度上取决于提供的样本质量。改善录音质量可以显著影响结果。

  • 在安静、回声尽可能小的空间录音。
  • 使用专业 XLR 麦克风。
  • 与麦克风保持约 7–8 英寸距离,中间放置防喷罩,并保持距离不变。
  • 模型会复制你提供的语气、节奏、活力、停顿和习惯,因此要录制你实际想要的声音,始终保持活力、风格和口音一致。
  • 音频样本的小幅变化也可能造成生成质量差异,可尝试多份样本找到合适结果。

要求与限制:

  • 每个组织最多创建 20 个基于录音的声音。
  • 音频样本时长不得超过 60 秒。
  • 支持的音频类型为 mpeg、wav、ogg、aac、flac、webm 或 mp4。

其他使用条款见文字转语音补充协议。

创建声音授权:

授权音频只能包含下表中的一条声明。任何偏离规定文本的内容都会导致失败。以下保留各语言必须朗读的原文;这些声明表达的共同含义是:声音拥有者同意 OpenAI 使用其声音创建合成语音模型。

语言 授权声明原文
德语 (de) Ich bin der Eigentümer dieser Stimme und bin damit einverstanden, dass OpenAI diese Stimme zur Erstellung eines synthetischen Stimmmodells verwendet.
英语 (en) I am the owner of this voice and I consent to OpenAI using this voice to create a synthetic voice model.
西班牙语 (es) Soy el propietario de esta voz y doy mi consentimiento para que OpenAI la utilice para crear un modelo de voz sintética.
法语 (fr) Je suis le propriétaire de cette voix et j'autorise OpenAI à utiliser cette voix pour créer un modèle de voix synthétique.
印地语 (hi) मैं इस आवाज का मालिक हूं और मैं सिंथेटिक आवाज मॉडल बनाने के लिए OpenAI को इस आवाज का उपयोग करने की सहमति देता हूं
印度尼西亚语 (id) Saya adalah pemilik suara ini dan saya memberikan persetujuan kepada OpenAI untuk menggunakan suara ini guna membuat model suara sintetis.
意大利语 (it) Sono il proprietario di questa voce e acconsento che OpenAI la utilizzi per creare un modello di voce sintetica.
日语 (ja) 私はこの音声の所有者であり、OpenAIがこの音声を使用して音声合成 モデルを作成することを承認します。
韩语 (ko) 나는 이 음성의 소유자이며 OpenAI가 이 음성을 사용하여 음성 합성 모델을 생성할 것을 허용합니다.
荷兰语 (nl) Ik ben de eigenaar van deze stem en ik geef OpenAI toestemming om deze stem te gebruiken om een synthetisch stemmodel te maken.
波兰语 (pl) Jestem właścicielem tego głosu i wyrażam zgodę na wykorzystanie go przez OpenAI w celu utworzenia syntetycznego modelu głosu.
葡萄牙语 (pt) Eu sou o proprietário desta voz e autorizo o OpenAI a usá-la para criar um modelo de voz sintética.
俄语 (ru) Я являюсь владельцем этого голоса и даю согласие OpenAI на использование этого голоса для создания модели синтетического голоса.
乌克兰语 (uk) Я є власником цього голосу і даю згоду OpenAI використовувати цей голос для створення синтетичної голосової моделі.
越南语 (vi) Tôi là chủ sở hữu giọng nói này và tôi đồng ý cho OpenAI sử dụng giọng nói này để tạo mô hình giọng nói tổng hợp.
中文 (zh) 我是此声音的拥有者并授权OpenAI使用此声音创建语音合成模型

然后通过 API 上传录音。成功后会返回授权录音 ID,后续创建声音时需要引用。同一位配音者多次尝试创建不同声音时,可以复用同一份授权。

来源示例 7(bash):

## [中文] 示例 7:准备并上传录音;以下保留本语言原始示例。
## [中文] 本段涉及的 HTTP 端点:/v1/audio/voice_consents;认证和请求体保持原示例形式。
curl https://api.openai.com/v1/audio/voice_consents \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "name=test_consent" \
  -F "language=en" \
  -F "recording=@$HOME/tmp/voice_consent/consent_recording.wav;type=audio/x-wav"

创建声音:

接下来引用授权录音 ID,并提供声音样本,创建实际声音。

来源示例 8(bash):

## [中文] 示例 8:准备并上传录音;以下保留本语言原始示例。
## [中文] 本段涉及的 HTTP 端点:/v1/audio/voices;认证和请求体保持原示例形式。
curl https://api.openai.com/v1/audio/voices \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "name=test_voice" \
  -F "audio_sample=@$HOME/tmp/voice_consent/audio_sample_recording.wav;type=audio/x-wav" \
  -F "consent=cons_123abc"

成功后,新声音会出现在 Audio 选项卡中。

在语音生成中使用从录音创建的声音

使用 gpt-realtime-2.1-mini 和 Realtime API生成自定义声音的语音。在会话第一次音频回复之前,把 session.audio.output.voice 设为包含声音 ID 的对象。

配置 Realtime 会话:

创建 Realtime 客户端密钥时使用以下请求体,再按照 WebRTC 连接指南用该密钥连接。将 voice_123abc 替换为声音创建请求返回的 ID:

来源示例 9(javascript):

程序文字译释12:朗读用户文字,不添加说明。

// [中文] 示例 9:在语音生成中使用从录音创建的声音;以下保留本语言原始示例。
// [中文] 原代码明确设置的模型值:gpt-realtime-2.1-mini;各值的作用按其所在配置对象区分。
const sessionConfig = JSON.stringify({
  session: {
    type: "realtime",
    model: "gpt-realtime-2.1-mini",
    instructions: "Read the user's text aloud without adding commentary.",
    output_modalities: ["audio"],
    audio: {
      output: {
        voice: { id: "voice_123abc" },
      },
    },
  },
});

来源示例 10(ruby):

沿用程序文字译释12。

## [中文] 示例 10:在语音生成中使用从录音创建的声音;以下保留本语言原始示例。
## [中文] 原代码明确设置的模型值:gpt-realtime-2.1-mini;各值的作用按其所在配置对象区分。
## Replace the illustrative IDs and URLs below with your own resource values.
require "json"

session_config = JSON.generate(
  session: {
    type: "realtime",
    model: "gpt-realtime-2.1-mini",
    instructions: "Read the user's text aloud without adding commentary.",
    output_modalities: ["audio"],
    audio: { output: { voice: { id: "voice_123abc" } } }
  }
)
puts(session_config)

生成文字转语音时,先添加包含待朗读文本的用户消息,再发送 response.create,把 output_modalities 设为 ["audio"]。会话指令要求模型朗读提供的文本。按通过 WebRTC 处理音频所述,从 WebRTC 音频轨道接收生成音频。

在 GPT-Live 中使用从录音创建的声音

使用同时获准访问 GPT-Live 与自定义声音创建功能的项目级 API 密钥。读取授权声明和使用自定义声音需要 api.voices.read;创建授权与声音需要 api.voices.write 及自定义声音 API 访问权限。所有请求使用同一项目,密钥保存在可信服务器上。

准备录音

录音前列出当前支持的授权声明:

来源示例 11(bash):

## [中文] 示例 11:准备录音;以下保留本语言原始示例。
## [中文] 本段涉及的 HTTP 端点:/v1/audio/consent_phrases;认证和请求体保持原示例形式。
curl https://api.openai.com/v1/audio/consent_phrases \
  -H "Authorization: Bearer $OPENAI_API_KEY"

授权录音和参考样本必须来自同一个人。样本至少包含五秒实际讲话和至少 15 个转录文本词元,静音不计入。使用包含多个完整句子的 10–60 秒录音,每次上传不超过 10 MiB。服务会从录音提取参考转录文本。

浏览器录音器可能把音频标为 audio/webm;codecs=opus,上传端点会拒绝该类型。构造上传内容时,使用受支持的基础 MIME 类型 audio/webm,同时保留原始音频字节。使用前述授权和声音创建请求,并保存返回的声音 ID。

创建会话时选择声音

自定义声音以对象传递,例如 { "id": "voice_123" };"marin" 等具名声音则使用字符串。

gpt-live-1 支持带英语口音的自定义声音。要使用某种口音,还应在 session.instructions 中明确指定,例如 "Speak British English"(说英式英语)或 "Speak Irish English"(说爱尔兰英语)。以下示例使用英式英语,可按需要更换。

初始会话中包含以下配置:

来源示例 12(json):

程序文字译释13:你是乐于助人的语音助手,说英式英语。

{
  "model": "gpt-live-1",
  "instructions": "You are a helpful voice assistant. Speak British English.",
  "audio": { "output": { "voice": { "id": "voice_123" } } }
}

使用 WebRTC时,由应用服务器将此配置放入 JSON 的 session 字段,与 transport 并列。请求应用服务器时使用应用自身的凭证,OpenAI API 密钥保留在服务器。

使用 WebSockets时,将配置放入第一个 session.start 事件。按照连接指南流式传输音频并关闭会话。

处理访问与生命周期失败

  • 在创建会话时选择声音;要换声音,启动新会话。
  • 声音被删除或撤销、授权来自其他项目,或缺少自定义声音访问权限,都可能表现为 404。
  • 格式错误的音频、讲话者不一致或非项目级密钥会被拒绝。

创建声音之前,确认项目权限、录音最小要求和上传限制。会话设置的要求见 GPT-Live 入门。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号