CommunityCodierung & Entwicklunggithub.com

jiajunzeng789/cantonese-subtitle-skill

Transkribiert kantonales Audio/Video mit lokalem Dual-Modell und Sprachmodell-Kalibrierung zu einzeiligen, schriftsprachlichen chinesischen SRT-Untertiteln ohne Satzzeichen, optimiert für Hoch- und Querformat, unter Beibehaltung von Zahlen und notwendigen Symbolen.

Was ist cantonese-subtitle-skill?

Dieses Skill ermöglicht die professionelle Untertitelung von kantonhaltigen Audio- und Videodateien in hochwertige, einzeilige chinesische Schriftsprache-Untertitel (SRT). Es kombiniert zwei lokale Spracherkennungsmodelle (Whisper large-v3 und Qwen3-ASR-1.7B) für robuste Transkription mit einer nachgelagerten, KI-gestützten Kalibrierung. Der gesamte Workflow – Erkennung, Kalibrierung, Zeilenumbrüche, Zeitstempel – wird auf dem eigenen Rechner ausgeführt, ohne die Originaldaten an externe APIs zu senden (außer bei optionaler Online-Nutzung des Sprachmodells, was klar gekennzeichnet wird). Es ist speziell für Entwickler, Content-Ersteller und Lokalisierungs-Teams konzipiert, die kantonale Medieninhalte für vertikale (z. B. Social Media) und horizontale Formate (z. B. Film) aufbereiten müssen. Das Skill handelt automatisch die Format-basierte Zeilenlängenbegrenzung, die Erkennung von Sprecherwechseln und die Entfernung von Satzzeichen, während es essentielle Symbole (z. B. 1.8m, 30%, CX-5) und Zahlen intakt lässt. Es arbeitet in klar definierten Schritten und meldet den Fortschritt über eine Task-Progression-Datei (references/task-progress.md). Besonderer Wert wird auf Fehlerbehandlung und Wiederaufnahmefähigkeit gelegt: Jeder Schritt protokolliert seinen Status, und bei Fehlern kann der Prozess an der letzten intakten Stelle fortgesetzt werden. Die finale Ausgabe sind zwei SRT-Dateien (Quer-/Hochformat), die nach Semantik und Zeitstempel korrekt aufgeteilt sind. Zusätzlich wird eine Überprüfungsliste mit Unstimmigkeiten (unbestätigte Eigennamen, zeitliche Zweifel) in einer separaten `.review.srt` Datei bereitgestellt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jiajunzeng789/cantonese-subtitle-skill/tree/HEAD/skills/auto-cantonese-subtitles

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Auto-Kantonesisch Schriftsprache Einzeilige Untertitel

Ausführungsgrenzen

  • Spracherkennung und Medienverarbeitung erfolgen lokal; Audio/Video werden nicht an Erkennungs-APIs hochgeladen. Bei der Vorbereitung können öffentliche Modelle und Abhängigkeiten heruntergeladen werden; bei Offline-Verarbeitung wird nicht automatisch heruntergeladen oder auf die Cloud umgeschaltet.
  • Die Textkalibrierung erfolgt durch den aktuellen Assistenten. Wenn der Assistent ein Online-Modell verwendet, wird der transkribierte Text an dieses weitergegeben; dies darf nicht als vollständig offline beschrieben werden. Falls der Benutzer auch eine Text-Offline-Verarbeitung wünscht, wird ein lokales Textmodell verwendet; falls nicht vorhanden, werden die tatsächlichen Einschränkungen erläutert.
  • Endgültige Ausgabe ist eine UTF-8 .srt Datei mit genau einer Textzeile pro Untertitel und Zeitstempeln aus dem Originalmedium; kein reiner Textentwurf als Ersatz.
  • Standardmäßig keine Satzzeichen; beibehalten werden Zahlen, Einheiten und für formelle Namen notwendige Symbole, z.B. 1.8m, 30%, -5℃, 0—100km/h, CX-5. „Keine Satzzeichen“ darf nicht als Löschen aller Nicht-Han-Zeichen verstanden werden.
  • Eingabe, ursprüngliche Erkennungsergebnisse, Kalibrierungsaufzeichnungen und endgültige Untertitel werden separat gespeichert; Originaldateien werden nicht überschrieben.

