Con las voces personalizadas, puedes crear una voz para tu agente o aplicación. Elige cómo crearla:
- A partir de una descripción: usa un prompt para generar una voz para GPT-Live. Describe en el prompt de texto las características que quieres que tenga la voz.
- A partir de una grabación: proporciona una grabación de consentimiento y una breve muestra de referencia. Puedes usar estas voces con GPT-Live, la API de texto a voz, la Realtime API o la API para completar chats con salida de audio.
Para elegir una voz existente de GPT-Live, consulta Opciones de voz.
Crear una voz a partir de una descripción
La generación de voces a partir de prompts permite crear y guardar una voz a partir de una descripción escrita. Para hacerlo, no necesitas una grabación de referencia ni una de consentimiento.
La generación de voces a partir de prompts está disponible para todos los clientes de la API. Las voces generadas a partir de prompts funcionan con GPT-Live. No son compatibles con la API de texto a voz, la Realtime API ni la API para completar chats.
Uso responsable
- Usa las voces de manera responsable. No suplantes la identidad de otras personas ni infrinjas nuestras Políticas de uso.
- Usa voces adultas. No se permiten voces infantiles.
- Actúa con transparencia. Informa a quienes te escuchan que la voz se generó con IA y conserva los metadatos de procedencia, las marcas de agua y cualquier otro indicador de su origen sintético.
- No se garantiza que las voces sean únicas. Otras personas podrían generar voces o resultados similares. Tus derechos de propiedad sobre los resultados siguen sujetos a tu acuerdo con OpenAI.
- Los términos del servicio se aplican tanto a ti como a tus usuarios finales cuando usan la generación de voces a partir de prompts.
Crear y guardar la voz
Crea una voz a través de la API o en el Playground de voces. Crear una voz a partir de un prompt es gratis. Si la usas para generar voz en GPT-Live, se aplican las tarifas habituales de sesión.
Envía una solicitud JSON a /v1/audio/voices con type establecido en prompt:
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.jsonscript_hint es un guion de ejemplo opcional que orienta la generación de la voz. Si lo omites, el servicio genera un guion a partir de la descripción de la voz. Si prefieres usar tu propio guion, incluye hasta 2000 caracteres que reflejen la manera de hablar que buscas. El servicio rechaza los guiones vacíos o demasiado cortos.
Cada solicitud exitosa crea y guarda una voz nueva. La respuesta contiene metadatos, como el ID de la voz, la fecha y hora de creación expresadas en segundos Unix y el prompt original que describe la voz. No incluye audio ni una vista previa:
{
"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."
}
Guarda el id que recibas y conserva el prompt original de la voz. Si quieres usar la misma voz en otra sesión, reutiliza la voz guardada. Puedes crear hasta 100 voces a partir de prompts por organización. Este límite también se aplica cuando tu aplicación crea voces para sus clientes.
Describir la voz
Describe las características de la voz con palabras sencillas. Por ejemplo:
Una voz adulta, serena y tranquilizadora para un asistente de atención al cliente.
Habla con el acento del inglés estadounidense, en un registro medio y con un tono suave y cálido.
Mantén un ritmo constante, como el de una conversación.
Estos ejemplos muestran algunas características que puedes describir. Inclúyelas en el texto del prompt. No son parámetros independientes de la API.
| Característica | Qué describir | Ejemplo |
|---|---|---|
| Acento | La pronunciación regional y qué tan marcado es el acento | Inglés estadounidense con acento marcado |
| Edad | La edad que aparenta la voz | Una persona adulta de entre 30 y 39 años |
| Presentación | Si la voz se percibe, por ejemplo, como femenina o masculina | Femenina |
| Altura | Qué tan grave o aguda suena la voz | Registro medio |
| Timbre | El color de la voz | Suave y con cuerpo |
| Textura | Si la voz suena áspera, ronca o clara | Suave |
| Volumen | El esfuerzo vocal | Esfuerzo vocal moderado |
| Velocidad al hablar | Qué tan rápido habla | Ritmo medio |
| Rasgos distintivos | Qué tan marcados deben ser los rasgos propios de la voz | Moderadamente distintiva |
Describe las características de la voz. No pidas que se imite a una persona en particular, una figura pública o un personaje ficticio. No se permiten voces infantiles. Describe una voz adulta.
Ejemplos de descripciones
Usa estas descripciones como punto de partida y escucha los resultados en tu aplicación.
Asistente de voz tranquila
Una voz adulta y cálida, de registro medio, con un timbre suave y con cuerpo.
Usa un esfuerzo vocal moderado y habla sin prisa, de manera que transmitas tranquilidad.
Guía de voz animada
Una voz adulta, brillante y clara, de registro un poco más agudo y con un timbre de textura sutil.
Habla con animación, como en una conversación, a un ritmo ágil pero fácil de seguir.
Incluye las reglas de conversación, como la extensión de las respuestas, cómo manejar las interrupciones y cuándo delegar, en las instrucciones de la sesión de GPT-Live.
Escuchar la voz en GPT-Live
Al escuchar una voz en el Playground, se inicia una sesión de GPT-Live que se factura a la tarifa habitual.
Asigna a session.audio.output.voice.id el ID de voz que recibiste. Para orientar la forma de hablar del modelo, incluye la descripción original de la voz en session.instructions junto con las instrucciones de conversación de tu aplicación.
Reemplaza voice_123 por el ID que recibiste en la respuesta a la solicitud de creación:
{
"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" } } }
}
Para WebRTC, incluye esta configuración en el campo JSON session junto con transport. Para WebSockets, inclúyela en el primer evento session.start. Sigue la guía de conexión para enviar audio y escuchar la voz. Elige la voz al iniciar la sesión. Para probar otra voz, inicia una sesión nueva.
La creación de voces mediante /v1/audio/voices, incluso a partir de grabaciones, no es compatible con la retención cero de datos. La retención cero de datos puede aplicarse a la generación de voz en GPT-Live si está habilitada para tu organización o proyecto. Con la retención cero de datos, no están disponibles las grabaciones de sesiones almacenadas, la descarga de grabaciones ni la creación de sesiones a partir de otras. Consulta los controles de datos para conocer los requisitos de almacenamiento y retención de las sesiones.
Ajustar y reutilizar la voz
Cambia una característica a la vez y compara los resultados con el mismo fragmento breve y unos cuantos turnos de conversación. Escucha con atención el acento, el ritmo y las demás características que necesita tu aplicación. Conserva el ID de la voz que prefieras para volver a usarla.
Cada solicitud de creación guarda una voz nueva. Para probar otra voz guardada, inicia una sesión nueva de GPT-Live con el ID de esa voz.
Crear una voz a partir de una grabación
Para crear una voz a partir de una grabación, proporciona una breve muestra de audio como referencia. El modelo intentará reproducir la voz de la muestra.
Solo los clientes que cumplen los requisitos pueden crear voces personalizadas a partir de grabaciones. Ponte en contacto con nuestro equipo de ventas para obtener más información. Cuando se habilite esta función para tu organización, tendrás acceso a la pestaña Voces en la sección Audio.
Preparar y subir las grabaciones
Para crear una voz a partir de una grabación, debes enviar una solicitud a la API. Consulta la referencia de la API para ver todas las operaciones disponibles.
Para crear una voz a partir de una grabación, necesitas dos grabaciones de audio por separado:
- Grabación de consentimiento: en esta grabación, la persona que presta su voz da su consentimiento para que se cree una voz similar a la suya. Debe leer una de las frases de consentimiento que aparecen más abajo.
- Grabación de muestra: es la muestra de audio que el modelo intentará reproducir con fidelidad. La voz debe ser la misma que la de la grabación de consentimiento.
Consejos para crear una voz de alta calidad
La calidad de la voz personalizada depende en gran medida de la calidad de la muestra que proporciones. Mejorar la calidad de la grabación puede marcar una gran diferencia.
- Graba en un lugar silencioso y con el menor eco posible.
- Usa un micrófono XLR profesional.
- Coloca un filtro antipop entre tu boca y el micrófono. Mantén una distancia de unas 7 a 8 pulgadas del micrófono durante toda la grabación.
- El modelo copia exactamente lo que grabas, incluidos el tono, la cadencia, la energía, las pausas y los hábitos al hablar. Graba la voz tal como quieres que suene y mantén constantes la energía, el estilo y el acento de principio a fin.
- Las pequeñas variaciones en la muestra de audio pueden afectar la calidad de la voz generada. Prueba varias muestras para encontrar la más adecuada.
Requisitos y limitaciones
- Puedes crear un máximo de 20 voces a partir de grabaciones por organización.
- Las muestras de audio deben durar 60 segundos o menos.
- Las muestras de audio deben ser de uno de los siguientes tipos:
mpeg,wav,ogg,aac,flac,webmomp4.
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 consentimiento debe contener únicamente una de las siguientes frases. Si la grabación se aparta del guion en lo más mínimo, se rechazará.
| Idioma | Frase |
|---|---|
Alemán (de) |
Ich bin der Eigentümer dieser Stimme und bin damit einverstanden, dass OpenAI diese Stimme zur Erstellung eines synthetischen Stimmmodells verwendet. |
Inglés (en) |
I am the owner of this voice and I consent to OpenAI using this voice to create a synthetic voice model. |
Español (es) |
Soy el propietario de esta voz y doy mi consentimiento para que OpenAI la utilice para crear un modelo de voz sintética. |
Francés (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. |
Hindi (hi) |
मैं इस आवाज का मालिक हूं और मैं सिंथेटिक आवाज मॉडल बनाने के लिए OpenAI को इस आवाज का उपयोग करने की सहमति देता हूं |
Indonesio (id) |
Saya adalah pemilik suara ini dan saya memberikan persetujuan kepada OpenAI untuk menggunakan suara ini guna membuat model suara sintetis. |
Italiano (it) |
Sono il proprietario di questa voce e acconsento che OpenAI la utilizzi per creare un modello di voce sintetica. |
Japonés (ja) |
私はこの音声の所有者であり、OpenAIがこの音声を使用して音声合成 モデルを作成することを承認します。 |
Coreano (ko) |
나는 이 음성의 소유자이며 OpenAI가 이 음성을 사용하여 음성 합성 모델을 생성할 것을 허용합니다. |
Neerlandés (nl) |
Ik ben de eigenaar van deze stem en ik geef OpenAI toestemming om deze stem te gebruiken om een synthetisch stemmodel te maken. |
Polaco (pl) |
Jestem właścicielem tego głosu i wyrażam zgodę na wykorzystanie go przez OpenAI w celu utworzenia syntetycznego modelu głosu. |
Portugués (pt) |
Eu sou o proprietário desta voz e autorizo o OpenAI a usá-la para criar um modelo de voz sintética. |
Ruso (ru) |
Я являюсь владельцем этого голоса и даю согласие OpenAI на использование этого голоса для создания модели синтетического голоса. |
Ucraniano (uk) |
Я є власником цього голосу і даю згоду OpenAI використовувати цей голос для створення синтетичної голосової моделі. |
Vietnamita (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. |
Chino (zh) |
我是此声音的拥有者并授权OpenAI使用此声音创建语音合成模型 |
Luego, sube la grabación mediante la API. Si la carga se completa correctamente, recibirás el ID de la grabación de consentimiento, que usarás más adelante. Si la misma persona hace varios intentos, puedes reutilizar el consentimiento para crear distintas voces.
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, crea la voz con el ID de la grabación de consentimiento y 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 solicitud se completa correctamente, la voz aparecerá en la pestaña Audio.
Generar voz con una voz creada a partir de una grabación
Usa gpt-realtime-2.1-mini con la Realtime API para generar audio con tu voz personalizada. Antes de la primera respuesta de audio de la sesión, asigna a session.audio.output.voice un objeto que contenga el ID de la voz.
Configurar la sesión de Realtime
Usa el siguiente cuerpo de solicitud al crear un secreto de cliente de Realtime. Luego, sigue la guía de conexión con WebRTC para conectarte con ese secreto. Reemplaza voice_123abc por el ID que recibiste en la respuesta a la solicitud de creación de la voz:
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" },
},
},
},
});Para convertir texto a voz, agrega un mensaje de usuario que contenga el texto y luego envía response.create con output_modalities establecido en ["audio"]. Las instrucciones de la sesión le indican al modelo que lea el texto en voz alta. Recibe el audio generado a través de la pista de audio de WebRTC, como se describe en Manejo de audio con WebRTC.
Usar una voz creada a partir de una grabación con GPT-Live
Usa una clave de API específica del proyecto y aprobada tanto para GPT-Live como para la creación de voces personalizadas. Para consultar las frases de consentimiento y usar una voz personalizada, necesitas api.voices.read. Para crear consentimientos y voces, necesitas 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.
Preparar las grabaciones
Antes de grabar, consulta la lista de frases de consentimiento admitidas actualmente:
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 debe contener al menos cinco segundos de habla y la transcripción debe tener al menos 15 tokens de texto. Los silencios no cuentan. Usa una grabación de entre 10 y 60 segundos con varias oraciones completas. El límite por carga es de 10 MiB. El servicio extrae la transcripción de referencia de tu grabación.
Las grabadoras de los navegadores pueden etiquetar el audio como audio/webm;codecs=opus, un tipo que el punto de acceso de carga rechaza. Al preparar la carga, usa el tipo MIME base admitido audio/webm y conserva los bytes originales del audio. Usa las solicitudes anteriores para crear el consentimiento y la voz. Luego, guarda el ID de voz que recibas.
Seleccionar la voz al crear la sesión
Especifica la voz personalizada mediante un objeto, como { "id": "voice_123" }. Para las voces con nombre, como "marin", usa cadenas de texto.
gpt-live-1 admite voces personalizadas con distintos acentos del inglés. Para usar un acento, especifícalo también en session.instructions, por ejemplo, “Habla en inglés británico” o “Habla en inglés irlandés”. El siguiente ejemplo usa inglés británico. Cambia la instrucción según el acento que quieras 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, haz que el servidor de tu aplicación incluya esta configuración en el campo JSON session junto con transport. Autentica las solicitudes a tu servidor con las credenciales de la aplicación y guarda la clave de API de OpenAI en el servidor.
Para WebSockets, incluye la configuración en el primer evento session.start. Sigue la guía de conexión para transmitir audio y cerrar la sesión.
Manejar errores de acceso y del ciclo de vida de la voz
- Elige la voz al crear la sesión. Para usar otra voz, inicia una sesión nueva.
- Si la voz se eliminó o revocó, el consentimiento pertenece a otro proyecto o no tienes acceso a las voces personalizadas, puedes recibir un error
404. - La solicitud se rechaza si el audio tiene un formato incorrecto, si las grabaciones son de personas distintas o si la clave no es específica del proyecto.
Antes de crear una voz, verifica los permisos de tu proyecto, los requisitos mínimos de las grabaciones y los límites de carga. Consulta Primeros pasos con GPT-Live para conocer los requisitos de configuración de la sesión.