Deutsch

Video & Untertitel · Untertitel-Toolkit

Was das „Säubern“ einer Untertiteldatei bedeutet: Tags, Codes und fehlerhafte Formatierung

· Wie es funktioniert

Untertitel Textverarbeitung Dateiformate

Eine Untertitelzeile mit einem Tag in spitzen Klammern und einem geschweiften Klammercode über derselben Zeile, reduziert auf einfache Wörter
Original-ToolAcre-Vektorillustration

Untertiteldateien sammeln Müll: HTML-ähnliche Tags, Styling-Codes aus anderen Formaten, verirrte Stücklisten und gemischte Zeilenenden. In diesem Beitrag wird erklärt, was jede Art von Unordnung ist, woher sie kommt und wie ein sauberer Schritt sie entfernt, ohne die Worte zu berühren.

Die Untertitel zeigen „{\an8}“ und „<i>“ auf dem Bildschirm an – die sichtbaren Symptome einer unsauberen Untertiteldatei

Wenn eine Beschriftung die Zeichen eines Tags anzeigt, anstatt sich daran zu halten, teilt Ihnen der Player mit, dass dieser Markup nicht implementiert ist. SRT hat keine Formatierungsspezifikation, daher ist die Unterstützung konventionell: Viele Player akzeptieren einen kleinen Satz HTML-ähnlicher Tags, und alles außerhalb dieses Satzes wird als wörtlicher Text dargestellt. Eine Datei, die in einem Player korrekt gerendert wird und in einem anderen geschweifte Klammern anzeigt, hat sich nicht geändert; Nur der Satz von Tags, der berücksichtigt wird, hat dies getan.

Aus diesem Grund ist die Reinigung eine echte Operation und kein kosmetisches Aufräumen. Die Unordnung ist keine Dekoration, die zufällig hässlich ist. Dabei handelt es sich um für ein Format geschriebene Anweisungen, die ein anderer Spieler als Dialog liest. Die Lösung besteht darin, die Anweisungen zu entfernen und dabei jedes Wort intakt zu lassen.

Woher das Durcheinander kommt – Exporte aus formatintensiven Formaten, OCR-Ausgabe und Editoren, die ihr eigenes Markup hinzufügen

Die meiste Unordnung entsteht durch Konvertierung. Eine Datei, die in einem stilintensiven Format wie ASS oder SSA erstellt wurde, enthält Positionierungs- und Darstellungsanweisungen inline, und ein Konverter, der die Zeitabläufe originalgetreu abbildet, leitet diese Anweisungen häufig als Text weiter. Untertiteleditoren fügen ihr eigenes Markup zur Identifizierung und Hervorhebung des Sprechers hinzu, und die optische Zeichenerkennung eingebrannter Untertitel führt zu verirrten Satzzeichen und doppelten Leerzeichen, die kein Autor eingegeben hat.

Keine dieser Quellen ist in ihrer eigenen Welt fehlerhaft. Der ASS-Override-Block ist in ASS sinnvoll. Das Problem besteht darin, dass es für SRT kein Äquivalent gibt, sodass eine verlustfreie Konvertierung eine Datei erzeugt, in der die Anweisung als Zeichen und nicht als Verhalten erhalten bleibt.

Formatierungs-Tags – Kursiv-, Fett- und Schriftart-Tags, welche Spieler sie berücksichtigen und welche sie wörtlich anzeigen

Spitze Klammer-Tags werden zuerst mit einem regulären Ausdruck behandelt, der alles zwischen einem Kleiner-als und dem nächsten Größer-als entfernt. Dazu gehören kursive und fett gedruckte Tags, WebVTT-Klassen-Tags wie eine Cue-Klassenanmerkung und Sprach-Tags, die einen Sprecher benennen. Die wichtige Eigenschaft besteht darin, dass es sich um eine Textersetzung handelt, nicht um einen HTML-Parser, und dass nicht versucht wird, öffnende Tags mit schließenden Tags abzugleichen.

Diese Einfachheit hat wissenswerte Kosten. Bei einer Dialogzeile, die tatsächlich ein „Kleiner als“ und ein „Größer als“ enthält, wie beispielsweise eine gesprochene Ungleichung, wird der Text dazwischen zusammen mit den Klammern entfernt. In Dialogen kommt es selten vor und in technischen Bildunterschriften kommt es häufig vor. Daher lohnt es sich, die Ausgabe eines Reinigungsdurchlaufs auf Material zu scannen, in dem es um Code oder Mathematik geht.

Positionierungs- und Stilcodes – was Codes wie {\an8} in ASS/SSA bedeuten und warum sie in SRT unverständlich sind

Klammercodes werden durch eine zweite Ersetzung entfernt, die alles zwischen einer öffnenden und einer schließenden Klammer abdeckt. In SubStation-Formaten handelt es sich dabei um Override-Blöcke. Der am häufigsten vorkommende Block verschiebt eine Linie an den oberen Rand des Rahmens, damit sie nicht mit eingebranntem Text kollidiert. Andere legen Schriftart, Farbe, Drehung oder Karaoke-Timing fest.

In einer SRT-Datei bedeutet keiner von ihnen etwas, weshalb sie entfernt und nicht übersetzt werden. Eine Positionsanweisung hat kein SRT-Äquivalent, in das sie übersetzt werden könnte: Das Format trägt einfach keine Platzierung. Durch das Entfernen des Codes geht die Absicht des Autors verloren, dass die Zeile am oberen Rand des Rahmens liegen sollte, und dieser Verlust ist real, aber es ist besser, den Code für den Betrachter auszudrucken.

