01 Qué es y en qué se diferencia
Los asistentes de voz clásicos encadenan tres piezas: transcriben lo que dices, un modelo de texto responde y un sintetizador lo lee. Cada salto añade retraso y se pierden el tono y las pausas. gpt-realtime-2 es un único modelo que recibe audio y devuelve audio, con razonamiento configurable, mejor seguimiento de instrucciones y llamadas a herramientas durante la conversación. Se usa a través de la Realtime API de OpenAI.
OpenAI ya ha publicado una revisión, gpt-realtime-2.1, que mejora el reconocimiento de números y códigos, el ruido de fondo y las interrupciones. Lo explicado aquí vale para ambas; revisa la lista de modelos antes de empezar y elige la más reciente.
gpt-realtime-2
Conversación de voz a voz con herramientas. Para agentes de atención al cliente, reservas o asistentes internos.
gpt-realtime-translate
Traducción de voz a voz en streaming con un endpoint propio. Se cobra por duración del audio.
gpt-realtime-whisper
Transcripción en directo con baja latencia, para subtítulos o actas de reuniones. También se cobra por duración.
02 Pruébalo antes de construir nada
-
1
Activa la facturación
En la plataforma de OpenAI, añade un método de pago y pon un límite mensual bajo mientras experimentas. El audio consume tokens bastante más caros que el texto.
-
2
Abre el playground de audio en tiempo real
Desde el panel de la plataforma, en el apartado de audio, elige el modo Realtime y selecciona gpt-realtime-2 en el desplegable de modelo.
-
3
Escribe unas instrucciones
Pega el papel del asistente (ver el apartado de personalidad) y elige una voz. OpenAI recomienda marin o cedar por calidad.
-
4
Habla y evalúa
Concede el micrófono, interrúmpele a mitad de frase, dale un número de pedido o un correo y comprueba si lo entiende y si suena natural en español.
03 Cómo se monta una app propia
La regla de oro: tu clave de API nunca llega al navegador. El flujo recomendado por OpenAI es este:
-
1
Servidor: clave efímera
Un endpoint de tu backend llama a POST /v1/realtime/client_secrets con tu clave estándar y la configuración de sesión (modelo, voz, instrucciones, herramientas). Devuelve al navegador una clave temporal.
-
2
Navegador: conexión WebRTC
El cliente pide micrófono, crea la conexión WebRTC y negocia con /v1/realtime/calls usando la clave efímera. El audio de respuesta se reproduce directamente.
-
3
Canal de datos: eventos
Por un canal de datos llegan las transcripciones, las llamadas a herramientas y los avisos de aprobación, y desde él puedes actualizar la sesión.
-
4
Identificador de seguridad
Si tus usuarios tienen cuenta, envía en la petición del servidor la cabecera OpenAI-Safety-Identifier con un identificador estable y anonimizado, por ejemplo un hash del ID interno.
Si prefieres no gestionar WebRTC a mano, el Agents SDK de OpenAI para JavaScript (paquete @openai/agents, con RealtimeAgent y RealtimeSession) encapsula la conexión, las herramientas y las interrupciones. El repositorio openai-realtime-agents contiene demos completas de agentes de voz que sirven de referencia.
npm install @openai/agents zod
04 Encargar el prototipo a Claude Code
Abre Claude Code en una carpeta vacía y dale un encargo cerrado. Pídele que consulte la documentación oficial de la Realtime API antes de escribir código, porque la interfaz cambió al pasar de beta a versión estable y muchos ejemplos antiguos ya no funcionan.
Crea en esta carpeta un prototipo web de asistente de voz con la Realtime API de OpenAI y el modelo gpt-realtime-2 (o la revisión más reciente que encuentres en la documentación). Antes de programar, lee la guía oficial de WebRTC de la Realtime API y usa la interfaz estable, no la beta. Requisitos: 1) Next.js con TypeScript. 2) Una ruta de servidor que cree una clave efímera con POST /v1/realtime/client_secrets usando OPENAI_API_KEY desde variables de entorno; la clave real nunca debe llegar al cliente. 3) Una página con selector de voz (marin por defecto), un campo de instrucciones y un botón para iniciar y cortar la llamada. 4) Indicador de estado: conectando, escuchando, hablando, error. 5) Transcripción en pantalla de ambos lados. 6) .env.local en .gitignore y un README en español con los pasos para arrancar. Pídeme la clave cuando la necesites, no la inventes. Al acabar, dime el comando y la URL para probarlo.
05 Conectar herramientas con control
| Tipo de herramienta | Quién la ejecuta | Cuándo usarla |
|---|---|---|
| function | Tu aplicación, que devuelve el resultado | Lógica de negocio, acciones con confirmación, sistemas privados |
| mcp con server_url | La propia Realtime API contra un servidor MCP remoto | Consultas a servicios que ya exponen MCP, como un catálogo o una base de conocimiento |
En una herramienta MCP defines server_label, server_url, opcionalmente authorization, la lista allowed_tools y require_approval. Si la aprobación es obligatoria, la API envía un elemento mcp_approval_request y tu cliente debe responder con mcp_approval_response. Una pauta sensata: lecturas sin aprobación, cualquier escritura (crear pedidos, enviar correos, mover citas) con aprobación explícita o, mejor aún, como function que tu app confirma con el usuario.
Al asistente de voz de este proyecto añade dos herramientas. 1) Consulta: un servidor MCP remoto cuya URL y token leerás de MCP_URL y MCP_TOKEN, con allowed_tools limitado a [HERRAMIENTAS DE LECTURA] y sin aprobación. 2) Acción: una herramienta de tipo function llamada [NOMBRE], que antes de ejecutarse muestre en pantalla los datos y espere a que el usuario pulse Confirmar; si cancela, devuelve al modelo que la acción no se ha realizado. Muestra en la interfaz cuándo se está consultando una herramienta. Revisa la guía oficial de Tools and MCP de la Realtime API antes de escribir código y documenta las variables nuevas en el README.
06 Usar Claude como cerebro detrás de la voz
Una arquitectura habitual es dejar a gpt-realtime-2 la conversación (turnos, interrupciones, tono) y delegar las tareas complejas en tu backend mediante una herramienta function. Ese backend puede llamar a la API de Claude para redactar una propuesta, analizar un documento o consultar tu base de datos con más contexto, y devolver un resumen corto que el modelo de voz lee. Así cada modelo hace lo que mejor se le da y la lógica sensible se queda en tu servidor.
En este proyecto, añade una herramienta function llamada consultar_experto que reciba una pregunta en texto. Implementa en el servidor la llamada a la API de Anthropic con la clave ANTHROPIC_API_KEY, con unas instrucciones de sistema que pidan respuestas de máximo tres frases aptas para leer en voz alta. Mientras espera la respuesta, el asistente de voz debe decir una frase breve para que el usuario sepa que está consultando. Gestiona errores y un tiempo máximo de espera, y no envíes datos personales que no sean necesarios.
07 Instrucciones que funcionan en voz
- ✓Frases cortas y una sola pregunta por turno: en voz no se puede releer.
- ✓Indica idioma y variante: «Habla en español de España, con tú».
- ✓Define qué hacer con números, correos y referencias: repetirlos para confirmar.
- ✓Fija límites: qué temas no trata y cuándo derivar a una persona.
- ✓Explica cuándo usar cada herramienta y qué decir mientras espera.
Eres la recepcionista virtual de [NEGOCIO]. Hablas en español de España, con tú, tono cercano y profesional, y frases de menos de 20 palabras. Tu objetivo es resolver dudas de horarios, servicios y precios publicados y tomar nota de solicitudes de cita. No das consejos médicos ni legales. Repite siempre nombres, teléfonos y fechas para confirmarlos. Si la persona está molesta, pide una urgencia o pregunta algo que no sabes, ofrece que la llame un miembro del equipo y toma sus datos. Antes de usar una herramienta, avisa con una frase breve.
Preguntas frecuentes
Se factura por tokens de texto, audio e imagen, y el audio es bastante más caro que el texto. Consulta la página de precios de OpenAI, pon un límite mensual y limita la duración de las llamadas. Los modelos de traducción y transcripción se cobran por duración del audio.
Sí, entiende y habla español con naturalidad. Conviene indicarlo en las instrucciones y probar con nombres, direcciones y números reales de tu negocio antes de ponerlo ante clientes.
La Realtime API admite conexiones por SIP para telefonía además de WebRTC y WebSocket. Para una línea real necesitas un proveedor SIP y revisar la normativa de grabación y aviso al llamante.
Este modelo está diseñado para audio de entrada y salida con baja latencia. Combinarlo con Claude en el backend te da conversación fluida y razonamiento largo donde hace falta.
Solo si las escrituras requieren confirmación. Limita allowed_tools, usa tokens con los permisos mínimos y registra cada acción para poder auditarla.
Sobre el autor
Equipo editorial de appyweb
Marketing, SEO y desarrollo con IA
Especialistas de appyweb en SEO, publicidad, desarrollo web y automatización con IA.