For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主导航

自定义音色

创建经批准的自定义音色,并将其用于语音生成和语音智能体。

自定义音色可让您为智能体或应用创建独特的声音。这些音色可用于 文本转语音 APIRealtime API支持音频输出的 Chat Completions API 的音频输出。

要创建自定义音色,您需要提供一小段音频样本作为参考,模型会尝试复现其中的声音。

Custom voices are limited to eligible customers. Contact our sales team to learn more. Once enabled for your organization, you’ll have access to the Voices tab under Audio.

创建音色

目前,必须通过 API 请求创建音色。有关完整的 API 操作,请参阅 API 参考。

创建音色需要两份独立的录音:

  1. 授权录音: 这份录音用于记录配音者同意创建与其声音相似的音色。配音者必须朗读下方提供的一条授权声明。
  2. 样本录音: 模型将尝试模仿的实际音频样本。样本中的声音必须与授权录音一致。

创建高质量音色的建议

自定义音色的质量在很大程度上取决于您提供的样本质量。改善录音质量可以显著提升效果。

  • 在安静且回声尽可能小的空间内录音。
  • 使用专业的 XLR 麦克风。
  • 与麦克风保持约 7–8 英寸的距离,在您与麦克风之间放置防喷罩,并始终保持这一距离。
  • 模型会原样模仿您提供的声音,包括语调、节奏、活力、停顿和说话习惯,因此请准确录下您想要的声音。录音全程应保持一致的活力、风格和口音。
  • 音频样本中的细微变化可能导致生成音色的质量有所不同。请尝试多个样本,找出最合适的一个。

要求与限制

  • 每个组织最多可创建 20 个音色。
  • 音频样本的时长不得超过 30 秒。
  • 音频样本必须采用以下格式之一:mpegwavoggaacflacwebmmp4

有关其他使用条款,请参阅《文本转语音补充协议》。

创建声音授权

授权录音必须仅包含以下声明中的一条。任何偏离原文的内容都会导致失败。

语言声明
deIch bin der Eigentümer dieser Stimme und bin damit einverstanden, dass OpenAI diese Stimme zur Erstellung eines synthetischen Stimmmodells verwendet.
enI am the owner of this voice and I consent to OpenAI using this voice to create a synthetic voice model.
esSoy el propietario de esta voz y doy mi consentimiento para que OpenAI la utilice para crear un modelo de voz sintética.
frJe 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 को इस आवाज का उपयोग करने की सहमति देता हूं
idSaya adalah pemilik suara ini dan saya memberikan persetujuan kepada OpenAI untuk menggunakan suara ini guna membuat model suara sintetis.
itSono il proprietario di questa voce e acconsento che OpenAI la utilizzi per creare un modello di voce sintetica.
ja私はこの音声の所有者であり、OpenAIがこの音声を使用して音声合成 モデルを作成することを承認します。
ko나는 이 음성의 소유자이며 OpenAI가 이 음성을 사용하여 음성 합성 모델을 생성할 것을 허용합니다.
nlIk ben de eigenaar van deze stem en ik geef OpenAI toestemming om deze stem te gebruiken om een synthetisch stemmodel te maken.
plJestem właścicielem tego głosu i wyrażam zgodę na wykorzystanie go przez OpenAI w celu utworzenia syntetycznego modelu głosu.
ptEu 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 використовувати цей голос для створення синтетичної голосової моделі.
viTô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 上传录音。上传成功后,API 会返回授权录音的 ID,供您后续引用。请注意,如果同一位配音者进行多次尝试,可以使用同一份授权创建多个不同的音色。

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 并提供声音样本,即可创建实际使用的音色。

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"

创建成功后,音色会显示在音频选项卡中。

在语音生成中使用音色

语音生成的使用方式与往常相同。在创建语音或启动实时会话时,在 voice 参数中指定音色 ID。

文本转语音示例

curl https://api.openai.com/v1/audio/speech \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini-tts",
    "voice": {
      "id": "voice_123abc"
    },
    "input": "Maple est le meilleur golden retriever du monde entier.",
    "language": "fr",
    "format": "wav"
  }' \
  --output sample.wav

Realtime API 示例

运行 Ruby 示例前,请将 voice_123 替换为您的自定义音色 ID。

const sessionConfig = JSON.stringify({
  session: {
    type: "realtime",
    model: "gpt-realtime-2",
    audio: {
      output: {
        voice: { id: "voice_123abc" },
      },
    },
  },
});

在 GPT-Live 中使用自定义音色

请使用限定于项目范围且已获准用于 GPT-Live 和自定义音色创建的 API 密钥。 读取授权声明和使用自定义音色需要 api.voices.read 权限;创建授权和音色需要 api.voices.write 权限以及 自定义音色 API 访问权限。所有请求都应使用同一个项目,并将 API 密钥 保存在受信任的服务器上。

准备录音

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

curl https://api.openai.com/v1/audio/consent_phrases \
  -H "Authorization: Bearer $OPENAI_API_KEY"

授权录音和参考样本必须来自同一个人。 样本必须包含至少 5 秒的实际语音,且转写文本至少包含 15 个 Token; 静音不计入时长。请使用一段时长为 10–30 秒、 包含多个完整句子的录音。每次上传的大小上限为 10 MiB。 服务会提取参考转写文本;请勿上传转写文本的 Token、 配置解码器或添加自定义请求标头。

浏览器录音工具可能会将音频标记为 audio/webm;codecs=opus,但上传端点 会拒绝此类型。构建上传请求时,请使用受支持的基础 MIME 类型 audio/webm,同时保留原始音频字节。使用上文的同意录音和音色 创建请求,然后保存返回的音色 ID。

在创建会话时选择音色

请以对象 { "id": "voice_123" } 的形式传入自定义音色,而不是使用字符串 "voice_123""marin" 等命名音色则使用字符串。

gpt-live-1 支持带有英语口音的自定义音色。要使用某种口音,还需 在 session.instructions 中指定,例如 "Speak British English" 或 "Speak Irish English."。以下示例使用英式英语;请修改指令, 使其符合您希望自定义音色采用的口音。

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

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

对于 WebRTC,可信的会话代理服务 会将此配置放在 JSON 的 session 字段中,与 transport 字段并列。 Live 端点要求使用 JSON,而非 multipart 或原始 SDP。读取已创建的 会话 ID 时使用 session.id,读取 SDP 应答时使用 transport.sdp。请使用应用凭据 对发往托管代理服务的请求进行身份验证;切勿向浏览器暴露 OpenAI API 密钥。

对于 WebSockets,请将配置 放在第一个 session.start 事件中。建立连接时不要使用查询参数,并等待 session.started 后再开始流式传输音频。使用 session.input_audio.append 发送音频。发送 session.close 后,请继续接收,直到 session.closed 提供最终用量。

处理访问和生命周期故障

  • Live 会话开始后,无法更改输出音色。要使用其他音色,请启动新会话。
  • 音色已被删除或撤销、同意录音来自其他项目,或缺少自定义音色访问权限,都可能表现为 404 错误。
  • 音频格式有误、说话人不匹配,或密钥未限定在项目范围内,都会导致请求被拒绝。

创建音色前,请确认您项目的权限、录音的最低要求和上传限制。 有关会话设置要求,请参阅 GPT-Live 入门