DE ▾
API-Schlüssel erhalten

Whisper-API-Server: Einrichtungsoptionen und der Textschritt

Ein Whisper-API-Server ist ein HTTP-Dienst, der Audio akzeptiert und ein Transkript zurückgibt. Er verarbeitet nur Sprache, daher muss alles, was du mit den Wörtern danach machen möchtest, von einem separaten Textmodell erledigt werden.

Aktualisiert

Isometrische Illustration von Audio, das von einem Server in einen Stapel sauberer Textzeilen fließt

Wichtige Punkte

  • Whisper ist ein Speech-to-Text-Modell; ein Server verpackt es hinter einem HTTP-Endpunkt.
  • Du kannst einen gehosteten Endpunkt mieten, einen Wrapper selbst hosten oder eine lokale Binary ausführen.
  • Diese API ist textbasiert: Sie erledigt den Schritt nach der Transkription, nicht den Audioschritt.
  • Die beiden Stufen verbindest du mit wenigen Zeilen Python, indem du das OpenAI SDK zweimal nutzt.

Die kurze Antwort

Whisper ist ein Open-Source-Spracherkennungsmodell, das OpenAI veröffentlicht hat. Alleine ist es eine Modell-Datei und einige Inferenzcode. Ein Server stellt eine HTTP-Schnittstelle davor, damit deine App eine Audiodatei senden und Text zurückbekommen kann, anstatt Python-Funktionen direkt aufzurufen.

Die meisten Server kopieren die Struktur des OpenAI-Transkriptions-Endpunkts, POST /v1/audio/transcriptions, der einen Multipart-Upload mit der Audiodatei und einem Modellnamen erwartet. Diese Struktur ist der Grund, warum dieselbe Client-Bibliothek mit einem gehosteten Dienst, einem Container auf deiner eigenen Maschine oder einem kleinen Wrapper, den jemand anderes geschrieben hat, kommunizieren kann.

  • Eingabe: eine Audiodatei, normalerweise mp3, wav, m4a oder ähnlich.
  • Ausgabe: Klartext oder JSON mit Segmenten und Zeitstempeln, je nach Server.
  • Nicht enthalten: Zusammenfassungen, Übersetzung in flüssigen Text, Extraktion von Aufgaben. Dafür brauchst du ein Sprachmodell.

Drei Möglichkeiten, einen Whisper-Server zu erhalten

1. Ein gehosteter Endpunkt

OpenAI bietet einen gehosteten Transkriptionsendpunkt an, und andere Anbieter verkaufen ebenfalls auf Whisper basierende Transkription. Du zahlst nach Verbrauch, verwaltest keine Hardware und sendest dein Audio an die Infrastruktur eines anderen Anbieters. Die Abrechnungsmodelle unterscheiden sich zwischen Anbietern, und Sprachdienste berechnen häufig nach Audiodauer, also prüfe ihre aktuellen Preise, bevor du dich für ein Volumen entscheidest.

2. Ein selbst gehosteter Wrapper

Mehrere Open-Source-Projekte verpacken Whisper oder Implementierungen davon in einen Webserver, der den OpenAI-Transkriptions-Endpunkt nachahmt. Du führst es in Docker auf einer Maschine mit GPU aus oder auf der CPU, wenn du langsamere Verarbeitung akzeptierst. Das gibt dir die Kontrolle darüber, wohin das Audio geht. Du bist jedoch für Modell-Downloads, Updates, Warteschlangen und Neustarts verantwortlich.

3. Eine lokale Binary

Das whisper.cpp-Projekt ist eine C- und C++-Portierung des Modells, und sein Repository enthält einen Beispiel-HTTP-Server. Es läuft auf normalen Laptops und kleinen Servern, was es zu einer guten Wahl für einen Prototyp oder für einen einzelnen Nutzer macht, der täglich ein paar Aufnahmen transkribiert. Für Batch-Jobs mit Hunderten von Stunden ist ein GPU-gestützter Dienst in der Regel praktischer.

Wähle basierend auf drei Fragen: Wohin darf das Audio reisen, wie viele Stunden verarbeitest du pro Monat und wer wird den Dienst betreiben. Der unten beschriebene Textschritt funktioniert bei allen dreien gleich.

Wo eine Text-LLM-API nach der Transkription passt

Ein rohes Whisper-Transkript ist eine Textmauer. Es hat wenige Absatzumbrüche, Sprecher-Namen fehlen, es sei denn, du fügst Diarisierung separat hinzu, und Füllwörter bleiben erhalten. Whisper macht auch Fehler bei Produktnamen, Fachbegriffen und Eigennamen. Fast jedes reale Projekt fügt eine zweite Stufe hinzu, die am Text arbeitet.

