For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Hauptnavigation

Dateien transkribieren

Wandle aufgezeichnete Sprache in Text um.

Nutze die Dateitranskription für abgeschlossene Aufnahmen oder Audioanfragen mit begrenztem Umfang. Lade die Audiodatei hoch und erhalte ein fertiges Transkript oder streame den Text, während das Modell die Datei verarbeitet.

Beginne mit gpt-transcribe. Dieses Modell wird empfohlen, um aufgezeichnete Sprache in der Originalsprache zu transkribieren. Verwende ein spezialisiertes Modell nur dann, wenn du eine Zuordnung zu sprechenden Personen, Zeitstempel für einzelne Wörter, Untertitelformate oder eine Übersetzung ins Englische benötigst.

Dateien dürfen bis zu 25 MB groß sein. Unterstützte Eingabeformate sind mp3, mp4, mpeg, mpga, m4a, wav und webm.

Für Audiodaten, die noch von einem Mikrofon, einem Anruf oder einem Medienstream eingehen, nutze die Echtzeittranskription.

Schnellstart

Transkriptionen

Sende die Audiodatei mit gpt-transcribe an /v1/audio/transcriptions:

Audio transkribieren
from openai import OpenAI

client = OpenAI()
audio_file = open("audio.wav", "rb")

transcription = client.audio.transcriptions.create(
    model="gpt-transcribe", file=audio_file
)

print(transcription.text)

Das Modell gibt das Transkript und die erkannten Sprachen als JSON zurück:

{
  "text": "Bonjour, pouvez-vous m'entendre ?",
  "languages": [{ "code": "fr" }]
}

Wenn das Modell die Sprache nicht zuverlässig bestimmen kann, gibt es "languages": [] zurück. Alle Anfrage- und Antwortfelder findest du in der Audio-API-Referenz.

Kontext zur Transkription hinzufügen

Verwende prompt, keywords und languages mit gpt-transcribe, um die Transkription von Fachbegriffen und mehrsprachigen Aufnahmen zu verbessern:

Kontext und Sprachhinweise hinzufügen
from openai import OpenAI

client = OpenAI()

with open("meeting.wav", "rb") as audio_file:
    transcription = client.audio.transcriptions.create(
        model="gpt-transcribe",
        file=audio_file,
        prompt="A customer support call about a premium plan and account AC-42.",
        extra_body={
            "keywords": ["premium plan", "AC-42", "billing"],
            "languages": ["en", "fr"],
        },
    )

print(transcription.text)
  • Verwende prompt für unstrukturierten Kontext zur Aufnahme.
  • Verwende keywords für konkrete Begriffe, die du in der Aufnahme erwartest.
  • Verwende languages für die erwarteten Eingabesprachen.

Schlüsselwörter sind Hinweise, keine zwingend auszugebenden Begriffe. Gib nur relevante Begriffe an und prüfe, ob sie die Genauigkeit verbessern, ohne dass nicht gesprochene Begriffe im Transkript erscheinen.

Bei gpt-transcribe ersetzt languages das im Singular benannte Feld language. Sende nicht beide Felder. Jedes Schlüsselwort muss auf einer einzigen Zeile stehen und darf weder < noch >, Wagenrücklauf- oder Zeilenvorschubzeichen enthalten. Die API lehnt die gesamte Anfrage ab, wenn sie auf eines dieser Zeichen stößt oder wenn prompt die Längenbegrenzung des Modells überschreitet.

Sprecherdiarisierung

Verwende gpt-4o-transcribe-diarize nur, wenn du feststellen musst, wer in den verschiedenen Abschnitten einer Aufnahme spricht. Dieses auf die Sprecherzuordnung spezialisierte Modell wird für die gewöhnliche Dateitranskription nicht empfohlen.

Fordere das Antwortformat diarized_json an, um Segmente mit den Metadaten speaker, start und end zu erhalten. Setze bei Aufnahmen von mehr als 30 Sekunden chunking_strategy auf "auto" oder auf eine Konfiguration zur Sprachaktivitätserkennung.

Du kannst optional mit known_speaker_names[] und known_speaker_references[] bis zu vier kurze Audioreferenzen übergeben, um Segmente bekannten sprechenden Personen zuzuordnen. Verwende Referenzclips mit einer Länge von 2–10 Sekunden in einem Eingabeformat, das auch für den Upload der Hauptaufnahme unterstützt wird. Kodiere sie als Daten-URLs, wenn du Multipart-Formulardaten verwendest.