Umgebung und Aufgabenrückmeldung

  • Zuerst die Checkliste zeigen, dann ausführen. Verwende die Statustabelle in references/task-progress.md; markiere jeden Schritt nach erfolgreicher Überprüfung als erledigt. Aktualisiere sofort, wenn ein Schritt beginnt, abgeschlossen ist, fehlschlägt oder auf den Benutzer wartet. Bei langen Aufgaben wird bei Ausführungsmöglichkeit etwa alle 60 Sekunden der aktuelle Schritt, die verstrichene Zeit und die letzten Fortschritte gemeldet; keine erfundenen Prozentangaben oder Versprechungen von Hintergrund-Push-Benachrichtigungen, die die Software nicht unterstützt.
  • Einheitliche Skriptvorbereitung und Selbstprüfung. Bei der ersten Vorbereitung oder bei Umgebungsfehlern zuerst scripts/setup_runtime.py gemäß references/runtime-setup.md ausführen; keine Ad-hoc-Installationsbefehle zusammenstellen oder Abhängigkeitsversionen willkürlich ändern. Das Skript prüft zuerst schreibgeschützt die lokale Registrierung, die bekannte Umgebung und den benutzerdefinierten Interpreter; bei Erfolg wird es wiederverwendet, andernfalls wird Schritt für Schritt eine dedizierte Umgebung erstellt; Installationsprotokolle und Fortschritt werden gespeichert. Audio-Dekodierung, Modell-Ladung und Inferenz kurzer Stichproben werden separat validiert. Weitere Behandlung von Abhängigkeitsfehlern siehe references/environment-recovery.md. Das System-Python wird nicht geändert; Entwickler-PC-Pfade werden nicht fest codiert.
  • Bei Inlandsnetz zuerst Download-Quellen prüfen. Falls Abhängigkeiten installiert werden müssen, zuerst die Erreichbarkeit vertrauenswürdiger HTTPS-Mirrors im Inland und die benötigte Version prüfen; dann temporär für diesen Befehl festlegen; globale pip-Einstellungen nicht ändern. Die Benachrichtigung soll den tatsächlichen Paketnamen, die Quelle und den erwartbaren Download-Fortschritt anzeigen; es darf nicht nur „PyTorch ist groß, bitte warten“ heißen, und das Volumen aller Abhängigkeiten darf nicht auf die Größe von PyTorch reduziert werden. Siehe Umgebungs-Wiederherstellungsdokumentation für Details.
  • Erst Beweise, dann Fehler beheben. Vollständige Fehler und Exit-Codes aufbewahren; unterscheiden zwischen Netzwerk-, Build-/Versions-, Berechtigungs- und bestätigten Sicherheits-Sperren. Nur aufgrund von pip-Fehlern, temporären Verzeichnissen oder „Datei löschen“-Hinweisen darf nicht auf eine Sicherheits-Sperre geschlossen werden; nicht standardmäßig verlangen, Schutz deaktivieren, unbekannte Dateien zulassen oder neu starten. Wenn Benutzereingriff erforderlich ist, die spezifische Begründung, Zieloperation, Auswirkung und Wiederherstellungsmethode erläutern.
  • Fehler können wieder aufgenommen werden. Basis-Tools, Whisper, Qwen werden Schritt für Schritt vorbereitet und protokolliert. Bei demselben Fehler wird nach begründeter Korrektur höchstens ein automatischer Wiederholungsversuch unternommen; bei erneutem Fehlschlag wird dieser Schritt gestoppt, der Unterbrechungspunkt gemeldet und die Arbeit fortgesetzt, die nicht davon abhängt. Wenn der Benutzer „Weiter“ sagt, zuerst die Aufzeichnung und laufende Aufgaben prüfen, vom noch gültigen Unterbrechungspunkt aus fortsetzen; keine erneute Installation oder Downloads starten.

