🎁 Neu Kostenlos registrieren, 10 Aufrufe gratis. Bis zu 1 $, ohne Karte.

Echtzeit-Sprache

Erstellen Sie mit gpt-realtime bidirektionale Sprach-Agenten — das Modell hört gesprochene Sprache und antwortet in Echtzeit per Sprache (wie bei einem Telefonat), über eine WebSocket-Verbindung zu /v1/realtime. Ihr vorhandenes OpenAI Realtime SDK funktioniert unverändert; richten Sie es einfach auf unseren Endpunkt und verwenden Sie Ihren Synthorai-Schlüssel.

Sprache-zu-Sprache, keine Transkription
Diese Seite behandelt Sprache-zu-Sprache: Sprache rein, Sprache raus. Verbinden Sie sich mit ?model=gpt-realtime.
Wenn Sie Audio nur in Text umwandeln müssen (ohne gesprochene Antwort), verwenden Sie stattdessen Sprache-zu-Text — das ist eine andere Funktion.

Endpunkt & Authentifizierung

Öffnen Sie einen WebSocket zu /v1/realtime mit Ihrem Modell im Query-String. Die Authentifizierung läuft vor dem Upgrade, sodass ein abgelehnter Schlüssel niemals einen Socket öffnet.

# WebSocket, server-side (Node / Python / Go — anything that can set headers)
GET wss://synthorai.io/v1/realtime?model=gpt-realtime
Authorization: Bearer $YOUR_KEY
# Send only the Authorization header. Do NOT send OpenAI-Beta: realtime=v1
# (the beta protocol is retired; it makes the upstream reject the session).
  • Ihr sk-syn-Schlüssel verlässt niemals unser Gateway — die Upstream-Zugangsdaten werden auf unserer Seite eingesetzt.
  • Für serverseitige Clients konzipiert (Node, Python, Go — alles, was einen Authorization-Header setzen kann). Kurzlebige Browser-Token werden nicht unterstützt.
  • Nur WebSocket. SIP (Telefonie) und WebRTC verbinden den Client direkt mit dem Upstream und werden nicht weitergeleitet — überbrücken Sie Telefonie-Audio stattdessen in einen WebSocket.

Die Sitzung konfigurieren

Nachdem die Verbindung geöffnet wurde, erhalten Sie session.created. Senden Sie ein session.update, um Stimme, Modalitäten, Audioformat und Turn-Erkennung festzulegen. Verwenden Sie das GA-Format (session.type: "realtime", Audio unter audio.input / audio.output) — das alte flache Beta-Format ist eingestellt.

{
  "type": "session.update",
  "session": {
    "type": "realtime",
    "output_modalities": ["audio"],
    "instructions": "You are a concise customer-support agent.",
    "audio": {
      "input":  { "format": { "type": "audio/pcm", "rate": 24000 },
                  "turn_detection": { "type": "server_vad" } },
      "output": { "format": { "type": "audio/pcm", "rate": 24000 } }
    }
  }
}

Ein minimaler Gesprächs-Turn:

  1. Streamen Sie Mikrofon-Audio mit input_audio_buffer.append (base64 PCM).
  2. Bestätigen Sie den Turn mit input_audio_buffer.commit, dann response.create.
  3. Empfangen Sie Audio-Deltas (response.output_audio.delta) und die Text-Transkription, dann response.done mit der Nutzung.
  4. Mit aktiviertem server VAD erkennt das Modell die Turns für Sie; dieselben Events fließen ohne manuelles Commit.

Tools, Funktionsaufrufe & Wissen

Deklarieren Sie Funktionen in session.update. Das Modell ruft sie mitten im Gespräch auf — so binden Sie Bestellabfragen, Ticketing oder jedes Geschäftssystem an. Geben Sie das Ergebnis zurück, und das Modell spricht damit weiter:

// 1. Declare tools in session.update: "tools": [{ "type": "function", ... }]
// 2. The model emits a function_call in response.done.
// 3. Return the result, then ask the model to continue:
{ "type": "conversation.item.create",
  "item": { "type": "function_call_output",
            "call_id": "call_abc",
            "output": "{\"status\":\"shipped\"}" } }
{ "type": "response.create" }

Auch entfernte MCP-Server werden unterstützt ("type": "mcp") — der Upstream verbindet sich direkt mit dem MCP-Server. Für eine Wissensdatenbank fügen Sie Fakten über instructions, ein Funktions-Tool auf Basis Ihres RAG oder MCP ein; das im Modell eingebaute Wissen ist keine zuverlässige Quelle für Geschäftsfakten.

Abrechnung

Abgerechnet pro response.done-Nutzung zum offiziellen Listenpreis (kein Aufschlag) — Audio und Text, Eingabe und Ausgabe, mit einem Tarif für gecachte Eingabe. Jede Sitzung schreibt am Ende eine Hauptbuchzeile.

TypEingabe / 1M TokensAusgabe / 1M Tokens
Audio$32 / 1M$64 / 1M
Text$4 / 1M$16 / 1M
Cache-Eingabe$0.40 / 1M

Die angezeigten Preise gelten für gpt-realtime / gpt-realtime-2.1; gpt-realtime-2.1-mini kostet etwa ein Drittel. Audio-Eingabe sind ~10 tokens/second, Ausgabe ~20 tokens/second. Wenn Sie den Gesprächsverlauf ausschließlich anfügend halten, kann der Cache-Tarif ($0.40/1M) den Großteil eines langen Anrufs auffangen.

Sitzungsdauer & Hot-Switch

!

Eine einzelne Realtime-Sitzung dauert höchstens 60 minutes — das ist ein Limit der OpenAI-Plattform, nicht unseres. Der Upstream schließt die Verbindung bei diesem Limit.

  • Für Anrufe, die lange dauern können, führen Sie den Hot-Switch deutlich vor dem Limit durch (z. B. bei 50 minutes): Öffnen Sie eine neue Sitzung und spielen Sie das Gespräch als Text mit conversation.item.create erneut ein (Nutzer als input_text, Assistent als output_text — Assistenten-Audio kann nicht erneut abgespielt werden).
  • Es gibt keine Sitzungswiederaufnahme: Wenn der WebSocket abbricht, geht der Upstream-Zustand verloren. Die Wiederverbindung nutzt denselben Text-Replay-Pfad, bauen Sie die Wiederverbindung also von Anfang an ein.
  • Der Kontext beträgt 128K für gpt-realtime-2.1 / -mini (≈3.5 hours Eingabe-Audio); das ältere gpt-realtime hat 32K — verwenden Sie es nicht für lange Anrufe.

Zugang

gpt-realtime befindet sich in einer Beta auf Einladung. Es erscheint im Katalog und in der Preisliste, aber die Nutzung erfordert, dass Ihrem Workspace der Zugriff gewährt wird — kontaktieren Sie uns, um es zu aktivieren.