Sprecherdiarisierung einer Besprechungsaufnahme
import base64
from openai import OpenAI

client = OpenAI()


def to_data_url(path: str) -> str:
    with open(path, "rb") as fh:
        return "data:audio/wav;base64," + base64.b64encode(fh.read()).decode("utf-8")


with open("meeting.wav", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="gpt-4o-transcribe-diarize",
        file=audio_file,
        response_format="diarized_json",
        chunking_strategy="auto",
        extra_body={
            "known_speaker_names": ["agent"],
            "known_speaker_references": [to_data_url("agent.wav")],
        },
    )

for segment in transcript.segments:
    print(segment.speaker, segment.text, segment.start, segment.end)

Bei stream=true werden in Antworten mit Sprecherzuordnung Ereignisse vom Typ transcript.text.segment ausgegeben, sobald ein Segment abgeschlossen ist. Ereignisse vom Typ transcript.text.delta enthalten ein Feld segment_id, die Deltas enthalten jedoch keine vorläufigen Sprecherzuordnungen. Das Modell ordnet die sprechende Person erst zu, wenn es das Segment abschließt.

Die Sprecherzuordnung ist über /v1/audio/transcriptions verfügbar. In Sitzungen zur Echtzeittranskription wird sie nicht unterstützt.

Übersetzungen

Um eine abgeschlossene Audioaufnahme ins Englische zu übersetzen, verwende /v1/audio/translations mit whisper-1. Anders als bei der Transkription, die die Originalsprache der Aufnahme beibehält, gibt dieser Endpunkt englischen Text zurück.

Audio übersetzen
from openai import OpenAI

client = OpenAI()
audio_file = open("german.wav", "rb")

translation = client.audio.translations.create(
    model="whisper-1",
    file=audio_file,
)

print(translation.text)

Bei einer Audioaufnahme in einer anderen Sprache enthält die Antwort die englische Übersetzung:

Hello, my name is Wolfgang and I come from Germany. Where are you heading today?

Dieser Endpunkt unterstützt ausschließlich Übersetzungen ins Englische.

Unterstützte Sprachen

Verwende languages mit gpt-transcribe, wenn du weißt, welche Eingabesprachen zu erwarten sind. Zu den unterstützten Sprachcodeformaten gehören:

  • Codes nach ISO 639-1, etwa en, es und fr.
  • Ausgewählte Codes nach ISO 639-3, etwa eng, spa, yue und cmn.
  • Regionale Locale-Codes für zh, etwa zh-cn, zh-tw und zh-hk.

Die API lehnt nicht unterstützte oder falsch formatierte Sprachcodes ab. Die Antwort gibt außerdem alle Sprachen an, die das Modell zuverlässig erkennen kann.

Für whisper-1 findest du die unterstützten Sprachen in der Sprachenliste von Whisper. Whisper unterstützt 98 Sprachen, die Genauigkeit variiert jedoch je nach Sprache. Bestehende Modelle, die einen einzelnen Sprachhinweis akzeptieren, verwenden language statt languages.

Zeitstempel

Verwende whisper-1, wenn du Zeitstempel für Wörter oder Segmente benötigst. Der Parameter timestamp_granularities[] gibt strukturierte Zeitstempeldaten für die Untertitelung und Videobearbeitung zurück.

Optionen für Zeitstempel
from openai import OpenAI

client = OpenAI()
audio_file = open("speech.wav", "rb")

transcription = client.audio.transcriptions.create(
    file=audio_file,
    model="whisper-1",
    response_format="verbose_json",
    timestamp_granularities=["word"],
)

print(transcription.words)

Der Parameter timestamp_granularities[] wird nur für whisper-1 unterstützt.

Längere Eingaben

Die Transcriptions API akzeptiert Dateien bis zu 25 MB. Verwende für größere Aufnahmen ein komprimiertes Audioformat oder teile die Datei in Abschnitte von höchstens 25 MB auf. Vermeide Schnitte mitten im Satz, da dadurch Kontext verloren gehen und die Genauigkeit sinken kann.