Unsichtbares Durcheinander – Bytereihenfolgemarkierungen, gemischte CRLF- und LF-Zeilenenden und nachgestellte Leerzeichen

Das unsichtbare Durcheinander wird früher beim Parsen behandelt und es lohnt sich, es zu trennen, da es überhaupt nicht Teil des Textes ist. Eine Bytereihenfolgemarkierung am Anfang der Datei wird vor allem anderen entfernt, da sie sonst an die erste Indexnummer angehängt wird und den ersten Cue kostet. Wagenrückläufe sind normalisiert, sowohl das Windows-Paar als auch ein einzelner Wagenrücklauf, sodass eine auf zwei Plattformen bearbeitete Datei korrekt in Blöcke aufgeteilt wird.

Leerzeichen innerhalb eines Cues werden mit den Tags behandelt. Reihen mit zwei oder mehr Leerzeichen oder Tabulatoren werden zu einem einzigen Leerzeichen zusammengeführt, jede Zeile wird einzeln gekürzt und der Hinweis als Ganzes wird gekürzt, nachdem die Zeilen wieder verbunden wurden. Zeichenentitäten werden bewusst in Ruhe gelassen: Eine kaufmännische Und-Entität ist Inhalt, den ein Betrachter sehen sollte, kein Markup, und ein Reiniger, der sie entschlüsselt, würde den Dialog bearbeiten, anstatt Anweisungen zu entfernen.

Arbeitsbeispiel: Bereinigen eines 200-Cue-Exports – was ändert sich, was bleibt und wie überprüft man das Ergebnis?

Durch das Bereinigen eines großen Exports werden weniger Änderungen vorgenommen, als es scheint. Nehmen Sie eine Datei mit zweihundert Cues, in der ein Konverter dem Code für den Anfang des Frames sechzig Cues vorangestellt und Hervorhebungs-Tags um weitere vierzig gewickelt hat. Durch die beiden Ersetzungen werden der Code und die Tags entfernt, der Leerraumdurchgang reduziert die doppelten Leerzeichen, die durch die Entfernungen zurückbleiben, und aus zweihundert Hinweisen werden zweihundert Hinweise mit denselben Wörtern und denselben Zeitvorgaben.

Zwei weitere Schritte sind wichtig. Ein Hinweis, dessen gesamter Inhalt ein verirrter Code war, wird leer, sobald der Code verschwunden ist, und leere Hinweise werden in einem separaten Durchgang entfernt und nicht als leere Blöcke ausgegeben, da ein Hinweis mit einem Zeitstempel und ohne Text eine Lücke darstellt, die manche Player als Blitz darstellen. Beim Zurückschreiben der Datei werden die Cues ab einem neu nummeriert und zusammenhängend gehalten, sodass durch das Entfernen keine Lücken in der Sequenz entstehen. Überprüfen Sie das Ergebnis, indem Sie die Anzahl der Cues vergleichen und jede Zeile, die ursprünglich eine Entität enthielt, stichprobenartig überprüfen.

Was dies nicht abdeckt – Umschreiben des Textes selbst, Rechtschreibung oder Übersetzung; Die Worte gehören dir

Durch die Reinigung werden Markierungen entfernt und die Sprache nicht berührt. Die Rechtschreibung wird nicht korrigiert, Abkürzungen werden nicht erweitert, Transkriptionsfehler werden nicht korrigiert und es werden keine Übersetzungen durchgeführt. Wenn in einer Bildunterschrift das falsche Wort steht, wird sie anschließend korrekt formatiert auch mit dem falschen Wort wiedergegeben. Diese Grenze ist bewusst gesetzt: Einem Werkzeug, das den Dialog stillschweigend umschreibt, wäre es unmöglich, auf Material zu vertrauen, das es nicht versteht.

Es repariert auch keine Struktur. Eine Datei, deren Blöcke keine Zeitstempel haben, hat ein Problem beim Parsen, nicht bei der Formatierung, und das Entfernen von Tags daraus führt nicht zu Hinweisen. Codierungsfehler fallen ebenfalls nicht in den Geltungsbereich. Eine Datei, die mit dem falschen Zeichensatz dekodiert wurde, liefert perfekt wohlgeformte Hinweise, deren Text falsch ist, und das wird auch durch die Tag-Entfernung nicht erkannt, da nichts an der Struktur beschädigt ist.

Fazit: Markup entfernen, Bedeutung beibehalten – wie der Clean-Schritt des Subtitle Toolkit mit alltäglichem Durcheinander umgeht und dokumentiert, was er in Ruhe lässt

Die Regel lautet Markup entfernen, Bedeutung beibehalten. Spitze Klammer-Tags und Klammer-Codes werden verwendet, weil es sich um Anweisungen handelt, die ein Spieler entweder ignoriert oder ausgibt. Doppelte Leerzeichen und Auffüllungen pro Zeile werden entfernt, da sie Artefakte des Entfernens oder des ursprünglichen Exports sind. Entitäten, Zeichensetzung und jedes Wort bleiben erhalten, denn das ist es, was der Betrachter lesen soll.

Führen Sie einen Tag-lastigen Export über den Subtitle Toolkit-Konverter durch und vergleichen Sie ihn mit dem Original, anstatt der Ausgabe auf einen Blick zu vertrauen. Bestätigen Sie, dass die Cue-Anzahl unverändert bleibt, außer wenn Cues wirklich leer waren, überprüfen Sie, ob jede Zeile, die eine Entität enthält, diese noch enthält, und scannen Sie Zeilen, in denen es um Code oder Mathematik geht, nach Text, der durch eine verirrte spitze Klammer verloren gegangen ist.