Anleitung

Warum Ihre Transkription immer wieder denselben Satz wiederholt

Es liegt nicht an Ihrer Aufnahme, und es ist kein fehlerhafter Download. Es ist das, was Whisper tut, wenn niemand spricht — und es gibt bestimmte Wege, das abzustellen.

Sie transkribieren eine lange Aufnahme, öffnen das Transkript, und irgendwo in der Mitte wird daraus das hier:

[ Silence ]
[ Silence ]
[ Silence ]
[ Silence ]

Oder schlimmer: Es greift einen echten Satz von früher in der Datei auf und wiederholt ihn vierzigmal, mit plausiblen Zeitstempeln, als hätte jemand tatsächlich eine Minute lang jede Sekunde „danke fürs Zuschauen" gesagt.

Das ist die mit Abstand häufigste Beschwerde über automatische Transkription, und fast jedes auf OpenAIs Whisper aufbauende Werkzeug hat eine Variante davon. Es lohnt sich zu verstehen, was die Ursache ist, denn die Lösung heißt nicht „ein größeres Modell kaufen".

Was tatsächlich passiert #

Whisper ist ein Sprachmodell. Es „hört keine Wörter und schreibt sie auf" — es sagt den wahrscheinlichsten nächsten Textabschnitt voraus, gegeben das Audio und alles, was es bisher geschrieben hat.

Diese Sichtweise erklärt den Fehler. Wenn das Audio Sprache enthält, ist der wahrscheinlichste nächste Text das, was gesprochen wird. Wenn das Audio keine Sprache enthält — eine Pause, Raumklang, Wartemusik, Applaus, eine Lehrende auf dem Weg zur Tafel — muss das Modell trotzdem etwas erzeugen. Es gibt kein Token für „hier ist nichts passiert".

Also greift es auf das zurück, was Sprachmodelle bei fehlendem Signal tun: Es wiederholt sich. Es hat gerade einen Satz geschrieben, die statistisch wahrscheinlichste Fortsetzung dieses Satzes ist ein ähnlicher Satz, und da nichts im Audio dieser Vermutung widerspricht, dreht es sich im Kreis. Whisper verarbeitet Audio in 30-Sekunden-Fenstern, sobald sich ein Fenster also in eine Schleife eingerastet hat, bekommen Sie dieselbe Zeile für das ganze Fenster, dann beginnt das nächste Fenster von vorn und tut es oft erneut.

Deshalb tritt das Problem in einem sehr bestimmten Muster auf:

  • Lange Aufnahmen, weil sie mehr Stille enthalten.
  • Die Mitte und das Ende von Dateien, nachdem der interessante Teil vorbei ist, das Aufnahmegerät aber noch läuft.
  • Musik und Applaus, dichtes Audio ohne Wörter darin.
  • Aufnahmen mit leiser Sprechperson und lautem Raum, wo das Modell die beiden nicht trennen kann.

Ein fünfminütiges Interview, nah am Mikrofon geführt, tut das so gut wie nie. Eine zweistündige Besprechung, bei der das Aufnahmegerät zwanzig Minuten weiterlief, nachdem alle gegangen waren, so gut wie immer.

Warum „[ Silence ]" und „[BLANK_AUDIO]" ein eigenes Symptom derselben Sache sind #

Whispers Trainingsdaten enthielten Transkripte mit Anmerkungen in eckigen Klammern — [ Silence ], [BLANK_AUDIO], (music), ♪♪♪. Wenn es also auf Nicht-Sprache trifft, ist eine seiner wahrscheinlichen Ausgaben eine dieser Markierungen, wieder und wieder.

Das ist die harmlosere Variante: Immerhin ist das Transkript ehrlich darüber, dass dort nichts ist. Es füllt Ihr Dokument trotzdem mit Hunderten Müllzeilen, und es bedeutet weiterhin, dass das Werkzeug echte Zeit darauf verwendet, Stille zu dekodieren.

Vier Wege, das zu beheben #

Grob in der Reihenfolge, wie gut sie wirken.

1. Sprachaktivitätserkennung (die eigentliche Lösung) #

Sprachaktivitätserkennung — VAD — ist ein kleines, separates Modell, das vor der Transkription läuft und markiert, welche Teile des Audios menschliche Sprache enthalten. Dem Transkribierer werden dann nur diese Teile übergeben.

Das löst das Problem an der Quelle, denn die Schleife entsteht nur, wenn Whisper Audio ohne Sprache bekommt. Wenn die Stille das Modell nie erreicht, gibt es nichts zu halluzinieren. Außerdem werden lange Dateien dadurch schneller, weil Sie nicht mehr dafür bezahlen, zwanzig Minuten leeren Raum zu dekodieren.

Verbreitet ist Silero VAD, und neuere Versionen von whisper.cpp unterstützen es direkt. Wenn Ihre App eine VAD- oder „Stille überspringen"-Option anbietet, schalten Sie sie ein. Wenn nicht, ist das eine vernünftige Sache, um die man die Entwickler bitten kann.