Du kannst dafür beispielsweise das Open-Source-Python-Paket PyDub verwenden, um die Aufnahme aufzuteilen:

from pydub import AudioSegment

song = AudioSegment.from_wav("good_morning.wav")

# PyDub handles time in milliseconds
ten_minutes = 10 * 60 * 1000

first_10_minutes = song[:ten_minutes]

first_10_minutes.export("good_morning_10.wav", format="wav")

OpenAI übernimmt keine Garantien für die Nutzbarkeit oder Sicherheit von Drittanbietersoftware wie PyDub.

Prompts formulieren

Verwende einen Prompt, um die Erkennung von Namen, Akronymen, Formatierungen oder aufnahmespezifischem Vokabular zu verbessern. Kombiniere bei gpt-transcribe den Prompt mit keywords und languages, wie unter Kontext zur Transkription hinzufügen gezeigt.

Bestehende Integrationen mit gpt-4o-transcribe und gpt-4o-mini-transcribe unterstützen ebenfalls Prompts. gpt-4o-transcribe-diarize unterstützt keine Prompts.

Prompts sind unter anderem in folgenden Fällen hilfreich:

  • Produktnamen, Fachbegriffe und Akronyme korrekt transkribieren.
  • Kontext aus einem vorherigen Abschnitt einer längeren Aufnahme übernehmen.
  • Zeichensetzung, Groß- und Kleinschreibung sowie Füllwörter beibehalten.
  • Ein bevorzugtes Schriftsystem für eine Sprache auswählen.

Bei whisper-1 sind Prompts auf 224 Token begrenzt und bieten weniger Steuerungsmöglichkeiten als das empfohlene Transkriptionsmodell. Wenn dein Ablauf Whisper erfordert, lies den Abschnitt Zuverlässigkeit verbessern.

Transkriptionen streamen

Bei der Dateitranskription können Textteile gestreamt werden, während das Modell eine abgeschlossene Aufnahme verarbeitet. Dafür ist keine Realtime-Sitzung erforderlich.

Die Transkription einer abgeschlossenen Audioaufnahme streamen

Setze bei gpt-transcribe die Option stream=true. Die Transcriptions API gibt Transkriptionsereignisse zurück, während das Modell die einzelnen Teile der Aufnahme transkribiert.

Transkriptionen streamen
from openai import OpenAI

client = OpenAI()
audio_file = open("speech.wav", "rb")

stream = client.audio.transcriptions.create(
    model="gpt-transcribe",
    file=audio_file,
    stream=True,
)

for event in stream:
    print(event)

Das Modell sendet während der Audiotranskription Ereignisse vom Typ transcript.text.delta und gibt anschließend das vollständige Transkript in einem abschließenden Ereignis vom Typ transcript.text.done zurück. Bei der Transkription mit Sprecherzuordnung und response_format="diarized_json" sendet das Diarisierungsmodell außerdem ein Ereignis vom Typ transcript.text.segment, sobald es ein Segment fertiggestellt hat.

Bei gpt-transcribe enthält das abschließende Ereignis auch die erkannten Sprachen:

{
  "type": "transcript.text.done",
  "text": "Bonjour, pouvez-vous m'entendre ?",
  "languages": [{ "code": "fr" }]
}

Bestehende Integrationen mit gpt-4o-transcribe, gpt-4o-mini-transcribe und gpt-4o-transcribe-diarize unterstützen ebenfalls das Streaming von Dateitranskriptionen. whisper-1 unterstützt dies nicht.

Die Transkription einer laufenden Audioaufnahme streamen

Für Live-Audio von einem Mikrofon, einem Anruf oder einem Medienstream verwende die Anleitung zur Echtzeittranskription anstelle des oben beschriebenen Streaming-Verfahrens für Dateien. Sie beschreibt den aktuellen Ablauf einer Transkriptionssitzung und das empfohlene Echtzeitverfahren mit gpt-live-transcribe.

Zuverlässigkeit verbessern

Wenn du whisper-1 für Zeitstempel, Untertitel oder Übersetzungen verwendest, können diese Techniken die Erkennung seltener Wörter und Akronyme verbessern. Für neue Transkriptionsanwendungen ohne spezielle Anforderungen beginne mit gpt-transcribe und nutze stattdessen Kontext für die Transkription.