Automatische Übersetzung
Auf dieser Seite
Lektion am 3. November 2026 überarbeitet. Sie berief sich zuvor auf den Endpunkt
/v1/audio/translationsund das Modellwhisper-1, die beide am 26. Februar 2027 eingestellt und abgelehnt wurden, sowie auf eine umgenutzte Realtime-Assistentensitzung als Dolmetscher. OpenAI bietet nun zwei Wege: für Aufnahmen eine Transkription in der Ursprungssprache mitgpt-transcribe, gefolgt von einer Textübersetzung; für Live-Sprache eine dedizierte Sitzung zur Übersetzung mitgpt-realtime-translate. Der Code wurde mit der SDKopenai3.42.1 und der Bibliothekwebsocket-clientverifiziert. Quellen: Transkription von Dateien · Live-Übersetzung · Einschränkungen.
Zwei Bedürfnisse, zwei Werkzeuge
Die Übersetzung von Audio abdeckt zwei sehr unterschiedliche Szenarien, und OpenAI behandelt sie mit unterschiedlichen Werkzeugen:
| Bedarf | Werkzeug ab November 2026 | Ergebnis |
|---|---|---|
| Eine Aufnahme zur Übersetzung (Meeting, Podcast, archivierter Anruf) | gpt-transcribe zur Transkription in der Ursprungssprache, anschließend ein Textmodell zur Übersetzung | Übersetzter Text in der Zielsprache |
| Live-Sprache zur Interpretation (Anruf, Konferenz, Unterricht) | Live-Übersetzungssitzung mit gpt-realtime-translate | Übersetztes Audio und Transkripte, die während der Sprachproduktion generiert werden |
Legacy-Pfad: /v1/audio/translations mit whisper-1 | Abgelehnt, eingestellt am 26. Februar 2027 | Nur englischer Text |
Die Anleitung von OpenAI betont einen Punkt: Das bloße Ändern der Modell-ID in einer Anfrage an /v1/audio/translations führt zu keiner Migration. Der alte Endpunkt, der nur ins Englische übersetzen konnte, hat keinen direkten Ersatz.
Übersetzung einer Aufnahme
Diese Methode transkribiert zunächst getreu in der gesprochenen Sprache und übersetzt anschließend den Text. Sie funktioniert für jede Zielsprache – im Gegensatz zum alten Endpunkt, der nur Englisch produzierte – und liefert Ihnen beide Texte, was zur Verifizierung nützlich ist:
from openai import OpenAI
client = OpenAI()
def translate_recording(path: str, target_language: str) -> dict[str, str]:
"""Transkribiert eine Aufnahme in ihrer Ursprungssprache und übersetzt dann den Text."""
with open(path, "rb") as f:
transcription = client.audio.transcriptions.create(model="gpt-transcribe", file=f)
response = client.responses.create(
model="gpt-6-luna",
instructions=(
f"Übersetzen Sie den vom Benutzer bereitgestellten Text in {target_language}. "
"Behalten Sie Ton und Stil bei. Antworten Sie nur mit der Übersetzung."
),
input=transcription.text,
)
return {"original": transcription.text, "translation": response.output_text}
result = translate_recording("reunion_fr.mp3", "German")
print(result["translation"])
Zwei Entscheidungen verdienen eine Erklärung. Die Übersetzungsanweisung erfolgt in instructions, während die Transkription als reine Daten in input ankommt: Eine Aufnahme kann alles enthalten, einschließlich eines Satzes, der wie ein Befehl aussieht, und sie darf die Anweisung nicht ändern können. Das Modell gpt-6-luna ist das, was OpenAI für großangelegte, kostensensitive Verarbeitung empfiehlt; für sensible juristische oder technische Texte wählen Sie ein leistungsfähigeres Modell, wie gpt-6.1-sol.
Interpretation von Live-Sprache
Um während des Sprechens zu übersetzen, bietet OpenAI eine spezielle Art von Realtime-Sitzung an. Die Anleitung unterscheidet dies klar von einer Voice-Agenten-Sitzung:
| Voice-Agenten-Sitzung | Übersetzungssitzung |
|---|---|
Verbindet sich mit /v1/realtime | Verbindet sich mit /v1/realtime/translations |
| Das Modell agiert als Assistent | Das Modell agiert als Dolmetscher |
Gesprächs- und Antwortzyklus (response.create) | Kontinuierlicher Strom aus eingehendem Audio, kein response.create |
| Kann Tools aufrufen | Erzeugt übersetztes Audio und Transkripte |
Der Transport hängt davon ab, wo das Audio ankommt. Im Browser sendet WebRTC die Mikrofoneingabe und empfängt die übersetzte Stimme als Audio-Tracks; Ihr Server erstellt hierfür einen kurzlebigen Client-Schlüssel über /v1/realtime/translations/client_secrets, sodass Ihr API-Schlüssel den Server nie verlässt. Auf der Serverseite, wenn das Audio bereits roh ankommt (Telefonstrom, Aufnahme), reicht eine WebSocket-Verbindung:
import base64
import json
import os
import websocket # pip install websocket-client
ws = websocket.WebSocket()
ws.connect(
"wss://api.openai.com/v1/realtime/translations?model=gpt-realtime-translate",
header=[
f"Authorization: Bearer {os.environ['OPENAI_API_KEY']}",
"OpenAI-Safety-Identifier: hashed-user-id", # gehashter Identifier Ihres Benutzers
],
)
# Zielsprache des Dolmetschers
ws.send(json.dumps({"type": "session.update", "session": {"audio": {"output": {"language": "en"}}}}))
def send_audio(pcm16: bytes) -> None:
"""Fügt einen Chunk von Quell-Audio hinzu: 16-Bit PCM, Mono, 24 kHz."""
ws.send(json.dumps({"type": "session.input_audio_buffer.append", "audio": base64.b64encode(pcm16).decode()}))
Während Sie das Audio senden, einschließlich Pausen, gibt die Sitzung Ereignisse zurück, die auf dem Laufenden verarbeitet werden müssen: session.output_audio.delta enthält das übersetzte Audio in Base64, session.output_transcript.delta den übersetzten Text und session.input_transcript.delta die Transkription des Originals. Wenn die Quelle aufhört, senden Sie session.close: Der Dienst beendet die aktuelle Übersetzung und antwortet mit session.closed.
translation: list[str] = []
while True:
event = json.loads(ws.recv())
if event["type"] == "session.output_transcript.delta":
translation.append(event["delta"])
elif event["type"] == "error":
raise RuntimeError(f"Übersetzungsfehler: {event['error']['code']}")
elif event["type"] == "session.closed":
break
ws.close()
print("".join(translation))
Vernachlässigen Sie das error-Ereignis nicht: Eine abgelehnte Schlüssel führt nicht zum Verbindungsabbruch selbst; sie kommt kurz darauf als error-Ereignis mit dem Code invalid_api_key (beobachtet am 3. November 2026). In der Produktion läuft die Rezeption parallel zum Senden in einem separaten Thread oder Task, und das übersetzte Audio geht an den Player oder die Telefonleitung, sobald es ankommt: Die offizielle Anleitung bietet eine vollständige Version an, einschließlich der Audio-Wiedergabe.
Kernaussagen
/v1/audio/translationsundwhisper-1werden am 26. Februar 2027 eingestellt, ohne direkten Ersatz: Das Ändern des Modells reicht nicht aus- Für eine Aufnahme:
gpt-transcribein der Ursprungssprache, anschließend Textübersetzung durch ein Textmodell in jede Sprache - Halten Sie die Übersetzungsanweisung in
instructionsund die Transkription als reine Daten - Für Live-Sprache: Eine Übersetzungssitzung (
/v1/realtime/translations,gpt-realtime-translate), die als Dolmetscher agiert, ohneresponse.create - WebRTC im Browser, mit einem vom Server erstellten Client-Schlüssel; WebSocket auf der Serverseite, mit 16-Bit PCM-Audio bei 24 kHz