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
Usa GPT Realtime 2.1 en 30 segundos
Compatible con OpenAI Realtime: conéctate por WebSocket y envía y recibe audio en streaming. 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á ahora mismo en beta por invitación: el acceso se concede previa solicitud, no con el registro abierto. Pídelo desde la consola de Synthorai; una vez aprobado, se aplican los precios normales 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. En la sección «Acerca de» tienes la visión completa, 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. Es el precio de lista del proveedor, sin recargo de plataforma. Los tokens de entrada en caché se facturan a $0.4/M.
¿Cómo me conecto a la API de GPT Realtime 2.1?
GPT Realtime 2.1 es un modelo de voz a voz: conéctate por WebSocket a wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1 con el SDK de OpenAI Realtime (o con un WebSocket directo) y envía y recibe audio en streaming. No es una subida de archivo con 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: solicita acceso desde la consola de Synthorai. Una vez aprobado, funciona como cualquier otro modelo: apunta tu SDK de OpenAI a base_url="https://synthorai.io/v1" y pon model="gpt-realtime-2.1".
Modelos relacionados
Comparar
Todos los valores de esta página están transcritos de la documentación del propio proveedor, enlazada arriba, e indican la fecha en que se comprobaron. Los precios se comparan con los de todo el catálogo; cuando los proveedores definen una especificación de forma distinta, se muestra el valor indicando la diferencia en lugar de llevarlo a un gráfico. Aquí no hay mediciones nuestras ni puntuaciones.