Arbeitsablauf

  1. Format des fertigen Films bestimmen. Bei Videos mittels scripts/subtitle_profile.py die Anzeigegröße ermitteln, dabei Rotation und Pixel-Seitenverhältnis berücksichtigen, Bildelemente wie MP3-Cover ignorieren. Die endgültige Schnittgröße hat Vorrang vor dem Quellvideo. Wenn der Benutzer Hochformat angibt, darf nicht die Querformat-Voreinstellung für eine Querformat-Quelle verwendet werden. Audio hat kein Format: Verwende die bereits vom Benutzer angegebenen Einstellungen für das fertige Medium; bei Unklarheit nach Hoch- oder Querformat fragen, oder auf Wunsch des Benutzers jeweils eine Version ausgeben; nicht als automatische Erkennung beschreiben. Siehe Details in references/subtitle-layout.md.
  2. Lokale Erkennung und Kreuzprüfung. Modell-Integrität prüfen; Whisper large-v3 und Qwen3-ASR-1.7B verwenden; Originaltext und Zeitdaten aufbewahren. Die Standardausgabe von Qwen wird für die Kreuzkalibrierung verwendet; die Zeitreferenzierung erfolgt über Whisper und das Originalaudio; nur wenn zusätzliches Alignment erforderlich ist und erfolgreich validiert wurde, wird optional ForcedAligner geladen; das Alignment-Modell ist kein notwendiger Download für den Basisbetrieb. Gleiches Material, gleiche Hintergrundwörter vergleichen. Kurze Stichproben nacheinander ausführen; bei über 180 Sekunden scripts/transcribe_long.py zur Verwaltung überlappender Fenster, eindeutiger Dateinamen, Zeitverschiebungen und wiederverwendeter Ergebnisse verwenden; keine temporären Shell-Schleifen schreiben. Das Skript entfernt konservativ nur Duplikate, die in Zeit und Text übereinstimmen; alle anderen Nähte gehen in die Prüfung. Semantische Deduplizierung muss unter Einbeziehung beider Modelle und des Original-Audios erfolgen; Fensterinhalte nicht direkt zusammensetzen und als Endfassung betrachten. Siehe Ausführungsanleitung in references/local-testing.md. Der erste Vergleich erfolgt auf Basis der Ergebnisse ohne Prompt-Worte. Fehlende Segmente, Duplikate oder verdächtige Zusatzinhalte müssen anhand kurzer Audiosegmente erneut getestet werden; nicht nur ein Modell als richtig annehmen.
  3. Erst kalibrieren, dann Zeilenumbrüche setzen. Der aktuelle Assistent korrigiert basierend auf den Originaltexten beider Modelle, dem benachbarten Kontext und lokalen Fachbegriffen Eigennamen sowie Kandidaten mit gleichem Klang und erstellt eine schriftsprachliche Arbeitsfassung mit beibehaltenen Satzzeichen gemäß references/editorial-rules.md. Bedingungen, Negationen, Zahlen, Vermutungen und Standpunkte beibehalten. Sprachliche Schlussfolgerungen erzeugen nur Kandidaten und entsprechen nicht Abhören oder externer Überprüfung.
  4. Entsprechend des Formats in semantische Einzeleinheiten aufteilen. Nicht mehr verlangen, dass ein ganzer Satz eine Untertitelzeile belegt. Erlauben, lange Sätze in aufeinanderfolgende, natürliche Kurzsätze umzuformulieren, wobei jede Zeile eine klare kleine Bedeutung ausdrücken kann. Nicht nach fester Zeichenzahl aufteilen; Marken, Fahrzeugmodelle, Namen, feste Termini, Zahlen und Einheiten nicht trennen; keine isolierten Konjunktionen oder halben Subjekt-Prädikat/Verb-Objekt-Strukturen erzeugen. Soweit möglich in die empfohlene Länge des Formats fallen; kurze Antworten nicht mit Inhalten auffüllen. Nicht kürzen, um Bedingungen, Zahlen oder Standpunkte zu entfernen. Bei Überschreitung der Obergrenze umschreiben oder den Satz teilen; keine Zeilenumbrüche oder Abschneiden.
  5. Mehrere Sprecher getrennt behandeln. Antworten und Fragen verschiedener Personen nicht zu einem Satz oder einer Zeile zusammenfassen; keine zweizeiligen Dialoge auf demselben Bildschirm verwenden, um kurze Untertitel zu vermeiden. Kurze Antworten verwenden das tatsächliche Sprachintervall; die Anzeige kann in Sprachpausen angemessen verlängert werden, darf aber nicht über die nächste Sprechzeit hinausgehen. Ohne Sprechertrennung keine Personenidentität aus dem Text erfinden; undeutliche Reihenfolge oder überlappende Stimmen gehen in die Prüfung; es wird nicht garantiert, dass Personenvertauschungen behoben sind.
  6. Jede semantische Einheit zeitlich zuordnen. Start- und Endpunkte der entsprechenden Originalwörter/-fragmente verwenden; Quellzuordnung und Medienverschiebung aufbewahren. Neu aufgeteilte Kurzsätze müssen am Audio neu verortet werden; die Zeit des alten langen Satzes darf nicht gleichmäßig nach Zeichenanzahl aufgeteilt werden. Nur die ursprüngliche kantonesische Transkription für Forced Alignment verwenden; keine umgeschriebenen Mandarin-Texte mit kantonesischer Aussprache abgleichen. Bei fehlschlagendem Alignment erneut anhören/neu ausrichten; keine präzisen Zeiten vortäuschen.
  7. Schließlich Satzzeichen entfernen und exportieren. Nachdem die Zeilenumbrüche und Zeiten festgelegt sind, bereinigt der Exporteur Satzzeichen, entfernt überflüssige Leerzeichen und konvertiert in vereinfachtes Chinesisch; schützt notwendige Symbole. Nach der Bereinigung Zeilenbreite, Geschwindigkeit, Überlappungen und Grenzüberschreitungen prüfen. Das Untertitel-JSON enthält media_duration, subtitle_profile, cues, optional protected_terms; Schema und Aufruf siehe Formatbeschreibung. scripts/export_srt.py verweigert den Export bei Zeilenumbrüchen, Überbreite oder erkennbaren kantonesischen Resten; muss nach semantischer/zeitlicher Korrektur erneut versucht werden; Prüfung nicht umgehen.
  8. Vorschau und Abnahme. Bei der Konfiguration von Schriftart, Schriftgröße und Sicherheitszone des fertigen Films zuerst die Schriftbreite messen; bei reiner Schätzung mit Han-Zeichen-Breite die Einschränkungen klar angeben. SRT kann Format oder Stil nicht zuverlässig transportieren; Schnittsoftware kann dennoch automatische Zeilenumbrüche durchführen; dieselbe Untertitel-Voreinstellung muss verwendet werden und im endgültigen Format vorschauen. Nur bei tatsächlichem Anhören/Abspielen kann Synchronisation als überprüft gemeldet werden; nur Strukturprüfungen gelten nicht als genaue oder audiovisuelle Synchronisationsqualifikation.

