GPT Realtime es el primer modelo realtime de OpenAI en disponibilidad general: un único modelo de voz a voz que escucha y responde directamente con audio natural y expresivo, en lugar de encadenar modelos separados de transcripción y síntesis.
- Entrada
- audio texto $4/M
- Salida
- audio texto $16/M
- Entrada de audio
- $32/M
- Salida de audio
- $64/M
- Lectura de caché
- $0.4/M
- Corte de conocimiento
- 2023-10
Benchmarks
GPT Realtime: 8 publicados, pero ningún benchmark compartido con suficientes modelos para comparar.
El precio en contexto
Posición del precio entre 6 modelos comparables
La barra muestra dónde queda el precio de este modelo entre todos los modelos del mismo tipo en Synthorai. En cada extremo se nombra el más barato y el más caro. Son tarifas base; los descuentos por lote, región y escritura en caché están en la página de precios.
Especificaciones y límites
Tokens
| Ventana de contexto (especificación del proveedor) | 32.000 |
|---|---|
| Salida máxima (especificación del proveedor) | 4096 |
| Corte de conocimiento | 2023-10 |
Caché de prompts
| Modo | automático |
|---|---|
| Prefijo mín. | 1024 |
| Duración | 5-10 min, hasta 1 hora |
Tiempo real
| Sesión | Voz a voz nativa sobre WebSocket · llamada a funciones · contexto de 32K |
|---|
Modelo
| Modalidades | audio + texto → audio + texto |
|---|
- Primer modelo realtime de OpenAI en disponibilidad general (instantánea gpt-realtime-2025-08-28): voz a voz nativa con llamada a funciones
- contexto de 32k
Use GPT Realtime en 30 segundos
Compatible con OpenAI Realtime: conéctate por WebSocket, audio de entrada y de salida. WS /v1/realtime
import asyncio, base64, json, websockets
URL = "wss://synthorai.io/v1/realtime?model=gpt-realtime"
# Send ONLY the Authorization header - the beta protocol is retired.
HEADERS = {"Authorization": "Bearer sk-syn-..."}
async def main():
async with websockets.connect(URL, additional_headers=HEADERS) as ws:
# 1) configure the speech-to-speech session
await ws.send(json.dumps({
"type": "session.update",
"session": {
"type": "realtime",
"output_modalities": ["audio"],
"audio": {"output": {"voice": "alloy"}},
},
}))
# 2) send input audio (base64 PCM16), then request a spoken reply
await ws.send(json.dumps({"type": "input_audio_buffer.append", "audio": pcm16_b64}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
await ws.send(json.dumps({"type": "response.create"}))
# 3) stream the model's audio (and text) back
async for raw in ws:
ev = json.loads(raw)
if ev["type"] == "response.audio.delta":
play(base64.b64decode(ev["delta"])) # audio out
elif ev["type"] == "response.done":
break
asyncio.run(main())import WebSocket from "ws";
const ws = new WebSocket("wss://synthorai.io/v1/realtime?model=gpt-realtime", {
// Send ONLY the Authorization header — the beta protocol is retired.
headers: { Authorization: "Bearer sk-syn-..." },
});
ws.on("open", () => {
// configure the speech-to-speech session
ws.send(JSON.stringify({ type: "session.update", session: {
type: "realtime", output_modalities: ["audio"], audio: { output: { voice: "alloy" } },
} }));
// send input audio (base64 PCM16), then request a spoken reply
ws.send(JSON.stringify({ type: "input_audio_buffer.append", audio: pcm16Base64 }));
ws.send(JSON.stringify({ type: "input_audio_buffer.commit" }));
ws.send(JSON.stringify({ type: "response.create" }));
});
ws.on("message", (raw) => {
const ev = JSON.parse(raw.toString());
if (ev.type === "response.audio.delta") playAudio(Buffer.from(ev.delta, "base64")); // audio out
else if (ev.type === "response.done") ws.close();
});# Realtime is a WebSocket protocol - use a WS client such as websocat.
# Each line below is one OpenAI Realtime event (JSON) sent to the session.
websocat -H 'Authorization: Bearer sk-syn-...' \
'wss://synthorai.io/v1/realtime?model=gpt-realtime' <<'EOF'
{"type":"session.update","session":{"type":"realtime","output_modalities":["audio"],"audio":{"output":{"voice":"alloy"}}}}
{"type":"input_audio_buffer.append","audio":"<base64-pcm16>"}
{"type":"input_audio_buffer.commit"}
{"type":"response.create"}
EOF
# Responses stream back as response.audio.delta (base64 audio out) … response.donepackage main
import (
"net/http"
"github.com/gorilla/websocket"
)
func main() {
h := http.Header{}
h.Set("Authorization", "Bearer sk-syn-...")
// Send ONLY the Authorization header — the beta protocol is retired.
c, _, err := websocket.DefaultDialer.Dial("wss://synthorai.io/v1/realtime?model=gpt-realtime", h)
if err != nil {
panic(err)
}
defer c.Close()
// configure the speech-to-speech session, send audio, request a spoken reply
c.WriteJSON(map[string]any{"type": "session.update", "session": map[string]any{
"type": "realtime", "output_modalities": []string{"audio"},
"audio": map[string]any{"output": map[string]any{"voice": "alloy"}}}})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.append", "audio": pcm16B64})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.commit"})
c.WriteJSON(map[string]any{"type": "response.create"})
for {
var ev struct {
Type string `json:"type"`
Delta string `json:"delta"`
}
if err := c.ReadJSON(&ev); err != nil {
return
}
if ev.Type == "response.audio.delta" {
playAudio(ev.Delta) // base64 audio out
} else if ev.Type == "response.done" {
return
}
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.WebSocket;
import java.util.concurrent.CompletionStage;
// JDK built-in WebSocket — no extra dependency needed.
WebSocket ws = HttpClient.newHttpClient().newWebSocketBuilder()
.header("Authorization", "Bearer sk-syn-...")
// Send ONLY the Authorization header — the beta protocol is retired.
.buildAsync(URI.create("wss://synthorai.io/v1/realtime?model=gpt-realtime"), new WebSocket.Listener() {
public CompletionStage<?> onText(WebSocket w, CharSequence data, boolean last) {
// handle response.audio.delta (base64 audio out) / response.done here
w.request(1);
return null;
}
}).join();
// configure the session, send input audio, then request a spoken reply
ws.sendText("{\"type\":\"session.update\",\"session\":{\"type\":\"realtime\",\"output_modalities\":[\"audio\"],\"audio\":{\"output\":{\"voice\":\"alloy\"}}}}", true);
ws.sendText("{\"type\":\"input_audio_buffer.append\",\"audio\":\"<base64-pcm16>\"}", true);
ws.sendText("{\"type\":\"input_audio_buffer.commit\"}", true);
ws.sendText("{\"type\":\"response.create\"}", true);Acerca de GPT Realtime
- Lleva una ventana de contexto de 32K tokens con 4096 tokens de salida máxima, admite llamada a funciones para flujos de agentes de voz y acepta audio o texto de entrada con audio y texto de salida; el audio y el texto se facturan a tarifas por token separadas, con entrada en caché con descuento.
- Las sesiones pueden conducirse por WebRTC para clientes de navegador y móviles, por WebSocket cuando un servidor ya retiene el flujo de audio, o por SIP para agentes de telefonía, con detección de actividad de voz en el servidor que fragmenta el habla y trunca el audio no reproducido cuando quien llama interrumpe.
- La página del modelo también lista la entrada de imagen junto al texto y el audio, y las voces se eligen por sesión del conjunto publicado por OpenAI, con la salvedad de que una voz no puede cambiarse una vez que la sesión ha emitido audio.
- No tiene control del esfuerzo de razonamiento (eso llega con la generación 2.1) y su fecha de corte de conocimiento es octubre de 2023.
- OpenAI ha anunciado desde entonces su obsolescencia, con apagado previsto para enero de 2027 y GPT Realtime 2.1 designado como destino de migración, así que el trabajo nuevo de voz corresponde a 2.1 mientras las integraciones existentes todavía tienen margen.
- Sigue disponible como la instantánea GA original de la familia realtime.
- Synthorai sirve GPT Realtime a través del endpoint WebSocket /v1/realtime compatible con OpenAI, de modo que los clientes del SDK oficial de Realtime se conectan sin cambios.
Preguntas frecuentes
¿Se puede probar gratis la API de GPT Realtime?
GPT Realtime está actualmente en beta por invitación: el acceso se otorga por solicitud, no por registro abierto. Solicítelo desde la consola de Synthorai; una vez aprobado, se aplica la tarifa estándar de pago por uso, sin suscripción.
¿En qué destaca GPT Realtime?
Voz a voz en un solo modelo, sin cadena de transcripción; audio natural expresivo con llamadas a funciones; instantánea GA original de la familia realtime. Consulte la sección Acerca de para el panorama completo según las notas de lanzamiento del propio proveedor.
¿Cuánto cuesta GPT Realtime?
GPT Realtime cuesta $4 por millón de tokens de entrada y $16 por millón de tokens de salida en Synthorai: el precio de lista del proveedor, sin margen de plataforma. Los tokens de entrada en caché se facturan a $0.4/M.
¿Cómo se llama a la API de GPT Realtime?
GPT Realtime es un modelo speech-to-speech: conéctate por WebSocket a wss://synthorai.io/v1/realtime?model=gpt-realtime con el SDK de OpenAI Realtime (o un WebSocket sin procesar) y transmite audio de entrada y de salida. No es una subida de archivo POST /v1/audio/transcriptions. Autentícate con tu clave sk-syn y envía solo la cabecera Authorization (el protocolo beta está retirado).
¿Cómo obtengo acceso a GPT Realtime?
GPT Realtime está en beta por invitación: solicite acceso desde la consola de Synthorai. Una vez aprobado, funciona como cualquier otro modelo: apunte su SDK de OpenAI a base_url="https://synthorai.io/v1" y configure model="gpt-realtime".
Modelos relacionados
Comparar
Cada valor de esta página está transcrito de la documentación del proveedor, enlazada arriba, y lleva la fecha en que se comprobó. Los precios se comparan en todo el catálogo; los valores de especificación que los proveedores definen de forma distinta se muestran indicando la diferencia en lugar de representarse en un gráfico. Nada aquí lo medimos nosotros, y nada se puntúa.