WhisperX: Zeitstempel für jedes Wort und locuteurs
WhisperX ist eine freie Erweiterung für Whisper (BSD-2-Clause-Lizenz, über 24.000 Sterne auf GitHub), die zwei Funktionen hinzufügt: ein Forced Alignment mithilfe eines phonetischen Modells für wirklich genaue Zeitstempel auf Wortebene und eine Sprechertrennung über pyannote-audio. Das Ganze läuft lokal, mit einer gebündelten Inferenz, die laut Projekt mit Whisper large-v2 bis zu 70-mal schneller als Echtzeit ist – dafür müssen drei Modelle statt nur eines geladen werden.
Whisper transkribiert sehr gut und liefert ungefähre Zeitstempel. WhisperX ergänzt zwei Dinge, die alles verändern, sobald es um mehr als ein einfaches Dokument geht: ein Forced Alignment, das wirklich genaue Zeitstempel für jedes einzelne Wort liefert, und eine Sprechertrennung, die angibt, wer wann gesprochen hat. Dadurch wird aus einer Transkription eine Grundlage für brauchbare Untertitel und ein lesbares Besprechungsprotokoll.
#Das, was Whisper allein nicht löst
WhisperX ist eine freie Erweiterung unter der Lizenz BSD-2-Clause, die Whisper um zwei Funktionen ergänzt, die das Modell allein nicht bietet: Zeitstempel für jedes einzelne Wort, die durch Forced Alignment mit einem wav2vec2-Modell ermittelt werden, und eine Sprecherzuordnung, die ein pyannote-Modell liefert. Sie benötigen WhisperX, wenn Sie Untertitel erstellen, die zum richtigen Zeitpunkt erscheinen müssen, oder ein Besprechungsprotokoll, aus dem hervorgeht, wer gesprochen hat. Wenn Sie nur Text benötigen, reicht Whisper allein oder faster-whisper aus. Dafür müssen Sie drei Modelle statt eines laden und benötigen ein Hugging-Face-Zugriffstoken für die Sprechertrennung. Hinzu kommen dokumentierte Einschränkungen: Zahlen und Beträge werden nicht zeitlich ausgerichtet, gleichzeitiges Sprechen wird schlecht verarbeitet, und die Sprechertrennung bleibt unvollkommen. Alles läuft lokal, sowohl auf einer GPU als auch auf einer CPU oder einem Mac.
Whisper erzeugt hervorragenden Text. Seine Schwächen zeigen sich, sobald man etwas anderes als Text benötigt. Laut dem WhisperX-Repository werden die Zeitstempel von Whisper pro Äußerung und nicht pro Wort angegeben und können um mehrere Sekunden verschoben sein: In einem Dokument fällt das nicht auf, bei Untertiteln ist es inakzeptabel, denn ein Untertitel, der einen Moment zu spät erscheint, ist schlimmer als gar kein Untertitel. Und Whisper unterscheidet keine Sprecher: Eine zweistündige Besprechung wird als undifferenzierter Monolog wiedergegeben.
WhisperX erfüllt beide Anforderungen, indem es zusätzliche Schritte hinzufügt, statt das Modell zu ersetzen. Diese Designentscheidung bewahrt die Transkriptionsqualität, die Sie kennen. Das unter der Lizenz BSD-2-Clause veröffentlichte Projekt hat inzwischen mehr als 24.000 Sterne auf GitHub — ein Zeichen dafür, dass der Bedarf, den es abdeckt, nämlich Transkriptionen mit Zeitstempeln zu versehen und Sprechern zuzuordnen, weit über die Untertitelung hinausgeht.
#Die drei Schritte
Ihr privates, kostenloses ChatGPT auf Ihrem Rechner in einer Stunde – mit LM Studio, Ollama, Open WebUI und Ihren Dokumenten, ganz ohne Cloud.
- Lebenslanger Online-Zugang
- PDF + Dateien
- Erstattung binnen 30 Tagen
| Schritt | Rolle | Was dafür benötigt wird |
|---|---|---|
| Sprachaktivitätserkennung (VAD) | Das Signal wird vor der Transkription in Abschnitte mit Sprache unterteilt | Ein Sprachaktivitätsdetektor (standardmäßig pyannote, optional silero) |
| Transkription | Audio wird über faster-whisper, eine schnelle Implementierung von Whisper, in Text umgewandelt | Ein Whisper-Modell: Seine Größe bestimmt Qualität und Speicherbedarf (auf der Kommandozeile ist small das Standardmodell) |
| Erzwungenes Alignment | Jedes Wort wird mithilfe von wav2vec2 exakt seiner zeitlichen Position im Audio zugeordnet | Ein sprachspezifisches phonetisches Modell |
| Trennung der Sprecher | Die Audioaufnahme wird mit pyannote-audio nach Stimmen segmentiert, und die Redebeiträge werden gekennzeichnet | Das standardmäßig verwendete Modell pyannote speaker-diarization-community-1, für dessen Zugriff Bedingungen akzeptiert werden müssen |
Die Sprachaktivitätserkennung hat eine doppelte Funktion: Laut Repository reduziert sie Halluzinationen und ermöglicht es, Segmente zu bündeln, ohne die Wortfehlerrate zu verschlechtern. Der Alignment-Schritt wird oft unterschätzt. Er macht die Zeitstempel auf Wortebene zuverlässig, indem er mithilfe eines wav2vec2-Modells jedes Wort seiner tatsächlichen Position im Audiosignal zuordnet. Dieser Schritt ist sprachabhängig: Das Repository weist darauf hin, dass ein sprachspezifisches wav2vec2-Modell erforderlich ist und dass Standardmodelle für Englisch, Französisch, Deutsch, Spanisch und Italienisch verfügbar sind, dazu Modelle für zahlreiche weitere Sprachen über Hugging Face. Für eine nicht aufgeführte Sprache muss man selbst ein phonetisches Modell finden und testen. Die Transkription selbst profitiert von gebündelter Inferenz: Das Projekt gibt mit dem Modell large-v2 eine bis zu 70-fache Echtzeitgeschwindigkeit an, ohne die Hardware im README zu nennen. Betrachten Sie diese Zahl als Obergrenze, die Sie auf Ihrem Rechner überprüfen müssen.
#Sprechertrennung ohne Illusionen
Die Labelbildung funktioniert durch die Gruppierung der sprachlichen Merkmale über den gesamten Aufnahmeinhalt mittels pyannote-audio. Der Standardmodell von WhisperX ist heute speaker-diarization-community-1, veröffentlicht unter der Lizenz CC-BY-4.0, und verarbeitet ein monochromes Audio-Signal mit 16 kHz (Stereo wird in Mono umgewandelt, andere Frequenzen werden reabgegriffen). Die Modellbeschreibung behauptet, er erbringe deutlich bessere Ergebnisse als das alte Pipeline 3.1. Der WhisperX-Repository ist transparent bezüglich der Grenzen: Überlappende Sprache wird nur mittelmäßig behoben, und die Trennung bleibt „weit von der Perfektion entfernt“. Die Diarisation-Fehler, die von pyannote veröffentlicht wurden, betragen 11,7 % auf AISHELL-4, 17,0 % auf AMI (individuelle Mikrofone), 19,9 % auf AMI (fernliegende Mikrofone), 26,7 % auf CALLHOME (Teil 2) und 46,8 % auf Ego4D, je nach Datensatz. Es handelt sich um akademische Datensätze, nicht um Ihre Aufnahmen, aber die Größenordnung zeigt, dass eine Nachbearbeitung notwendig bleibt. Die Situation verschlechtert sich genau dort, wo Meetings komplexer werden: Personen, die sich gegenseitig unterbrechen, jemand, der weit vom Mikrofon entfernt ist, sowie nahe liegende Stimmen.
Zwei praktische Hinweise. Sie können eine minimale und eine maximale Anzahl von Sprechern angeben (Optionen --min_speakers und --max_speakers). Das Repository empfiehlt dies, wenn die Anzahl bekannt ist: Das Modell muss sie dann nicht mehr schätzen. Außerdem sind die Kennzeichnungen konstruktionsbedingt anonym: Das System sagt, dass es drei Stimmen gab und welche Gesprächsbeiträge zu welcher Stimme gehören, aber nicht, wer dahintersteht. Einer Kennzeichnung einen Namen zuzuordnen, ist ein manueller Schritt – und zugleich der Moment, in dem die Transkription zu personenbezogenen Daten wird.
#Die tatsächliche Genauigkeit, nicht die des Benchmarks
Zur Transkription selbst lohnt sich ein Blick auf die Zahlen, denn der übliche Benchmark zeichnet ein zu positives Bild. Laut VexaScribe, einem kommerziellen Transkriptionsdienst, erreicht Whisper large-v3 auf LibriSpeech test-clean, einem Datensatz mit sauberen Audioaufnahmen und nur einem Sprecher, eine Wortfehlerrate von etwa 2,7 %. Bei englischen Audioaufnahmen aus der Praxis – Meetings, Podcasts, Telefonaten – gibt dieselbe Website diese Rate mit etwa 8 bis 12 % an. Das sind von einem Branchenanbieter veröffentlichte Größenordnungen, die für Englisch gelten: Über Ihre französischen Aufnahmen sagen sie nichts aus. WhisperX verbessert die Transkription selbst nicht; diese stammt weiterhin von Whisper. Es ergänzt vielmehr die genaue zeitliche Position jedes Wortes und die Information, wer es gesprochen hat – zwei Angaben, die diese Fehlerrate nicht erfasst.
| Bedarf | Tool |
|---|---|
| Reiner Text, schnell | Whisper allein oder eine schnelle Implementierung wie faster-whisper |
| Untertitel, die zum richtigen Zeitpunkt erscheinen | WhisperX: Das Alignment ist sein eigentlicher Zweck |
| Protokoll, aus dem hervorgeht, wer was gesagt hat | WhisperX mit aktivierter Sprechertrennung |
| Live-Transkription mit geringer Latenz | Eine auf Streaming ausgelegte Engine; diese Verarbeitungskette ist für Dateien gedacht |
#Was dafür benötigt wird
- Die Größe des Whisper-Modells bestimmt alles
- Ein großes Modell liefert den besten Text und benötigt den meisten Speicher; im Repository wird darauf hingewiesen, dass ein größeres Modell die Genauigkeit der Zeitstempel auf Kosten eines höheren GPU-Speicherbedarfs verbessert, während ein größeres Alignment-Modell kaum hilft.
- Drei Modelle werden geladen, nicht eins
- Der Speicherverbrauch erreicht seinen Höchststand, wenn die Modelle für Transkription, Alignment und Trennung gleichzeitig im Speicher liegen. Das Python-Beispiel im Repository gibt jedes Modell nach seinem Schritt frei (Garbage Collection, dann torch.cuda.empty_cache()), eine bewährte Abhilfe bei einer kleinen Grafikkarte.
- Ohne GPU, auch auf dem Mac
- Das Repository nennt die Befehlszeile für den CPU-Betrieb und für macOS: --compute_type int8 --device cpu. Es veröffentlicht keine Verarbeitungszeiten für den CPU-Betrieb: Messen Sie die Laufzeit anhand eines Ausschnitts, bevor Sie eine Stapelverarbeitung planen. Bei einer NVIDIA-GPU wird das CUDA-Toolkit 12.8 benötigt, und das Projekt gibt für large-v2 mit beam_size=5 einen Speicherbedarf von weniger als 8 GB an.
- Die Batchverarbeitung hilft
- Die Stapelverarbeitung erklärt die angegebene Geschwindigkeit: Der Standardwert auf der Kommandozeile ist --batch_size 8. Eine Verringerung dieses Werts (das Repository nennt 4) gibt GPU-Speicher frei.
#Installieren und eine Transkription starten
Die Installation erfolgt über pip; das Paket erfordert Python 3.10 bis 3.13. Das Kommandozeilenprogramm schreibt standardmäßig alle verfügbaren Formate (srt, vtt, txt, tsv, json, aud), und die Option --highlight_words True unterstreicht in den SRT- und VTT-Untertiteln jedes Wort genau dann, wenn es gesprochen wird. Die JSON-Ausgabe enthält Sprecherkennzeichnungen, wenn die Sprechertrennung aktiviert ist.
- 01WhisperX installierenpip install whisperx installe le paquet ; avec un GPU NVIDIA, installer d'abord le kit CUDA 12.8, selon le dépôt. Le dépôt ajoute qu'il peut falloir installer aussi ffmpeg, en renvoyant aux instructions d'installation de Whisper.
- 02Transkribieren und ausrichtenEinen ersten Durchlauf mit einem mittelgroßen Whisper-Modell starten (Standard ist small) und die Sprache angeben, falls sie im Voraus bekannt ist: Ohne diese Angabe wird die Sprache automatisch erkannt, und das Alignment-Modell hängt davon ab.
- 03Bei Bedarf die Sprechertrennung aktivieren--diarize und den Hugging-Face-Zugriffstoken hinzufügen, den Sie nach Annahme der Nutzungsbedingungen des pyannote-Modells erhalten haben, und die Anzahl der Sprecher angeben, falls Sie diese kennen.
- 04Die Ausgabedatei erneut lesenDie erzeugte SRT- oder JSON-Datei öffnen und einige zufällig ausgewählte Passagen überprüfen, insbesondere die Redebeiträge an Stellen, an denen mehrere Personen fast gleichzeitig sprechen.
- Whisper lokal: grundlegende Transkription
- Ein Besprechungsprotokoll lokal erstellen
- Lokaler Sprachassistent: die vollständige Kette
- Transkription von Konsultationen mit Whisper
#Was das Alignment nicht mit Zeitstempeln versehen kann
Das Repository nennt Einschränkungen, die Sie kennen sollten, bevor Sie perfekte Untertitel versprechen. Die erste betrifft Zahlen: Wörter, deren Zeichen nicht im Wörterbuch des Alignment-Modells vorkommen, etwa „2014.“ oder „£13.60“, können nicht zeitlich zugeordnet werden und erhalten daher keinen Zeitstempel. Bei einer Besprechung mit vielen Beträgen und Datumsangaben erscheinen diese Wörter in der SRT-Datei ohne eigene Zeitangabe. Die zweite Einschränkung betrifft gleichzeitiges Sprechen, mit dem sowohl Whisper als auch WhisperX schlecht umgehen. Die dritte betrifft die Sprache: Dafür ist ein sprachspezifisches wav2vec2-Modell erforderlich.
Zwei Unterschiede gegenüber dem ursprünglichen Whisper erklären auch Abweichungen im Text. Damit pro Batch ein einziger Durchlauf genügt, erfolgt die Inferenz ohne Whisper-Zeitstempel. Dies kann laut einer Warnung im Repository zu Abweichungen gegenüber der Standardausgabe führen. Außerdem ist die Option condition_on_prev_text standardmäßig deaktiviert, um Halluzinationen zu reduzieren. Seit 2026 stellt die Option --interleaved_context einen durchgehenden Kontext zwischen den Segmenten wieder her, der dem Projekt zufolge für die Zeichensetzung und das technische Vokabular hilfreich ist. Sie ist jedoch noch neu: Testen Sie sie an einem Ausschnitt, bevor Sie sie einsetzen.
#Konkrete Anwendungsfälle
- Untertitelung von Schulungsvideos
- Zeitstempel für jedes einzelne Wort verhindern, dass Untertitel der Stimme um einen ganzen Satz hinterherhinken – ein bei Lehrinhalten sofort sichtbarer und störender Mangel.
- Protokoll einer Besprechung mit mehreren Sprechern
- Die Trennung der Sprecher ermöglicht es, nachzuvollziehen, wer was vorgeschlagen hat – eine Information, die eine Zusammenfassung ohne Zuordnung zu den Sprechern nicht zuverlässig wiedergeben kann.
- Lange Podcasts und Interviews
- Die Batch-Inferenz ist für lange Aufnahmen ausgelegt: Genau das kündigt der Titel des Artikels der Autoren an, „Time-Accurate Speech Transcription of Long-Form Audio“.
- Audioarchive zum Indexieren
- Ein Text mit Zeitstempeln für jedes einzelne Wort ermöglicht es, eine Suche direkt zur exakten Stelle in der Aufnahme zu führen, statt nur zum gesamten Dokument.
- Ausschnitte für soziale Medien
- Die genaue Stelle, an der ein prägnanter Satz gesprochen wird, wortgenau zu finden, erleichtert das Zuschneiden eines kurzen Ausschnitts, ohne das gesamte Video erneut anhören zu müssen.
Diese Fälle haben eines gemeinsam: Keiner erfordert eine Transkription in Echtzeit. Verarbeitet wird eine bereits aufgezeichnete Datei im Nachhinein, sodass die gebündelte Inferenz ohne Latenzvorgaben arbeiten kann. Sobald es um Live-Untertitel geht – bei einer übertragenen Konferenz oder einem laufenden Anruf –, ist WhisperX nicht mehr das richtige Werkzeug, unabhängig davon, wie leistungsfähig die verfügbare Maschine ist.
#Die Transkription ist eine Eingabe, kein Endprodukt
In nahezu allen Praxisfällen ist die Transkription nicht das eigentliche Ziel: Sie liefert die Eingabe für ein lokales Modell, das daraus ein Protokoll, eine Liste der getroffenen Entscheidungen oder eine Zusammenfassung erstellt. Das hat eine Konsequenz für die erwartete Qualität: Ein Transkriptionsfehler bei einem seltenen Wort fällt weniger ins Gewicht als die Struktur der Sprecherwechsel, denn diese Struktur ermöglicht es dem Modell, das Gesagte korrekt zuzuordnen.
Konkret trennt ein sinnvoller Produktionsablauf die beiden Aufgaben: WhisperX erzeugt einen Text mit Zeitstempeln und Sprecherkennzeichnungen, anschließend liest ein separates Sprachmodell diesen Text durch, um daraus eine strukturierte Zusammenfassung zu erstellen. Beide Aufgaben in einem einzigen Aufruf zu vermischen – also ein Modell darum zu bitten, die Audiodaten direkt zusammenzufassen – nimmt der Pipeline die präzisen Zeitstempel, die WhisperX gerade liefern soll, und erschwert die nachträgliche Überprüfung einer bestimmten Passage.
Ein weiterer Vorteil: Die Transkription erfolgt nur einmal und lässt sich anschließend für mehrere Ergebnisse — einen kurzen Bericht, ein Entscheidungsprotokoll, Untertitel — wiederverwenden, ohne das Audio erneut zu verarbeiten. Der mit Zeitstempeln und Kennzeichnungen versehene Text wird zur maßgeblichen Referenz.
- Quelle: offizielles WhisperX-Repository auf GitHub
- Quelle: Sprecher-Trennmodell pyannote community-1
- Quelle: VexaScribe, Wortfehlerquote von Whisper large-v3 (kommerzieller Dienst)
- Quelle: whisperx auf PyPI
#FAQ
Ist WhisperX kostenlos?+
Wie zuverlässig ist die Sprechertrennung?+
Braucht man eine GPU?+
WhisperX oder Whisper allein?+
Funktioniert es auf Französisch?+
Kann es in Echtzeit transkribieren?+
Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.