Model APIs
Whisper-1
Lade eine Audiodatei zur Transkription oder Übersetzung ins Englische hoch, frage ihren Task ab und lade Text, JSON oder Untertitel herunter.
Whisper-1 wandelt aufgezeichnete Sprache in Text um. Nutze /v1/audio/transcriptions, um die gesprochene Sprache beizubehalten, oder /v1/audio/translations, um englischen Text zu erzeugen. Beide akzeptieren multipart/form-data mit einer hochgeladenen Datei. SeedRouter gibt zuerst eine Task-ID zurück; lade das gewählte Ergebnis nach Abschluss des Tasks herunter. Das unterscheidet sich von einer synchronen OpenAI-SDK-Antwort.
Playground und aktuelle Preise · Erste Transkriptionsanleitung · OpenAPI · Markdown
Aufnahme senden
Bewahre deinen API-Schlüssel auf dem Server auf. Lass deinen HTTP-Client die Multipart-Grenze erzeugen; setze nicht manuell einen bloßen Header Content-Type: multipart/form-data.
curl https://api.seedrouter.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-F model=whisper-1 \
-F [email protected] \
-F language=en \
-F response_format=verbose_json \
-F 'timestamp_granularities[]=word' \
-F 'timestamp_granularities[]=segment'Die Antwort bestätigt einen Task, keine abgeschlossene Transkription:
{
"id": "task_example",
"model": "whisper-1",
"status": "processing",
"created_at": 1792376116
}Speichere die tatsächlich zurückgegebene id. Sende einmal. Ein Verbindungsabbruch sagt nicht aus, ob die Anfrage angenommen wurde; prüfe den Task-Verlauf, bevor du eine weitere Anfrage erstellst.
Ergebnis lesen
curl "https://api.seedrouter.ai/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $SEEDROUTER_API_KEY"Frage den Status regelmäßig ab, solange status den Wert processing hat. Ein abgeschlossener Task enthält output.url und output.format; ein fehlgeschlagener Task enthält error.code und error.message. Eine Zeitüberschreitung bei der Abfrage ist kein endgültiger Task-Status. Nur der Eigentümer des Tasks kann ihn lesen. Die folgenden Beispiele veranschaulichen die Antwortstruktur:
{
"id": "task_example",
"model": "whisper-1",
"status": "completed",
"output": {
"format": "verbose_json",
"url": "https://static.seedrouter.ai/media/tasks/task_example/0.json"
}
}Lade output.url mit einer separaten GET-Anfrage herunter. Lies eine JSON-Ergebnisdatei als JSON und die anderen Formate als Text. Öffentliche Task-Antworten enthalten keine Preise oder Kontodetails.
Transkriptionsparameter
file und model sind erforderlich. Die neun folgenden Felder bilden die gemeinsame Anfrageoberfläche, einschließlich file, model und des ausdrücklich ignorierten stream. Bei chunking_strategy besteht weiterhin eine Kompatibilitätslücke, wie unten beschrieben.
| Feld | Typ | Standard | Vertrag |
|---|---|---|---|
file | Binärer Upload | Erforderlich | Eine nicht leere Audiodatei, keine URL oder Dateinamen-Zeichenfolge. Siehe Dateigrenzen. |
model | Zeichenfolge | Erforderlich | Genau whisper-1. |
language | Zeichenfolge | Automatische Erkennung | Hinweis zur Eingabesprache, etwa en. Es wird keine lokale Liste zulässiger Sprachen erzwungen. Für Erkennung weglassen. |
prompt | Zeichenfolge | Weggelassen | Kontext, Schreibweise oder Fortsetzung in der Sprache des Audios. Es wird kein Zeichenlimit erfunden; Whisper berücksichtigt die letzten 224 Token seines eigenen Tokenizers. Dies ist kein allgemeiner Anweisungs-Prompt. |
response_format | Zeichenfolge | json | json, text, srt, verbose_json oder vtt. |
temperature | Zahl | 0 | Inklusiver Bereich 0–1. Null erlaubt die automatische Temperaturanpassung des Modells; deterministischer Text wird dadurch nicht zugesichert. |
timestamp_granularities[] | Wiederholte Zeichenfolge | Segmentzeitstempel, sofern anwendbar | word, segment oder beides. Erfordert response_format=verbose_json. Auch die wiederholte Feldschreibweise timestamp_granularities ohne Klammern wird akzeptiert. |
chunking_strategy | auto, VAD-Objekt oder null | Weggelassen | Gemeinsames Audio-Schemafeld, dessen Anwendbarkeit auf Whisper ungeklärt ist. Für den geprüften Ablauf weglassen. Explizites auto bestand die reale Kompatibilitätsprüfung nicht. |
stream | Boolescher Wert oder null | false | Wird für Whisper-1 ignoriert. Es werden weder SSE noch Teiltranskripte erzeugt. |
Das VAD-Objekt enthält das erforderliche type: "server_vad", die optionale Ganzzahl prefix_padding_ms (dokumentierter Standard 300), die optionale Ganzzahl silence_duration_ms (dokumentierter Standard 200) und den optionalen Zahlenwert threshold von 0 bis 1 (dokumentierter Standard 0,5). Es wird kein undokumentierter Ganzzahlbereich erzwungen. Eine weggelassene Strategie bleibt weggelassen; diese Objektstandardwerte machen auto nicht zum Standard der Anfrage.
Für SDK-Kompatibilität kann das VAD-Objekt in einem JSON-Multipart-Teil oder als chunking_strategy[type], chunking_strategy[prefix_padding_ms], chunking_strategy[silence_duration_ms] und chunking_strategy[threshold] kodiert werden. Vermische die beiden Kodierungen nicht. Die Annahme dieser Feldformen belegt nicht, dass VAD mit diesem Modell funktioniert.
Optionale Textfelder werden weggelassen, statt die wörtliche Multipart-Zeichenfolge null zu verwenden. Unbekannte und für das Modell nicht anwendbare Felder werden verworfen. Insbesondere sind diarized_json, Steuerfelder für Sprecherreferenzen, logprobs und Echtzeitereignisse keine Whisper-1-Funktionen. Doppelte skalare Felder sind ungültig.
Dateigrenzen
Die dokumentierten Audioformate sind FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV und WebM. Das aktuelle Uploadlimit beträgt 26.214.400 Byte (25 MiB). Die OpenAI-FAQ zur Audio-API nennt eine maximale Anfragegröße von 25 MiB für ältere Whisper-1-Uploads; halte Dateien unter dieser Grenze, damit Platz für die Multipart-Felder bleibt. Dateien müssen lesbares Audio und eine positive, messbare Dauer enthalten. Eine Dateiendung allein belegt kein gültiges Audio.
Es gibt keine zusätzliche lokale Ein-Stunden-Grenze, keine feste Abtastratenanforderung und keine Beschränkung auf Mono. Die Dateigröße kann dennoch das Aufteilen langer Aufnahmen erfordern. Prüfe die Übergänge zwischen Teilaufnahmen, damit keine Sprache ausgelassen oder doppelt erfasst wird.
Übersetzung ins Englische
curl https://api.seedrouter.ai/v1/audio/translations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-F model=whisper-1 \
-F [email protected] \
-F response_format=text \
-F temperature=0Die Übersetzung hat fünf Felder: file, model, prompt, response_format und temperature, mit denselben Typen und Grenzen wie oben. Ihr optionaler Prompt sollte auf Englisch sein. Die Zielsprache ist nicht wählbar. language, Zeitstempelsteuerung, Aufteilungssteuerung und andere reine Transkriptionsfelder werden an diesem Endpunkt verworfen. Eine erfolgreiche Übersetzungsprüfung mit englischer Eingabe belegt keine Genauigkeit für jede Ausgangssprache.
Felder heruntergeladener Ergebnisdateien
| Format | Inhalt |
|---|---|
json | Objekt mit text. Die Transkription kann außerdem usage: {type: "duration", seconds: number} enthalten. |
text | Reiner Transkripttext. |
srt | Nummerierte Untertitelblöcke mit SRT-Zeitcodes. |
vtt | WebVTT-Untertitel. |
verbose_json | text, language und duration in Sekunden; optional segments und bei Transkription words sowie dauerbasierte usage. |
Jedes Wort hat word, start und end. Jedes Segment hat id, seek, start, end, text, tokens, temperature, avg_logprob, compression_ratio und no_speech_prob. start und end sind Sekundenangaben. Segmente identifizieren keine Sprecher. Die nur für Transkription geltende Konstante task: "transcribe" kann vorhanden sein. Übersetzungsergebnisse lassen die reinen Transkriptionsfelder words und usage weg. Audiomessungen und Transkripttext werden nicht umgeschrieben, um eine erwartete Antwort nachzuahmen.
Abrechnung
Beide Vorgänge verwenden die gemessene Eingabedauer. Für jede Aufnahme entsprechen die Audio-Abrechnungseinheiten round(ceil(seconds) × 1000 / 60). Multipliziere diese Einheiten mit dem aktuellen Einheitentarif; diese Einheiten zählen keinen Transkripttext. Beispielsweise ergeben 15 Sekunden 250 Einheiten, während 15,1 Sekunden 267 ergeben. Die Seite und der Playground lesen denselben aktuellen Tarif. Fehlgeschlagene Anfragen werden nicht berechnet.
Prüfstatus
Geprüft am 19. Oktober 2026. Lokale Ende-zu-Ende-Tests schlossen alle fünf Transkriptionsausgabeformate und eine verbose_json-Übersetzung ab, einschließlich Downloads eigener Ergebnisse und exakter Kontobelastungen. Eine Transkription forderte erfolgreich sowohl Wort- als auch Segmentzeitstempel an. FLAC-, OGG-, M4A-, MP4- und WAV-Uploads mit einer Dauer unter einer Sekunde beziehungsweise mit Sekundenbruchteilen bestanden separate reale Kompatibilitätsprüfungen.
Explizites chunking_strategy=auto wurde abgelehnt. Drei übermittelte Fälle mit WebM, MPEG plus VAD sowie MPGA plus stream=true waren nicht erfolgreich. Diese Fehlschläge belegen nicht, welche der kombinierten Einstellungen die Ablehnung verursacht hat. Diese Formate und Optionen bleiben ungeprüft; der Dienst ersetzt eine ausdrücklich angeforderte Strategie nicht stillschweigend. Der Übersetzungstest verwendete englische Eingaben, deshalb bleibt die sprachübergreifende Übersetzungsqualität ungemessen. Betrachte das akzeptierte Schema nicht als Beleg dafür, dass jede Kombination einen realen Test bestanden hat.
Fehler und Wiederherstellung
Ungültige Datei- und Parameterkombinationen werden vor der Task-Erstellung abgelehnt. API-Fehler enthalten einen numerischen code und eine lesbare message; siehe Fehlercodes. Prüfe nach der Annahme den endgültigen Task-Status. Suche bei unklarer Übermittlung den bestehenden Task, bevor du erneut sendest. Ein fehlgeschlagener Task wird nicht berechnet.
Vertragsquellen
- OpenAI-Transkriptionsreferenz
- OpenAI-Übersetzungsreferenz
- OpenAI-Leitfaden zu Sprache-zu-Text
- OpenAI-Leitfaden zu Whisper-Prompts
OpenAI hat den 26. Februar 2027 als Abschalttermin für Whisper in seiner eigenen API angekündigt. Diese Ankündigung legt keinen Abschalttermin für diesen Dienst fest. Siehe den OpenAI-Abkündigungshinweis.