2. Schneiden Sie die Stille selbst heraus #

Wenn Ihr Werkzeug keine VAD-Option hat, können Sie eine grobe Variante von Hand machen: Kürzen Sie die Aufnahme vorn und hinten, bevor Sie sie transkribieren, damit die zwanzig Minuten Zusammenpack-Geräusche gar nicht erst verarbeitet werden.

Jeder Audioeditor kann das. Es ist mühsam und hilft nicht gegen Stille mitten in einer Datei, aber für den sehr häufigen Fall „das Aufnahmegerät lief am Ende zu lange" dauert es dreißig Sekunden und beseitigt das Schlimmste.

3. Filtern Sie die Markierungen hinterher heraus #

Wenn Ihr Transkript voller [ Silence ] und ♪♪♪ ist, lassen sich diese leicht per Suchen-und-Ersetzen entfernen, weil sie ganze Zeilen mit erkennbarer Form sind.

Eine Sache erfordert Vorsicht: Löschen Sie nur Zeilen, die vollständig aus einer Markierung bestehen. Eine Zeile wie „und dann — (lacht) — haben wir es ausgeliefert" ist echte Sprache und soll erhalten bleiben. Genau diese Regel sollte eine gute App für Sie anwenden.

4. Teilen Sie die Datei auf #

Da die Schleife durch Whispers Fenster begrenzt ist, verringert das Zerlegen einer langen Aufnahme in kürzere Stücke den Schaden — ein schlechtes Fenster ruiniert eine Minute, statt in eine Wand aus Wiederholung überzugehen. Manche Apps tun das intern.

Das ist ein Behelf, keine Behebung. Es verkleinert den Wirkungsradius; es hindert das Modell nicht daran, über Stille zu halluzinieren.

Was es nicht behebt #

Ein größeres Modell. Der Wechsel von Base auf Large kostet Sie viel Zeit und Speicherplatz und beseitigt die Schleife nicht, denn die Ursache ist kein Kapazitätsmangel — sie ist die Aufforderung, etwas zu transkribieren, das keine Sprache enthält. Große Modelle laufen ebenfalls in Schleifen. (Mehr zum Abwägen der Größe.)

Ein Cloud-Dienst. Die guten Cloud-Werkzeuge führen VAD und Nachbearbeitung in ihrer Pipeline aus, weshalb sie seltener darauf stoßen. Der Mechanismus darunter ist derselbe, und viele von ihnen erzeugen bei einer stillen Datei trotzdem fünfzigmal „danke". Pro Minute zu bezahlen kauft Ihnen keinen anderen Decoder.

Erneut durchlaufen lassen. Whispers Sampling ist nicht vollständig deterministisch, ein zweiter Versuch kann also an anderer Stelle in eine Schleife geraten. Das ist keine Lösung, das ist ein Münzwurf.

Was wir dagegen tun #

Konkret, denn eine vage Antwort wäre hier nutzlos.

Offline Transcription führt Silero VAD vor dem Transkribieren aus, sodass stille und sprachfreie Abschnitte den Decoder nie erreichen. Darüber hinaus werden Markierungen, die ein ganzes Segment ausmachen, wie [ Silence ] und bloße Musikzeichen, aus dem Ergebnis herausgefiltert, während Zeilen, die eine Klammerbemerkung lediglich enthalten, erhalten bleiben, denn das ist echte Sprache.

Bei langen Dateien transkribiert es zudem in Fenstern und schneidet jedes Fenster an der leisesten Stelle des Audios, sodass eine Grenze zwischen Sätze fällt statt mitten durch einen.

Die ehrliche Einschränkung: Das macht das Wiederholungsproblem sehr selten, nicht unmöglich. Jedes Whisper-basierte Werkzeug, unseres eingeschlossen, ist ein Sprachmodell, das Vorhersagen trifft, und ein Modell, das vorhersagt, kann falsch liegen. Wenn Sie etwas transkribieren, bei dem Genauigkeit zählt, lesen Sie das Transkript für die Teile, auf die Sie sich stützen wollen, gegen das Audio — unsere Interview-Anleitung beschreibt einen schnellen Weg dafür.

Die Kurzfassung #

Die Schleife ist Whisper, das Text für Audio vorhersagt, in dem keine Sprache ist. Sprachaktivitätserkennung beseitigt die Ursache, indem sie ihm dieses Audio nie zeigt. Stille zu kürzen und Markierungen zu filtern hilft, wenn Ihr Werkzeug keine VAD hat. Ein größeres Modell hilft überhaupt nicht.

Offline Transcription herunterladen

Transkribieren Sie Audio und Video vollständig auf Ihrem eigenen Mac. Nichts wird hochgeladen, es gibt kein Konto und keine Abrechnung pro Minute.

macOS 13.0 or higher · iOS 16.4 or higher