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
Python
1
2
3
4
5
6
7
8
9
10
11import fs from "fs";import OpenAI from "openai";const openai = new OpenAI();const transcription = await openai.audio.transcriptions.create({ file: fs.createReadStream("fixtures/audio.wav"), model: "gpt-transcribe",});console.log(transcription.text);
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
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import fs from "fs";import OpenAI from "openai";const openai = new OpenAI();const request = { model: "gpt-transcribe", file: fs.createReadStream("fixtures/audio.wav"), prompt: "A customer support call about a premium plan and account AC-42.",};const transcription = await openai.audio.transcriptions.create(request, { body: { ...request, keywords: ["premium plan", "AC-42", "billing"], languages: ["en", "fr"], },});console.log(transcription.text);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16from openai import OpenAIclient = OpenAI()withopen("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.
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
Python
1
2
3
4
5
6
7
8
9
10
11import fs from "fs";import OpenAI from "openai";const openai = new OpenAI();const translation = await openai.audio.translations.create({ file: fs.createReadStream("fixtures/german.wav"), model: "whisper-1",});console.log(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.
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.
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.
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:
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.
Bei der ersten Methode übergibst du über den optionalen Prompt-Parameter ein Wörterbuch mit den korrekten Schreibweisen.
Whisper befolgt Anweisungen nicht wie ein universell einsetzbares Textmodell und akzeptiert Prompts mit bis zu 224 Token.
Diese Technik verbessert zwar die Zuverlässigkeit, ist aber auf 224 Token begrenzt. Damit sie als Lösung skalierbar bleibt, muss deine Liste von SKUs daher relativ kurz sein.
Bei der zweiten Methode wird das Transkript mit einem Textmodell nachbearbeitet.
Übergib Anweisungen über die Variable system_prompt. Wie beim Transkriptionsprompt kannst du dabei Unternehmens- und Produktnamen angeben.
Nachbearbeitung
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28const systemPrompt = `You are a helpful assistant for the company ZyntriQix. Your task isto correct any spelling discrepancies in the transcribed text. Makesure that the names of the following products are spelled correctly:ZyntriQix, Digique Plus, CynapseFive, VortiQore V8, EchoNix Array,OrbitalLink Seven, DigiFractal Matrix, PULSE, RAPT, B.R.I.C.K.,Q.U.A.R.T.Z., F.L.I.N.T. Only add necessary punctuation such asperiods, commas, and capitalization, and use only the context provided.`;const transcript = await transcribe(audioFile);const completion = await openai.chat.completions.create({ model: "gpt-4.1", temperature: temperature, messages: [ { role: "system", content: systemPrompt, }, { role: "user", content: transcript, }, ], store: true,});console.log(completion.choices[0].message.content);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24system_prompt ="""You are a helpful assistant for the company ZyntriQix. Your task is to correctany spelling discrepancies in the transcribed text. Make sure that the names ofthe following products are spelled correctly: ZyntriQix, Digique Plus,CynapseFive, VortiQore V8, EchoNix Array, OrbitalLink Seven, DigiFractalMatrix, PULSE, RAPT, B.R.I.C.K., Q.U.A.R.T.Z., F.L.I.N.T. Only add necessarypunctuation such as periods, commas, and capitalization, and use only thecontext provided."""defgenerate_corrected_transcript(temperature, system_prompt, audio_file): response = client.chat.completions.create(model="gpt-4.1",temperature=temperature,messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": transcribe(audio_file, "")}, ], )return response.choices[0].message.contentcorrected_text = generate_corrected_transcript(0, system_prompt, fake_company_filepath)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49package mainimport ( "context" "fmt" "os" "github.com/openai/openai-go/v3")const systemPrompt = `You are a helpful assistant for the company ZyntriQix. Your task isto correct any spelling discrepancies in the transcribed text. Makesure that the names of the following products are spelled correctly:ZyntriQix, Digique Plus, CynapseFive, VortiQore V8, EchoNix Array,OrbitalLink Seven, DigiFractal Matrix, PULSE, RAPT, B.R.I.C.K.,Q.U.A.R.T.Z., F.L.I.N.T. Only add necessary punctuation such asperiods, commas, and capitalization, and use only the context provided.`func main() { file, err := os.Open("fixtures/speech.wav") if err != nil { panic(err) } defer file.Close() client := openai.NewClient() transcription, err := client.Audio.Transcriptions.New(context.Background(), openai.AudioTranscriptionNewParams{ File: file, Model: openai.AudioModelGPT4oTranscribe, }) if err != nil { panic(err) } completion, err := client.Chat.Completions.New(context.Background(), openai.ChatCompletionNewParams{ Model: "gpt-4.1", Temperature: openai.Float(0), Messages: []openai.ChatCompletionMessageParamUnion{ openai.SystemMessage(systemPrompt), openai.UserMessage(transcription.Text), }, Store: openai.Bool(true), }) if err != nil { panic(err) } fmt.Println(completion.Choices[0].Message.Content)}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42import com.openai.client.OpenAIClient;import com.openai.client.okhttp.OpenAIOkHttpClient;import com.openai.models.audio.transcriptions.TranscriptionCreateParams;import com.openai.models.chat.completions.ChatCompletionCreateParams;import java.nio.file.Path;String systemPrompt = """ You are a helpful assistant for the company ZyntriQix. Your task is to correct any spelling discrepancies in the transcribed text. Make sure that the names of the following products are spelled correctly: ZyntriQix, Digique Plus, CynapseFive, VortiQore V8, EchoNix Array, OrbitalLink Seven, DigiFractal Matrix, PULSE, RAPT, B.R.I.C.K., Q.U.A.R.T.Z., F.L.I.N.T. Only add necessary punctuation such as periods, commas, and capitalization, and use only the context provided. """;var result = client .audio() .transcriptions() .create( TranscriptionCreateParams.builder() .file(Path.of(System.getenv("OPENAI_EXAMPLE_AUDIO_PATH"))) .model("gpt-4o-transcribe") .build());var completion = client .chat() .completions() .create( ChatCompletionCreateParams.builder() .model("gpt-4.1") .temperature(0.0) .store(true) .addSystemMessage(systemPrompt) .addUserMessage(result.asTranscription().text()) .build());completion.choices().stream() .flatMap(choice -> choice.message().content().stream()) .forEach(System.out::println);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32using OpenAI.Audio;using OpenAI.Chat;string key = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;string model = "gpt-4.1";ChatClient client = new(model, key);string transcriptionModel = "gpt-4o-transcribe";AudioClient audio = new(transcriptionModel, key);await using FileStream source = File.OpenRead("speech.wav");AudioTranscription transcription = await audio.TranscribeAudioAsync(source, "speech.wav");string systemPrompt = """ You are a helpful assistant for the company ZyntriQix. Correct any spelling discrepancies in the transcribed text. Make sure the names of these products are spelled correctly: ZyntriQix, Digique Plus, CynapseFive, VortiQore V8, EchoNix Array, OrbitalLink Seven, DigiFractal Matrix, PULSE, RAPT, B.R.I.C.K., Q.U.A.R.T.Z., F.L.I.N.T. Only add necessary punctuation such as periods, commas, and capitalization, and use only the context provided. """;ChatCompletionOptions correctionOptions = new() { Temperature = 0 };ChatCompletion completion = await client.CompleteChatAsync( [ new SystemChatMessage(systemPrompt), new UserChatMessage(transcription.Text), ], correctionOptions);Console.WriteLine(completion.Content[0].Text);
Ein Textmodell kann Rechtschreibfehler korrigieren und längere Begriffslisten verarbeiten, als das auf 224 Token begrenzte Prompt-Fenster von Whisper erlaubt. Gleiche die Korrekturen mit der ursprünglichen Audioaufnahme ab, damit das Gesagte unverändert bleibt.