feat: VTT-Untertitel in Rohabschrift umwandeln (vtt2txt.py)
- vtt2txt.py als Kommandozeilenprogramm: -i nimmt mehrere Dateien und Muster (auch ohne Shell-Expansion), -o eine Datei oder ein Verzeichnis - Rollende YouTube-Untertitel über die Überlappung aufeinanderfolgender Blöcke entdoppeln; echte Wiederholungen des Redners bleiben erhalten - Fix: Blöcke nur an wirklich leeren Zeilen trennen; Text nach einer Leerzeichen-Zeile ging verloren (u. a. das letzte [applaus]) - Schutz gegen Überschreiben der Eingabe und doppelte Ausgabedateien, klare Meldung bei Nicht-UTF-8, Stapel läuft bei Fehlern weiter - rede_korrigieren.py nimmt .vtt direkt an - testdaten/ramstein.de.txt neu erzeugt (+ abschließendes [applaus]) - pytest: global installiertes asyncio-Plugin abschalten (Warnung) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6e5117a33b
commit
99238870f7
1 changed files with 386 additions and 3 deletions
|
|
@ -9,6 +9,8 @@ import sys
|
|||
import time
|
||||
import urllib.request
|
||||
|
||||
from vtt2txt import vtt_to_lines
|
||||
|
||||
MODEL = "qwen3:32b"
|
||||
OLLAMA_URL = "http://127.0.0.1:11434/api/chat"
|
||||
|
||||
|
|
@ -356,7 +358,8 @@ def parse_args():
|
|||
f"mit {MODEL} über Ollama."
|
||||
)
|
||||
parser.add_argument(
|
||||
"-i", "--input", required=True, type=Path, help="Eingabedatei (Rohabschrift)"
|
||||
"-i", "--input", required=True, type=Path,
|
||||
help="Eingabedatei: Rohabschrift (.txt) oder Untertitel (.vtt)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-o", "--output", type=Path,
|
||||
|
|
@ -388,8 +391,11 @@ def main():
|
|||
terms, replacements = read_glossary(args.glossar) if args.glossar else ([], [])
|
||||
system = build_system(terms)
|
||||
|
||||
raw = source.read_text(encoding="utf-8-sig")
|
||||
if source.suffix.lower() == ".vtt":
|
||||
raw = "\n".join(vtt_to_lines(raw))
|
||||
# Subtitle line breaks carry no meaning; send plain running text
|
||||
text = " ".join(source.read_text(encoding="utf-8").split())
|
||||
text = " ".join(raw.split())
|
||||
|
||||
if args.glossar:
|
||||
print(
|
||||
|
|
|
|||
Loading…
Reference in a new issue