Typische Aufgaben der zweiten Stufe:

  • Interpunktion korrigieren, in Absätze aufteilen, Fehlanfänge entfernen.
  • Einen Anruf oder eine Vorlesung in ein paar Stichpunkten zusammenfassen.
  • Strukturierte Daten wie Entscheidungen, Namen und Daten als JSON extrahieren.
  • Gesprochenes Material in einen Artikel, ein Skript oder Show Notes umschreiben.
  • Den bereinigten Text übersetzen oder lokalisieren.

Genau hier kommt dieser Dienst ins Spiel. Es ist eine OpenAI-kompatible Text-API mit einem Modell, uncensored, einem 100.000-Token-Kontextfenster und Streaming. Ein zweistündiges Interview passt oft in eine einzelne Anfrage, sodass du die Aufteilungslogik überspringen kannst, die kleinere Kontextfenster erzwingen. Für längeres Material sieh dir die Quickstart-Dokumentation für Anfragedetails an.

Das Modell ist darauf abgestimmt, bei gesetzmäßiger Erwachsennutzung ohne Inhaltsablehnungen zu antworten. Das ist wichtig für Transkriptions-Pipelines, weil Quell-Audio unvorhersehbar ist: Interviews, Podcasts, Vorlesungen aus der Fiktion und Support-Anrufe enthalten starke Sprache und schwierige Themen. Ein Modell, das ein Transkript nicht bereinigt, weil der Sprecher ein Schimpfwort benutzt hat, verschwendet eine bezahlte Transkriptionsdurchführung. Die eine harte Grenze ist, dass nichts, was sexuelle Inhalte mit Minderjährigen betrifft, akzeptiert wird.

Eine funktionierende Zwei-Stufen-Pipeline

Das OpenAI Python SDK ermöglicht es dir, zwei Clients mit unterschiedlichen Basis-URLs zu erstellen. Eine zeigt auf deinen Whisper-Server, die andere auf diese API. Setze die Umgebungsvariablen für deinen eigenen Transkriptionsdienst; der zweite Client nutzt die Basis-URL dieser Seite.

import os
from openai import OpenAI

# Stage 1: any Whisper-compatible transcription server you run or rent.
stt = OpenAI(base_url=os.environ["STT_BASE_URL"], api_key=os.environ["STT_KEY"])

# Stage 2: the text model.
llm = OpenAI(base_url="https://api.whisperapis.com/v1", api_key=os.environ["LLM_KEY"])

with open("call.mp3", "rb") as f:
    transcript = stt.audio.transcriptions.create(
        model=os.environ["STT_MODEL"],  # the model name your server expects
        file=f,
    )

resp = llm.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "Clean up this transcript: fix punctuation, keep every statement, no commentary."},
        {"role": "user", "content": transcript.text},
    ],
    temperature=0.2,
)
print(resp.choices[0].message.content)

Zwei Details sind leicht falsch zu machen. Erstens ist der Transkriptionsmodellname das, was dein Server erwartet, weshalb er hier aus einer Umgebungsvariable stammt. Zweitens ist der Schlüssel für die Text-API getrennt von jedem Schlüssel, den du für den Sprachdienst besitzt; jeder authentifiziert nur seinen eigenen Host.

Wenn du eine Shell bevorzugst, ist der Textschritt eine einfache Chat-Vervollständigungsanfrage:

curl https://api.whisperapis.com/v1/chat/completions \
  -H "Authorization: Bearer $LLM_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "user", "content": "Summarize this transcript in five bullet points: ..."}
    ]
  }'

Die Autorisierung erfolgt über einen Bearer-Schlüssel im Authorization-Header, die Endpunkte sind POST /v1/chat/completions und GET /v1/models. Du erhältst einen Schlüssel auf der API-Schlüssel-Seite; neue Konten können dort ein One-Click-$0,50-Testguthaben beanspruchen, das 7 Tage gültig ist und keine Karte benötigt.

Dinge, die in der Praxis fehlschlagen

Große Audiodateien

Viele Whisper-Server begrenzen die Upload-Größe, und lange Aufnahmen können mitten in einer Anfrage abbrechen. Teile Audio mit einem Tool wie ffmpeg in Stücke von zehn bis dreißig Minuten, transkribiere jedes Stück und füge den Text zusammen. Da die Text-API bis zu 100.000 Token akzeptiert, kannst du die Stücke verketten und als einen Prompt senden. Die Begrenzung des Anforderungstextkörpers dieser API beträgt 8 MB, was weit mehr ist, als jedes Transkript benötigt.

Raten- und Parallelitätsbegrenzungen

