OpenAI lanzó una nueva generación de modelos de voz el 6 de noviembre de 2026. El lanzamiento principal es GPT-Realtime-2: un modelo voz a voz con razonamiento de clase GPT-5, ventana de contexto de 128,000 tokens y esfuerzo de razonamiento configurable para equilibrar latencia y calidad. Si ya usa gpt-realtime, la migración consiste principalmente en cambiar el ID del modelo y ajustar algunos campos de sesión y herramientas.
Esta guía explica qué es GPT-Realtime-2, qué cambió frente al modelo anterior, cómo se factura y cómo conectarlo por WebSocket o SIP. También incluye un flujo práctico con Apidog para reproducir sesiones en tiempo real sin volver a grabar audio en cada prueba.
Para contexto sobre la línea de modelos de OpenAI para 2026, consulte Qué es GPT-5.5. Para el modelo multimodal de imagen, consulte Cómo usar la API de GPT-Image-2.
TL;DR
- GPT-Realtime-2 es el modelo voz a voz insignia de OpenAI con razonamiento de clase GPT-5, contexto de 128k y hasta 32k tokens de salida.
- El audio cuesta $32 por 1 millón de tokens de entrada y $64 por 1 millón de tokens de salida. La entrada en caché cuesta $0.40/1M.
- Hay dos voces nuevas exclusivas de Realtime: Cedar y Marin.
- Los niveles de razonamiento son
minimal,low,medium,highyxhigh. El predeterminado eslow. - Para WebSocket use:
wss://api.openai.com/v1/realtime?model=gpt-realtime-2. - También puede recibir llamadas entrantes por SIP.
- Modelos relacionados:
- GPT-Realtime-Translate: traducción en vivo, 70 idiomas de entrada, $0.034/min.
- GPT-Realtime-Whisper: STT en streaming, $0.017/min.
- Use Apidog para guardar sesiones WebSocket, reproducir eventos y comparar ejecuciones.
¿Qué es GPT-Realtime-2?
GPT-Realtime-2 es un modelo único de voz a voz. Recibe audio, texto o imágenes como entrada y genera texto o audio como salida.
La diferencia clave es que no necesita una cadena separada de:
STT → LLM → TTS
El modelo procesa la transcripción, el razonamiento, la selección de herramientas y la generación de voz en una sola sesión Realtime.
La nueva modalidad importante es la entrada de imagen. Puede insertar una captura de pantalla o una foto durante una conversación de voz y pedirle al agente que explique lo que ve.
Ejemplo de caso de uso:
Usuario: “Estoy viendo este error en pantalla. ¿Qué significa?”
Agente: analiza la imagen, responde en voz y puede pedir más contexto.
Esto permite construir copilotos de voz que ven lo mismo que el usuario.
Especificaciones
| Atributo | Valor |
|---|---|
| ID del modelo | gpt-realtime-2 |
| Ventana de contexto | 128,000 tokens |
| Salida máxima | 32,000 tokens |
| Modalidades de entrada | texto, audio, imagen |
| Modalidades de salida | texto, audio |
| Fecha límite de conocimiento | 2024-09-30 |
| Niveles de razonamiento | minimal, low, medium, high, xhigh |
| Llamada a funciones | yes |
| Servidores MCP remotos | yes |
| Entrada de imagen | yes |
| Llamadas telefónicas SIP | yes |
¿Qué cambió con respecto a gpt-realtime?
Frente a gpt-realtime-1.5, GPT-Realtime-2 mejora en benchmarks de audio:
- Big Bench Audio: 81.4% → 96.6%.
- Audio MultiChallenge: 34.7% → 48.5%.
Estas puntuaciones se obtuvieron con razonamiento high y xhigh. En producción, el valor predeterminado es low para reducir latencia.
Cambios prácticos para implementar agentes:
Preámbulos de voz
El modelo puede decir frases como “déjame verificar eso” mientras razona o espera resultados de herramientas.Llamadas de herramientas en paralelo
Puede ejecutar varias funciones al mismo tiempo y narrar el progreso.Recuperación más robusta
Maneja mejor turnos ambiguos, interrupciones o solicitudes incompletas.Mejor control del tono
Puede ajustar estilo, formalidad, velocidad y terminología durante la sesión.
El contexto también crece de 32k a 128k tokens, lo que permite sesiones largas para soporte, banca, tutorías o agentes telefónicos.
Precios
GPT-Realtime-2 se factura por token, con tarifas separadas por modalidad.
| Tipo de token | Entrada | Entrada en caché | Salida |
|---|---|---|---|
| Texto | $4.00 / 1M | $0.40 / 1M | $24.00 / 1M |
| Audio | $32.00 / 1M | $0.40 / 1M | $64.00 / 1M |
| Imagen | $5.00 / 1M | $0.50 / 1M | n/a |
La entrada en caché reduce el costo para contexto repetido, como prompts de sistema, documentos base o instrucciones estables. Si su agente reutiliza el mismo contexto en muchas sesiones, active caché siempre que sea posible.
Para comparar con otros modelos, consulte precios de GPT-5.5.
Modelos complementarios:
- GPT-Realtime-Translate: $0.034 por minuto. Admite 70 idiomas de entrada y 13 de salida.
- GPT-Realtime-Whisper: $0.017 por minuto. Voz a texto en streaming para subtítulos en vivo y transcripción continua.
Use:
- GPT-Realtime-2 si necesita razonamiento y generación de voz.
- GPT-Realtime-Translate si necesita interpretación multilingüe en vivo.
- GPT-Realtime-Whisper si solo necesita transcripción.
Puntos finales y autenticación
GPT-Realtime-2 está disponible en varias superficies de API:
POST https://api.openai.com/v1/chat/completions
POST https://api.openai.com/v1/responses
WSS wss://api.openai.com/v1/realtime?model=gpt-realtime-2
WSS wss://api.openai.com/v1/realtime?call_id={call_id} # SIP
POST https://api.openai.com/v1/realtime/translations
POST https://api.openai.com/v1/realtime/transcription_sessions
Para agentes de voz interactivos, use WebSocket:
wss://api.openai.com/v1/realtime?model=gpt-realtime-2
Autenticación:
Authorization: Bearer $OPENAI_API_KEY
OpenAI-Beta: realtime=v1
Configure la variable de entorno:
export OPENAI_API_KEY="sk-proj-..."
Conexión por WebSocket
Instale ws en Node.js:
npm install ws
Cliente mínimo:
import WebSocket from "ws";
const ws = new WebSocket(
"wss://api.openai.com/v1/realtime?model=gpt-realtime-2",
{
headers: {
Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
"OpenAI-Beta": "realtime=v1",
},
}
);
ws.on("open", () => {
ws.send(JSON.stringify({
type: "session.update",
session: {
voice: "cedar",
instructions: "You are a friendly support agent for a fintech app.",
input_audio_format: "pcm16",
output_audio_format: "pcm16",
turn_detection: { type: "server_vad" },
reasoning: { effort: "low" },
},
}));
});
ws.on("message", (raw) => {
const event = JSON.parse(raw.toString());
if (event.type === "response.audio.delta") {
// Fragmento de audio PCM16 en base64.
// En producción, envíelo al speaker, navegador o pipeline de audio.
process.stdout.write(Buffer.from(event.delta, "base64"));
}
if (event.type === "response.done") {
console.log("Respuesta completada");
}
});
ws.on("error", console.error);
La sesión funciona por eventos:
- Usted envía audio con
input_audio_buffer.append. - El servidor responde con eventos como
response.audio.delta. - Puede usar
server_vadpara detección de turnos del lado del servidor.
Formato recomendado:
PCM16 a 24 kHz
También se admiten G.711 mu-law y A-law, útiles para telefonía.
Para comparar Realtime con Responses API, consulte Cómo usar la API de GPT-5.5.
Configurar la sesión
Una configuración inicial práctica:
ws.send(JSON.stringify({
type: "session.update",
session: {
voice: "cedar",
instructions: `
Eres un agente de soporte técnico.
Responde de forma breve.
Si necesitas datos externos, usa herramientas.
Si no estás seguro, pide aclaración.
`,
input_audio_format: "pcm16",
output_audio_format: "pcm16",
turn_detection: {
type: "server_vad"
},
reasoning: {
effort: "low"
}
}
}));
Para cambiar el nivel de razonamiento durante una sesión:
ws.send(JSON.stringify({
type: "session.update",
session: {
reasoning: {
effort: "medium"
}
}
}));
Use low como valor inicial. Suba a medium, high o xhigh solo si mide problemas reales de calidad.
Enviar audio al modelo
El flujo típico es:
1. Capturar audio del micrófono.
2. Convertirlo a PCM16.
3. Codificar cada fragmento en base64.
4. Enviar input_audio_buffer.append.
5. Confirmar el turno con input_audio_buffer.commit si controla los turnos manualmente.
6. Crear respuesta con response.create.
Ejemplo de envío de un fragmento:
function sendAudioChunk(pcm16Buffer) {
ws.send(JSON.stringify({
type: "input_audio_buffer.append",
audio: pcm16Buffer.toString("base64"),
}));
}
Si no usa VAD del servidor, cierre el turno manualmente:
ws.send(JSON.stringify({
type: "input_audio_buffer.commit"
}));
ws.send(JSON.stringify({
type: "response.create"
}));
Voces
GPT-Realtime-2 incluye dos voces nuevas:
- Cedar: voz masculina cálida de rango medio. Buena opción predeterminada para agentes generales.
- Marin: voz femenina brillante y clara. Útil para traducción y anuncios.
También siguen disponibles:
alloy
ash
ballad
coral
echo
sage
shimmer
verse
Para cambiar la voz durante una sesión:
ws.send(JSON.stringify({
type: "session.update",
session: {
voice: "marin"
}
}));
Entrada de imagen
Puede adjuntar una imagen en cualquier turno del usuario.
Ejemplo:
ws.send(JSON.stringify({
type: "conversation.item.create",
item: {
type: "message",
role: "user",
content: [
{
type: "input_image",
image_url: "https://example.com/screenshot.png"
},
{
type: "input_text",
text: "What does this error mean?"
}
],
},
}));
ws.send(JSON.stringify({
type: "response.create"
}));
Patrones comunes:
- QA por voz: un tester muestra una UI con error y el agente dicta el reporte.
- Soporte en campo: un técnico envía una foto de un panel o equipo.
- Accesibilidad: el agente describe una pantalla durante una llamada.
Para más detalle sobre imágenes, consulte Cómo usar la API de GPT-Image-2.
Llamada a funciones y MCP
GPT-Realtime-2 admite herramientas de función y servidores MCP remotos en la misma sesión.
Llamada a funciones estándar
El flujo es:
1. Declare herramientas en session.update.
2. El modelo emite argumentos de llamada.
3. Su aplicación ejecuta la función.
4. Usted devuelve function_call_output.
5. El modelo continúa la conversación.
Ejemplo de herramienta:
ws.send(JSON.stringify({
type: "session.update",
session: {
tools: [
{
type: "function",
name: "lookup_account",
description: "Busca información básica de una cuenta de usuario.",
parameters: {
type: "object",
properties: {
account_id: {
type: "string"
}
},
required: ["account_id"]
}
}
]
}
}));
GPT-Realtime-2 puede ejecutar llamadas en paralelo y narrar el progreso mientras espera resultados.
Servidores MCP remotos
También puede configurar un servidor MCP remoto:
ws.send(JSON.stringify({
type: "session.update",
session: {
tools: [{
type: "mcp",
server_url: "https://mcp.example.com/sse",
allowed_tools: ["lookup_account", "list_transactions"],
}],
},
}));
Esto reduce la lógica que debe mantener en su cliente WebSocket, especialmente si su agente usa muchas herramientas.
Para pruebas de MCP, consulte pruebas de servidor MCP en Apidog.
Llamadas telefónicas SIP
GPT-Realtime-2 también puede recibir llamadas telefónicas reales.
Flujo general:
1. Configure su tronco SIP hacia la puerta de enlace SIP de OpenAI.
2. Una llamada entrante crea un call_id.
3. Su aplicación abre una conexión:
wss://api.openai.com/v1/realtime?call_id={call_id}
4. El modelo procesa audio telefónico y responde en voz.
El modelo acepta G.711 mu-law y A-law directamente, por lo que no necesita transcodificación adicional en muchos sistemas telefónicos.
Esto es especialmente útil para centros de llamadas, donde el agente suele necesitar:
- responder en tiempo real,
- consultar herramientas,
- recuperar datos de cuenta,
- transferir o escalar casos,
- mantener contexto durante una llamada larga.
Niveles de razonamiento
Los niveles controlan la relación entre latencia y calidad:
| Nivel | Caso de uso | Costo de latencia aprox. |
|---|---|---|
minimal |
Respuestas simples de sí/no | ninguno |
low |
Soporte general y conversaciones diarias | pequeño |
medium |
Desambiguación y herramientas complejas | moderado |
high |
Razonamiento multi-paso o revisión de código por voz | alto |
xhigh |
Preguntas analíticas difíciles y benchmarks | más alto |
Recomendación práctica:
Empiece con low.
Mida latencia, calidad y tasa de resolución.
Suba a medium o high solo en flujos donde low falle.
Probar la API de Realtime en Apidog
Las sesiones WebSocket son difíciles de depurar porque tienen estado. Con Apidog puede guardar y reproducir una sesión completa.
Flujo recomendado:
- Cree una nueva solicitud WebSocket.
- Use la URL:
wss://api.openai.com/v1/realtime?model=gpt-realtime-2
- Configure headers:
Authorization: Bearer {{OPENAI_API_KEY}}
OpenAI-Beta: realtime=v1
- Guarde un mensaje
session.update. - Añada mensajes
input_audio_buffer.appendyresponse.create. - Ejecute la sesión y capture los eventos del servidor.
- Compare ejecuciones cambiando
reasoning.effort,voiceo herramientas.
Descargue Apidog, cree una solicitud WebSocket y guarde su token en un entorno. Puede usar variables como:
{{OPENAI_API_KEY}}
{{voice}}
{{reasoning_effort}}
Esto facilita reproducir pruebas sin reescribir JSON en cada ejecución.
Para comparar con otro modelo multimodal rápido, consulte Cómo usar la API de Gemini 3 Flash Preview.
Preguntas frecuentes
¿Qué ID de modelo debo usar?
Use:
gpt-realtime-2
El modelo anterior sigue disponible como:
gpt-realtime
También existe la versión ligera:
gpt-realtime-2-mini
¿Puedo enviar audio mientras el modelo todavía habla?
Sí. La API de Realtime usa VAD del lado del servidor por defecto, por lo que el modelo puede interrumpirse cuando el usuario empieza a hablar.
También puede desactivar VAD y controlar los límites de turno desde el cliente.
¿El contexto de 128k incluye audio?
Sí. El audio se tokeniza. Un segundo de audio equivale aproximadamente a 50 tokens, según el formato.
En llamadas largas, mida el uso real antes de asumir que 128k será suficiente.
¿Se admite fine-tuning?
Todavía no. Según la tarjeta del modelo, GPT-Realtime-2 aún no admite fine-tuning, salidas predichas ni streaming de texto en Chat Completions.
El punto final Realtime transmite audio de forma nativa.
¿Cómo se compara con GPT-5.5 más TTS?
GPT-5.5 con TTS no ofrece razonamiento de voz de extremo a extremo.
Un modelo voz a voz puede reaccionar a tono, vacilación, énfasis e interrupciones. Para agentes que deben responder a cómo habla el usuario, GPT-Realtime-2 es más adecuado.
Para razonamiento textual, consulte Cómo usar la API de GPT-5.5.
¿Qué límites de tasa aplican?
El Nivel 1 empieza en 40,000 tokens por minuto y escala hasta 15M TPM en el Nivel 5.
Los límites son por modelo, por lo que la cuota existente de GPT-5 no se transfiere automáticamente.
Resumen
GPT-Realtime-2 permite construir agentes de voz con contexto largo, razonamiento de clase GPT-5, entrada de imagen, herramientas, MCP y soporte SIP dentro de una sesión WebSocket.
Ruta práctica para empezar:
- Cree una conexión WebSocket a
gpt-realtime-2. - Configure
session.updatecon voz, instrucciones, formato de audio yreasoning.effort. - Empiece con
low. - Añada herramientas solo cuando tenga un flujo claro.
- Use Apidog para reproducir sesiones, capturar eventos y comparar cambios.
- Suba el razonamiento únicamente cuando mida una brecha de calidad.



Top comments (0)