GPT-Live-1-Stimmenagenten: Sitzungen, Delegierungsmodi und tatsächliche Kosten für Telefonleitungen.
Eine praktische Übersicht über OpenAI’s voll-duplex-Stimmmodell: Wie eine Sitzung abläuft, Antworten im Vergleich zur Delegation an den Client, eine detaillierte Kostenschätzung sowie die Fallstricke in den Dokumentationen.
Quellen: How to Use GPT-Live-1: Build a Voice Agent That Listens While It Talks
Jeder, der schon einmal ein Restaurant angerufen hat und auf einen Sprachbot gestoßen ist, kennt diesen Moment. Man sagt etwas, es entsteht eine Pause, und dann beginnt der Bot, die Frage zu beantworten, die man bereits fünf Sekunden zuvor gestellt hat – genau in dem Moment, in dem man versucht, sich selbst zu korrigieren. Die meisten Menschen drücken schließlich 0, um mit einem Menschen zu sprechen.
Dieser unangenehme Rhythmus ist in das übliche Design integriert. Ein klassischer Sprachbot wartet darauf, dass man aufhört zu sprechen, wandelt den Ton in Text um, überlegt, wandelt die Antwort wieder in Sprache um und spielt sie ab. Niemand kann den anderen übertönen.
GPT-Live-1 ist OpenAI’s Versuch, eine andere Form zu schaffen. Es handelt sich um das Modell hinter ChatGPT Voice, das über die API angeboten wird, und es hört zu, während es spricht. Auf dieser Seite wird erläutert, was es von anderen unterscheidet, wie eine Sitzung abläuft, wie es schwierige Fragen an ein Backend-Modell weiterleitet und wie teuer eine kleine Telefonleitung wäre.
Was GPT-Live-1 ist
Es handelt sich um ein Voll-Duplex-Stimmmodell. Voll-Duplex bedeutet, dass beide Seiten gleichzeitig sprechen können, wie bei einem normalen Telefonat. Wenn ein Anrufer einwirft: „Eigentlich sollten vier Personen daran teilnehmen“, stoppt das Modell, passt sich an und setzt dann fort.
Auch die aufwändigen Berechnungen werden von einem anderen Modul übernommen. Immer dann, wenn eine Anfrage echte Anstrengungen erfordert – sei es eine Suche, ein Abfragen im Buchungssystem oder sorgfältiges Denken – wird die Aufgabe an ein separates Backend-Modell weitergeleitet. In den Veröffentlichungen von OpenAI wird eine Abwechslungszeit von etwa 0,8 Sekunden angegeben, was einer Reduzierung gegenüber den etwa 1,4 Sekunden des vorherigen Stimmmodells entspricht. Dies gilt als Angabe des Anbieters.
Die praktische Folge ist, dass Sprache und Denken zu getrennten Aufgaben werden. Die Sprache kümmert sich um das Gespräch, während das Backend für das Denken und die Verarbeitung von Tools zuständig ist.
Delegation: Eine Stimme, die spricht, und ein Gehirn, das denkt
Die Übergabe wird von OpenAI als Delegation bezeichnet. Ständig, in Bruchteilen von Sekunden, entscheidet das Sprachmodell, ob es still bleiben und zuhören, aufhören, sprechen oder eine Aufgabe an den Backend-Server weiterleiten soll. Während diese Aufgabe ausgeführt wird, friert der Anruf nie ein, denn die Stimme kann schnell „Lass mich nachsehen“ sagen und das Gespräch fortsetzen.
Stellen Sie sich vor, ein Anrufer fragt die Warteschlange eines Restaurants, ob um 19:30 Uhr am Freitag ein Tisch für vier frei ist. Das Modell sagt „Lass mich nachsehen“, sendet die Verfügbarkeitsprüfung an den Backend-Server und teilt dem Anrufer das Ergebnis mit, sobald es zurückkommt.
Diese Trennung löst außerdem ein weiteres Problem. Laut der Beschreibung des Modells endet das Wissen des Sprachmodells am 31. Juli 2025, sodass alle aktuellen Informationen ohnehin vom Backend stammen müssen.
Starte einer Sprachsession
Die Verbindungsoptionen sind WebRTC für Browser-Apps, WebSockets für Audio von einem Server sowie SIP-Telefonie für echte Telefonnummern. Unabhängig von der gewählten Option sehen die Ereignisse ähnlich aus, weshalb die folgenden Schritte für alle gelten.
Schritt 1: Die API-Schlüssel auf einem Server speichern
Halten Sie den Schlüssel von den Browsern getrennt. Ihr eigener, vertrauenswürdiger Server erstellt die Sitzung, während der Browser sich nur um Mikrofon und Lautsprecher kümmert. Ein kostenpflichtiges Konto ist erforderlich, da die kostenlose Version nicht unterstützt wird, und die Gebühren sind abhängig von der Anzahl der gleichzeitigen Live-Sitzungen sowie von Ihrem Nutzungsniveau.
Schritt 2: Die Sitzung starten
Sobald die Verbindung hergestellt ist, senden Sie ein einziges session.start-Ereignis, das Ihre Einstellungen enthält.
{
"type": "session.start",
"session": {
"model": "gpt-live-1",
"instructions": "Be concise and ask before taking an external action.",
"audio": { "output": { "voice": "marin" } },
"delegation": { "type": "client" }
}
}
Dieses Ereignis wählt das Modell aus, liefert Anweisungen, wählt eine Stimme aus und bestimmt, wer die Backend-Arbeit übernimmt. Zögern Sie mit dem Sprechen, bis session.started zurückgegeben wird. Sobald die Sitzung beginnt, sind Modell, Anweisungen und Stimme festgelegt, weshalb spätere Regeln über session.instructions.append hinzugefügt werden und nicht den ursprünglichen Text ersetzen.
Schritt 3: Audio in beide Richtungen streamen
Mit WebRTC kümmert sich der Browser um den Audio-Teil. Über WebSockets senden Sie kleine Datenblöcke über die session.input_audio.append-Ereignisse. Das Format ist streng festgelegt: rohes mono 16-Bit PCM, in Base64 kodiert, ohne WAV-Header, bei der bei der Initialisierung konfigurierten Abtastrate (24 kHz ist die Standardwert). Die Stimme des Modells wird auf dieselbe Weise über die session.output_audio.delta-Ereignisse zurückgesendet. Wenn Ihr Quellaudio eine andere Abtastrate verwendet, müssen Sie es selbst umresampeln, da eine Änderung der Format-Einstellung die Bytes nicht konvertiert.
Schritt 4: Transkripte lesen
Der Live-Text für beide Seiten wird über die session.input_transcript.delta und session.output_transcript.delta-Ereignisse übermittelt. Es gibt kein „Turn finished“-Ereignis, da beide Parteien gleichzeitig sprechen können. Falls Ihre Anwendung saubere Sprechabschnitte für Protokolle benötigt, gruppieren Sie die Fragmente auf Ihrer Seite.
Schritt 5: Ordentlich beenden
Senden Sie session.close und lesen Sie weiter, bis session.closed angezeigt wird. Dieses letzte Ereignis enthält die Nutzungszahlen, auf denen Ihnen die Gebühren berechnet werden. Falls die Verbindung bereits vorher abbricht, erhalten Sie keine bestätigte Nutzungsdarstellung, was bei der Abstimmung der Rechnung wichtig ist.
Der Schritt, den die Leute am häufigsten vergessen, ist der vierte: die Erstellung lesbarer Abschnitte aus Transkriptfragmenten.
Übertragung der Arbeit an den Backend
Hier hört GPT-Live-1 auf, eine angenehme Stimme zu sein, und wird zu einem nützlichen Agenten. Beim Start der Sitzung wird einer von zwei Delegierungsmodi ausgewählt, und dieser kann nicht mehr geändert werden. Um den Modus zu wechseln, muss eine neue Sitzung gestartet werden.
Option A: Delegierung der Antworten
Sie geben dem Modell an, auf das die Stimme zugreifen soll, sowie die Tools, die sie verwenden darf. Die Konfiguration befindet sich zusammen mit dem Modellnamen im Sitzungsobjekt.
"delegation": {
"type": "responses",
"responses": {
"model": "gpt-5.5",
"instructions": "Use tools when current information is required.",
"tools": [{ "type": "web_search" }],
"tool_choice": "auto"
}
}
Von da an wird eine vom Anrufer gestellte Frage, die eine Suche erfordert, vom Backend bearbeitet, wobei das Ergebnis in das laufende Gespräch eingeflossen wird. Custom-Funktionen sind anders. Eine Funktion wie check_table wird nicht vom Backend ausgeführt. Ihre Anwendung erhält den Anruf, führt die Funktion aus, gibt das Ergebnis zurück und teilt dem Backend anschließend mit, dass es fortfahren soll.
Stellen Sie sich vor, ein Anrufer fragt, ob am Freitagabend Regen fallen wird, weil die Gruppe vielleicht draußen sitzen möchte. Das Backend führt eine Websuche durch, die Stimme teilt mit, dass nach sechs Uhr leichter Regen erwartet wird, weshalb es drinnen vielleicht sicherer wäre, und der Anrufer muss nicht lange in Stille warten.
Option B: Client-Delegation
Hier ist Ihre eigene Anwendung das Backend. Wenn das Modell Hilfe benötigt, erhalten Sie ein session.delegation.created-Event mit einer ID. Sie erledigen die Arbeit auf Ihre Weise und senden die Antwort zusammen mit derselben ID zurück.
{
"type": "session.commentary.append",
"delegation_id": "item_delegation_123",
"content": "Table for 4 is confirmed at 7:30 pm Friday."
}
Eine Kommentarmeldung bedeutet, dass das Modell den Text laut aussprechen soll. Wenn das Modell etwas leise wissen soll, erledigt session.thinking.append das stattdessen. Jede Meldung kann etwa 500 Token umfassen. Im Prinzip könnte ein Client-Handler die Aufgabe an ein von Ihnen gewähltes Agentenframework weiterleiten, doch diese Kombination erfordert vor dem Einsatz eigene Tests.
Ein sinnvoller Ansatz ist, mit der Delegation von Responses zu beginnen und erst dann zur Client-Delegation überzugehen, wenn Sie mehr Kontrolle über Berechtigungen, Bestätigungen oder den Workflow selbst benötigen.
Kosten
Die Sprachschicht kostet 0,05 US-Dollar pro Minute und wird sekundengenau abgerechnet. Das entspricht 3 US-Dollar pro Stunde oder 72 US-Dollar pro Tag für eine Leitung, die rund um die Uhr aktiv ist. Backend-Modelle und -Tools werden separat abgerechnet, sodass die tatsächlichen Gesamtkosten davon abhängen, wie oft Anrufe Unterstützung benötigen.
Ein Beispiel mit angenommenen Zahlen:
- Nehmen wir an, eine Restaurant-Telefonleitlinie erhält monatlich 2.000 Anrufe, jeder etwa 3 Minuten lang. Das sind insgesamt 6.000 Minuten, was allein für die Sprachkommunikation 6.000 mal 0,05 Dollar, also 300 Dollar, entspricht.
- Nun nehmen wir an, es gibt pro Anruf zwei Übertragungen, wobei jede Übertragung etwa 3.000 Eingabetoken und 300 Ausgabetoken umfasst. Der Backend-Kostenrahmen beträgt 10 Dollar pro Million Eingabetoken und 50 Dollar pro Million Ausgabetoken. Eine einzelne Übertragung kostet 0,03 Dollar plus 0,015 Dollar, also 0,045 Dollar. Zwei Übertragungen kosten pro Anruf 0,09 Dollar, was bei 2.000 Anrufen insgesamt 180 Dollar ergibt.
- Insgesamt belaufen sich die Kosten auf etwa 480 Dollar pro Monat, was rund 24 Cent pro Anruf entspricht.
Die Token-Zahlen sowie die Backend-Kosten sind Schätzungen für einen einfachen Buchungsablauf – messen Sie daher Ihren eigenen Datenverkehr, bevor Sie diesen Werten vertrauen. Der Sprachteil ist vorhersehbar, während der Backend-Teil besonders beachtet werden muss.
Details, die die Einführungsbeiträge überspringen
Unterbrechungen beenden die Arbeit nicht
Laut den Dokumenten stoppt das Unterbrechen der Sprache des Assistenten nicht automatisch die Arbeit im Backend. Ein Anrufer, der „Egal“ sagt, kann den Suchvorgang oder die Buchung dennoch abschließen, es sei denn, Ihre App stoppt dies. Das ist bei einem Wetterabruf unbedenklich, aber bei einem „Buchen“ gefolgt von „Warte, nein“ problematisch.
Empfangenes wird nicht gehört
Durch Hinzufügen eines Ergebnisses wird eine Bestätigung zurückgegeben, doch das zeigt weder an, dass das Modell es tatsächlich ausgesprochen hat, noch, dass jemand, der zuhört, es gehört hat. Das Beenden einer Antwort im Backend ist ein Ereignis, während das Hören dieser Antwort durch den Anrufer ein weiteres Ereignis ist. Bei allem, was bestätigt werden muss – beispielsweise eine Buchungszeit – suchen Sie den entsprechenden Text im Ausgabentext.
Die Benchmark-Zahlen variieren je nach Quelle
Die veröffentlichten Benchmark-Ergebnisse für das Modell bei Kundenservice-Aufgaben weichen voneinander ab – je nachdem, ob es sich um Beiträge von OpenAI selbst oder um Presseberichte handelt. In jedem Fall ist der angegebene Sprung gegenüber dem älteren Modell groß, doch es handelt sich dabei um vom Anbieter bereitgestellte Ergebnisse, und unabhängige Tests sind selten. Kundenberichte, wie zum Beispiel von einem Sprachlernunternehmen, das von deutlich weniger Unterbrechungen während der Denkpausen der Lernenden berichtet, sind Anekdoten und keine wissenschaftlichen Studien.
Ein ruhiger Kontext ist kein sicherer Ort für Geheimnisse
Alles, was über session.thinking.append eingegeben wird, kann den späteren Sprachausgang weiterhin beeinflussen. Halten Sie Kontonummern und private Notizen davon fern.
Wann es geeignet ist und wann nicht
Es eignet sich für:
- Telefonleitungen für Buchungen, Bestellungen und einfache Unterstützung
- Lern-Apps, in denen die Nutzer zwischen Sätzen innehalten und nachdenken
- Teams, die einen aus drei separaten Modellen bestehenden Prozess ersetzen möchten
Überlegen Sie sich gut:
- Anrufe, bei denen eine falsche Handlung teuer ist, wie beispielsweise Zahlungen
- Produkte, die derzeit eigene Markenstimmen benötigen, da diese einen separaten Genehmigungsprozess durchlaufen
- Alles, was Bild- oder Videoeingaben erfordert, was das Modell nicht akzeptiert
Ein riskantes Vorgehen ist es, dem Backend zu erlauben, eine Buchung sofort zu bestätigen, sobald der Anrufer „Klingt gut“ sagt, ohne danach noch zu prüfen, was er gesagt hat. Ein sichereres Vorgehen besteht darin, die Bestätigung nochmals vorzulesen, auf ein klares „Ja“ zu warten und Ihre App dazu zu bringen, laufende Aufgaben abzubrechen, falls der Anrufer seine Meinung ändert. Die Stimme mag hervorragend sein, aber die Sicherheitsprüfungen liegen weiterhin in Ihrer Verantwortung.
Wichtige Punkte
- Anrufer können mitten im Satz unterbrechen oder den Ablauf ändern, da das Modell weiterhin zuhört, während es spricht.
- Substanzielle Aufgaben werden an ein Backend-Modell weitergeleitet, egal ob es von OpenAI oder Ihrer eigenen App gesteuert wird.
- Jede Sitzung folgt fünf Schritten: Start, Warten auf
session.started, Streamen des Audios, Zusammenstellen der Sprechphasen aus Transkriptfragmenten und sauberes Beenden. - Die Sprachverarbeitung kostet 0,05 Dollar pro Minute, was bei einer Buchungslinie mit 2.000 Anrufen unter den oben genannten Annahmen monatlich etwa 480 Dollar entspricht, sofern der Backend-Aufwand gering ist.
- Ein Unterbrechen durch einen Anrufer lässt die Arbeit im Backend weiterlaufen, daher muss Ihre Anwendung selbst mit dem Fall „Warten, nein“ umgehen.