For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal

Voces personalizadas

Crea una voz personalizada aprobada y úsala para generar voz y en agentes de voz.

Las voces personalizadas te permiten crear una voz única para tu agente o aplicación. Puedes usarlas para la salida de audio con la API de texto a voz, la Realtime API o la API para completar chats con salida de audio.

Para crear una voz personalizada, proporcionarás una breve muestra de audio de referencia que el modelo intentará replicar.

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.

Crear una voz

Actualmente, las voces deben crearse mediante una solicitud a la API. Consulta la referencia de la API para conocer todas las operaciones disponibles.

Para crear una voz se requieren dos grabaciones de audio independientes:

  1. Grabación de consentimiento: en esta grabación, el actor de voz da su consentimiento para crear una reproducción de su voz. El actor debe leer una de las frases de consentimiento que se proporcionan a continuación.
  2. Grabación de muestra: la muestra de audio que el modelo intentará reproducir fielmente. La voz debe coincidir con la de la grabación de consentimiento.

Consejos para crear una voz de alta calidad

La calidad de tu voz personalizada depende en gran medida de la calidad de la muestra que proporciones. Optimizar la calidad de la grabación puede marcar una gran diferencia.

  • Graba en un lugar silencioso con el mínimo eco posible.
  • Usa un micrófono XLR profesional.
  • Mantente a unas 7–8 pulgadas del micrófono, con un filtro antipop entre ambos, y conserva esa distancia.
  • El modelo copia exactamente lo que le proporcionas (tono, cadencia, energía, pausas y hábitos), así que graba exactamente la voz que quieres. Mantén la misma energía, estilo y acento durante toda la grabación.
  • Las pequeñas variaciones en la muestra de audio pueden producir diferencias en la calidad de la voz generada. Prueba varias muestras para encontrar la más adecuada.

Requisitos y limitaciones

  • Se pueden crear como máximo 20 voces por organización.
  • Las muestras de audio deben durar 30 segundos o menos.
  • Las muestras de audio deben ser de uno de los siguientes tipos: mpeg, wav, ogg, aac, flac, webm o mp4.

Consulta el Acuerdo complementario de texto a voz para conocer los términos de uso adicionales.

Crear un consentimiento de voz

La grabación de audio de consentimiento debe incluir únicamente una de las siguientes frases. Cualquier desviación del guion provocará un error.

IdiomaFrase
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使用此声音创建语音合成模型

Luego, sube la grabación mediante la API. Si la carga se realiza correctamente, se devolverá el ID de la grabación de consentimiento que usarás más adelante. Ten en cuenta que el consentimiento se puede reutilizar para crear distintas voces si el mismo actor de voz realiza varios intentos.

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"

Crear una voz

A continuación, crearás la voz usando el ID de la grabación de consentimiento y proporcionando la muestra de voz.

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"

Si la creación se completa correctamente, la voz aparecerá en la pestaña Audio.

Usar una voz durante la generación de voz

La generación de voz funcionará como de costumbre. Especifica el ID de la voz en el parámetro voice al generar voz o al iniciar una sesión en tiempo real.

Ejemplo de texto a voz

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

Ejemplo de Realtime API

Para Ruby, reemplaza voice_123 por el ID de tu voz personalizada antes de ejecutar el ejemplo.

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

Usa una voz personalizada con GPT-Live

Usa una clave de API con alcance de proyecto aprobada tanto para GPT-Live como para la creación de voces personalizadas. Leer las frases de consentimiento y usar una voz personalizada requiere api.voices.read; crear consentimientos y voces requiere api.voices.write y acceso a la API de voces personalizadas. Usa el mismo proyecto para todas las solicitudes y guarda la clave de API en un servidor de confianza.

Prepara las grabaciones

Obtén la lista de frases de consentimiento admitidas actualmente antes de grabar:

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

La grabación de consentimiento y la muestra de referencia deben ser de la misma persona. La muestra necesita al menos cinco segundos de habla efectiva y al menos 15 tokens de texto transcrito; el silencio no cuenta. Usa una grabación de 10–30 segundos con varias oraciones completas. Cada carga tiene un límite de 10 MiB. El servicio extrae la transcripción de referencia; no subas tokens de transcripción, no configures un decodificador ni agregues encabezados de solicitud personalizados.

Las grabadoras del navegador pueden etiquetar el audio como audio/webm;codecs=opus, un tipo que el punto de acceso para cargas rechaza. Al preparar una carga, usa el tipo MIME base compatible audio/webm y conserva los bytes originales del audio. Usa las solicitudes anteriores de creación de consentimiento y de voz y luego guarda el ID de voz devuelto.

Selecciona la voz al crear la sesión

Pasa una voz personalizada como el objeto { "id": "voice_123" }, no como la cadena "voice_123". Las voces con nombre, como "marin", usan cadenas.

gpt-live-1 admite voces personalizadas con acentos del inglés. Para usar un acento, también especifícalo en session.instructions, por ejemplo, "Speak British English" o "Speak Irish English." El siguiente ejemplo usa inglés británico; cambia la instrucción para que corresponda al acento que quieres para tu voz personalizada.

Incluye la siguiente configuración en la sesión inicial:

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

Para WebRTC, el intermediario de sesiones de confianza coloca esta configuración en el campo JSON session, junto a transport. El punto de acceso de Live requiere JSON, no multipart ni SDP sin procesar. Lee el ID de la sesión creada desde session.id y la respuesta SDP desde transport.sdp. Autentica las solicitudes al intermediario alojado con las credenciales de la aplicación; nunca expongas la clave de API de OpenAI al navegador.

Para WebSockets, coloca la configuración en el primer evento session.start. Conéctate sin parámetros de consulta y espera a recibir session.started antes de transmitir audio. Envía audio con session.input_audio.append. Después de enviar session.close, sigue recibiendo hasta que session.closed proporcione los datos finales de uso.

Maneja los errores de acceso y del ciclo de vida

  • La voz de salida no se puede cambiar después de que se inicia la sesión de Live. Inicia una sesión nueva para usar una voz diferente.
  • Una voz eliminada o revocada, un consentimiento de otro proyecto o la falta de acceso a voces personalizadas pueden manifestarse como un error 404.
  • Se rechazan el audio con formato incorrecto, las voces que no coinciden o las claves que no están limitadas a un proyecto.

Confirma los permisos de tu proyecto, los requisitos mínimos de grabación y los límites de carga antes de crear una voz. Consulta Primeros pasos con GPT-Live para conocer los requisitos de configuración de la sesión.