GPT Realtime 2.1 es el buque insignia de la familia realtime de voz a voz de OpenAI, anunciado como un modelo de razonamiento realtime actualizado con mejor reconocimiento alfanumérico, mejor gestión del silencio y del ruido y mejor comportamiento ante interrupciones.
- Entrada
- audio texto $4/M
- Salida
- audio texto $24/M
- Entrada de audio
- $32/M
- Salida de audio
- $64/M
- Lectura de caché
- $0.4/M
- Corte de conocimiento
- 2024-09
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) | 128.000 |
|---|---|
| Salida máxima (especificación del proveedor) | 32.000 |
| Corte de conocimiento | 2024-09 |
Caché de prompts
| Modo | automático |
|---|---|
| Prefijo mín. | 1024 |
| Duración | 5-10 min, hasta 1 hora |
Tiempo real
| Sesión |
|
|---|
Modelo
| Modalidades | audio + texto → audio + texto |
|---|
- Modelo realtime de razonamiento actualizado, con mejor reconocimiento alfanumérico, mejor gestión del silencio y del ruido y mejor comportamiento ante interrupciones
- esfuerzo de razonamiento configurable y uso de herramientas para flujos de agentes de voz
- contexto de 128k
Use GPT Realtime 2.1 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-2.1"
# 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-2.1", {
// 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-2.1' <<'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-2.1", 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-2.1"), 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 2.1
- Amplía la familia a una ventana de contexto de 128K tokens con 32K tokens de salida máxima, y admite esfuerzo de razonamiento configurable, seguimiento de instrucciones y uso de herramientas para flujos complejos de agentes de voz.
- Los tokens de audio y de texto se facturan a tarifas por token separadas, con entrada en caché con descuento.
- La guía de realtime de OpenAI lo señala como el modelo a elegir al construir un agente de voz de baja latencia, y recomienda empezar con esfuerzo de razonamiento low para la mayoría de los agentes de producción, y subirlo solo donde la tarea justifique la latencia añadida.
- Las sesiones se ejecutan sobre WebRTC, WebSocket o SIP, y los turnos de habla pueden usar detección de actividad de voz basada en el silencio o un detector semántico cuya configuración de impaciencia decide con cuánta paciencia espera a que el hablante termine.
- La gestión de interrupciones forma parte del protocolo: con la detección activada el servidor trunca el audio no reproducido, y se espera que los clientes WebSocket detengan la reproducción e informen de cuánto audio llegó realmente al oyente.
- Las herramientas pueden declararse por sesión o por respuesta, y las respuestas pueden generarse fuera de la conversación principal cuando una tarea lateral no deba contaminar la transcripción.
- En Synthorai se sirve a través del endpoint WebSocket /v1/realtime compatible con OpenAI, de modo que las aplicaciones construidas sobre los SDK oficiales de Realtime funcionan sin cambios.
Preguntas frecuentes
¿Se puede probar gratis la API de GPT Realtime 2.1?
GPT Realtime 2.1 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 2.1?
Nivel realtime insignia para agentes de voz en producción; mejor interrupción, ruido y reconocimiento alfanumérico; esfuerzo de razonamiento configurable con herramientas. Consulte la sección Acerca de para el panorama completo según las notas de lanzamiento del propio proveedor.
¿Cuánto cuesta GPT Realtime 2.1?
GPT Realtime 2.1 cuesta $4 por millón de tokens de entrada y $24 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 2.1?
GPT Realtime 2.1 es un modelo speech-to-speech: conéctate por WebSocket a wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1 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 2.1?
GPT Realtime 2.1 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-2.1".
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.