Auslieferung

  • <Materialname>_Querformat.srt / <Materialname>_Hochformat.srt; bei ungeklärten Eigennamen, Inhalten, Reihenfolge oder Zeitpunkten wird .review.srt als Prüfentwurf gekennzeichnet.
  • Die Liste der Unstimmigkeiten wird unabhängig mit Zeitposition, ursprünglicher Erkennung, Kandidat, Begründung und Grund der Ungeklärtheit aufgezeichnet; Erklärungen werden nicht in den veröffentlichten Untertiteltext eingefügt.
  • Gleichzeitig die Quelle der Einstellungen des fertigen Films aufzeichnen: tatsächliche Erkennung, Benutzerangabe oder nur Formatoption; die Größe des Originalvideos darf nicht mit der endgültigen Formatgröße gleichgesetzt werden.
  • Tests bewahren die ursprünglichen Ergebnisse jedes Modells sowie die integrierte Kalibrierungsaufzeichnung auf; unterscheiden zwischen Erkennungs-, Umschreibungs-, Satzteilungs- und Zeitachsenproblemen. Die integrierte Kalibrierungsfassung wird nicht als unabhängige Genauigkeit eines einzelnen Modells ausgegeben; keine Genauigkeit ohne manuelle Referenz angeben.

Verwandte Skills