Ein voller Schlüssel erlaubt 8 parallele Anfragen und 300 Anfragen pro Minute; der Test-Schlüssel erlaubt 2 und 60. Wenn du eine Warteschlange mit vielen Workern betreibst, begrenze sie auf die Parallelität deines Schlüssels. Ein Überschreiten liefert HTTP 429 mit dem Code rate_limited für Anfragen pro Minute oder concurrency für zu viele gleichzeitig. Eine gestreamte Anfrage behält ihren Slot bis das Streaming endet, sodass ein hängender Client einen Slot länger blockieren kann als erwartet. Warte und versuche es erneut; wenn die Antwort einen Retry-After: 5-Header enthält, warte so lange.

Transkriptionsfehler, die das LLM nicht sehen kann

Wenn Whisper das falsche Wort gehört hat, sieht das Textmodell nur das falsche Wort. Es kann den Fehler sogar glätten und so aussehen lassen, als sei er beabsichtigt. Füge ein Glossar von Namen und Begriffen in den System-Prompt ein und weise das Modell an, unsichere Passagen zu markieren, anstatt zu raten. Für kritisches Material halte das Originaltranskript neben dem bereinigten.

Halluzinierte Füllwörter

Whisper erzeugt manchmal erfundene Texte während Stille oder Musik. Schneide Stille vor dem Senden weg und bitte die zweite Stufe, Sätze zu markieren, die fehl am Platz wirken. Eine niedrige temperature, z. B. 0,2, hält das Aufräumen nah an der Quelle.

Was diese API nicht tut

Es transkribiert kein Audio. Es gibt keine Audioeingabe, keine Sprachausgabe, keine Bild- oder Videoerstellung, keine Embeddings und kein Fine-Tuning. Es ist ein gehostetes Textmodell hinter einem Chat-Completions-Endpunkt, betrieben von einem unabhängigen Anbieter, und es ist nicht die offizielle API von OpenAI oder einem anderen Modellanbieter. Wenn dein Projekt beide Hälften braucht, benötigst du einen Sprachserver für den ersten und diesen Dienst für den zweiten.

Prompts werden nicht zum Training verwendet. Das ist getrennt davon, was dein Sprachanbieter mit dem Audio macht, also lies die Nutzungsbedingungen dieses Anbieters separat.

Für die Kostenplanung wird die Textseite pro Token abgerechnet: $0,15 pro Million Input-Token und $0,50 pro Million Output-Token, vom Prepaid-Guthaben, das verfällt nie. Die Preise-Seite listet Aufladungsgrößen und Boni auf. Fehlgeschlagene oder abgelehnte Anfragen werden nicht berechnet, was verhindert, dass Retry-Schleifen dich Geld kosten.

Ein sinnvoller Weg zu beginnen

  1. Richte einen Whisper-kompatiblen Server ein, gehostet oder lokal, und bestätige, dass er Text für eine einminütige Datei zurückgibt.
  2. Erstelle ein Konto, beanspruche das Testguthaben und führe den curl-Befehl oben mit einem kurzen Transkript aus.
  3. Verbinde die beiden Clients mit dem Python-Skript, unter Verwendung deines eigenen System-Prompts für den Bereinigungsstil, den du möchtest.
  4. Füge eine Warteschlange erst hinzu, nachdem der Single-File-Flow funktioniert, und dimensioniere sie nach der Parallelität deines Schlüssels.

Der Großteil der Arbeit geht in den Prompt und die Audioverarbeitung, nicht in den Klebstoff-Code. Beginne mit einer Aufnahme, die du gut kennst, vergleiche die Ausgabe mit dem, was du gehört hast, und passe die Anweisungen an, bevor du skalierst.

Fragen und Antworten

Ist ein Whisper-API-Server dasselbe wie die OpenAI-API?

Nein. Whisper ist ein Modell, und ein Server ist jedes Programm, das es über HTTP verfügbar macht. OpenAI betreibt eine gehostete Version, und viele Menschen betreiben ihre eigenen mit Open-Source-Tools, die denselben Transkriptionspfad kopieren.

Kann diese API Audiodateien transkribieren?

Nein. Es akzeptiert nur Text. Nutze einen Sprachdienst oder deinen eigenen Whisper-Server für den Audio-Schritt und sende dann das Transkript hierher.

Welchen Modellnamen verwende ich für den Textschritt?

Verwende uncensored als Modell-ID mit der Base URL https://api.whisperapis.com/v1 und deinem Schlüssel als Bearer-Token.

Wie lang kann ein Transkript sein, das ich senden kann?

Das Kontextfenster umfasst 100.000 Token, die Prompt und Completion zusammen abdecken. Das reicht für viele mehrstündige Aufnahmen in einer einzigen Anfrage.

Brauche ich eine Karte zum Ausprobieren?

Nein. Neue Nutzer können mit einem Klick auf der API-Schlüssel-Seite nach der Anmeldung ein kostenloses Testguthaben von 0,50 $ beanspruchen, ohne Karte.

Dein Schlüssel ist nur ein Formular entfernt

Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. Das ist die gesamte Einrichtung.

API-Schlüssel erhalten