DEV Community

Cover image for Qué es GPT-Realtime-2 y Cómo Usar la API de GPT-Realtime-2
Roobia
Roobia

Posted on • Originally published at apidog.com

Qué es GPT-Realtime-2 y Cómo Usar la API de GPT-Realtime-2

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.

Prueba Apidog hoy

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, high y xhigh. El predeterminado es low.
  • 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
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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:

  1. Preámbulos de voz

    El modelo puede decir frases como “déjame verificar eso” mientras razona o espera resultados de herramientas.

  2. Llamadas de herramientas en paralelo

    Puede ejecutar varias funciones al mismo tiempo y narrar el progreso.

  3. Recuperación más robusta

    Maneja mejor turnos ambiguos, interrupciones o solicitudes incompletas.

  4. 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
Enter fullscreen mode Exit fullscreen mode

Para agentes de voz interactivos, use WebSocket:

wss://api.openai.com/v1/realtime?model=gpt-realtime-2
Enter fullscreen mode Exit fullscreen mode

Autenticación:

Authorization: Bearer $OPENAI_API_KEY
OpenAI-Beta: realtime=v1
Enter fullscreen mode Exit fullscreen mode

Configure la variable de entorno:

export OPENAI_API_KEY="sk-proj-..."
Enter fullscreen mode Exit fullscreen mode

Conexión por WebSocket

Instale ws en Node.js:

npm install ws
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

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_vad para detección de turnos del lado del servidor.

Formato recomendado:

PCM16 a 24 kHz
Enter fullscreen mode Exit fullscreen mode

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"
    }
  }
}));
Enter fullscreen mode Exit fullscreen mode

Para cambiar el nivel de razonamiento durante una sesión:

ws.send(JSON.stringify({
  type: "session.update",
  session: {
    reasoning: {
      effort: "medium"
    }
  }
}));
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

Ejemplo de envío de un fragmento:

function sendAudioChunk(pcm16Buffer) {
  ws.send(JSON.stringify({
    type: "input_audio_buffer.append",
    audio: pcm16Buffer.toString("base64"),
  }));
}
Enter fullscreen mode Exit fullscreen mode

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"
}));
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Para cambiar la voz durante una sesión:

ws.send(JSON.stringify({
  type: "session.update",
  session: {
    voice: "marin"
  }
}));
Enter fullscreen mode Exit fullscreen mode

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"
}));
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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"]
        }
      }
    ]
  }
}));
Enter fullscreen mode Exit fullscreen mode

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"],
    }],
  },
}));
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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:

  1. Cree una nueva solicitud WebSocket.
  2. Use la URL:
   wss://api.openai.com/v1/realtime?model=gpt-realtime-2
Enter fullscreen mode Exit fullscreen mode
  1. Configure headers:
   Authorization: Bearer {{OPENAI_API_KEY}}
   OpenAI-Beta: realtime=v1
Enter fullscreen mode Exit fullscreen mode
  1. Guarde un mensaje session.update.
  2. Añada mensajes input_audio_buffer.append y response.create.
  3. Ejecute la sesión y capture los eventos del servidor.
  4. Compare ejecuciones cambiando reasoning.effort, voice o herramientas.

Descargue Apidog, cree una solicitud WebSocket y guarde su token en un entorno. Puede usar variables como:

{{OPENAI_API_KEY}}
{{voice}}
{{reasoning_effort}}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

El modelo anterior sigue disponible como:

gpt-realtime
Enter fullscreen mode Exit fullscreen mode

También existe la versión ligera:

gpt-realtime-2-mini
Enter fullscreen mode Exit fullscreen mode

¿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:

  1. Cree una conexión WebSocket a gpt-realtime-2.
  2. Configure session.update con voz, instrucciones, formato de audio y reasoning.effort.
  3. Empiece con low.
  4. Añada herramientas solo cuando tenga un flujo claro.
  5. Use Apidog para reproducir sesiones, capturar eventos y comparar cambios.
  6. Suba el razonamiento únicamente cuando mida una brecha de calidad.

Top comments (0)