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:
- 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.
- 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,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 audio de consentimiento debe incluir únicamente una de las siguientes frases. Cualquier desviación del guion provocará un error.
| Idioma | Frase |
|---|---|
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使用此声音创建语音合成模型 |
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.wavEjemplo 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.