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
39
README.md
39
README.md
|
|
@ -17,15 +17,42 @@ der Lauf wird etwa 12-mal langsamer.
|
|||
|
||||
## Aufruf
|
||||
|
||||
### Untertitel umwandeln: `vtt2txt.py`
|
||||
|
||||
Macht aus VTT-Untertiteln (z. B. von `yt-dlp --write-auto-subs`) die Rohabschrift
|
||||
für `rede_korrigieren.py`: Zeitstempel und Tags werden entfernt. YouTube-Auto-Untertitel
|
||||
zeigen ein rollendes Fenster, jeder Block wiederholt das Ende des vorigen. Übernommen
|
||||
wird nur, was nach dieser Überlappung neu ist; sagt der Redner eine Zeile wirklich
|
||||
zweimal, bleibt sie zweimal erhalten.
|
||||
|
||||
```bash
|
||||
./rede_korrigieren.py -i rede.txt # → rede.korrigiert.txt
|
||||
./rede_korrigieren.py -i rede.txt -o out/rede.txt # eigene Ausgabedatei
|
||||
./rede_korrigieren.py -i rede.txt -g rede.glossar.txt # mit Glossar
|
||||
./vtt2txt.py -i rede.de.vtt # → rede.de.txt
|
||||
./vtt2txt.py -i ramstein.de*.vtt # mehrere Dateien, je → *.txt
|
||||
./vtt2txt.py -i "ramstein.de*.vtt" # Muster löst das Programm auf (Windows)
|
||||
./vtt2txt.py -i rede.de.vtt -o out/rede.txt # eigene Ausgabedatei
|
||||
./vtt2txt.py -i *.vtt -o out/ # alle in ein Verzeichnis
|
||||
```
|
||||
|
||||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `-i`, `--input` | Eingabedatei (Rohabschrift), Pflicht |
|
||||
| `-i`, `--input` | eine oder mehrere VTT-Dateien oder Muster, Pflicht |
|
||||
| `-o`, `--output` | Ausgabedatei (nur bei einer Eingabedatei) oder Verzeichnis (vorhanden oder mit `/` am Ende); Standard: `<Eingabe ohne Endung>.txt` neben der Eingabe |
|
||||
|
||||
Eine fehlerhafte Datei (keine Untertitel, nicht UTF-8) wird gemeldet, die übrigen
|
||||
werden trotzdem umgewandelt; der Exit-Code ist dann 1.
|
||||
|
||||
### Abschrift korrigieren: `rede_korrigieren.py`
|
||||
|
||||
```bash
|
||||
./rede_korrigieren.py -i rede.txt # → rede.korrigiert.txt
|
||||
./rede_korrigieren.py -i rede.txt -o out/rede.txt # eigene Ausgabedatei
|
||||
./rede_korrigieren.py -i rede.txt -g rede.glossar.txt # mit Glossar
|
||||
./rede_korrigieren.py -i rede.de.vtt # VTT direkt → rede.de.korrigiert.txt
|
||||
```
|
||||
|
||||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `-i`, `--input` | Eingabedatei: Rohabschrift (`.txt`) oder Untertitel (`.vtt`, wird wie mit `vtt2txt.py` umgewandelt), Pflicht |
|
||||
| `-o`, `--output` | Ausgabedatei; Standard: `<Eingabe ohne Endung>.korrigiert.txt` neben der Eingabe |
|
||||
| `-g`, `--glossar` | Glossar mit festen Ersetzungen und Schreibweisen |
|
||||
|
||||
|
|
@ -69,6 +96,7 @@ Ersetzungen ohne Treffer werden gemeldet (Tippfehler im Glossar).
|
|||
- `ramstein.de.txt`: daraus gewonnener Rohtext (Eingabe für das Programm)
|
||||
|
||||
```bash
|
||||
./vtt2txt.py -i testdaten/ramstein.de.vtt # erzeugt testdaten/ramstein.de.txt neu
|
||||
./rede_korrigieren.py -i testdaten/ramstein.de.txt -g ramstein.glossar.txt
|
||||
# → testdaten/ramstein.de.korrigiert.txt (nicht versioniert)
|
||||
```
|
||||
|
|
@ -85,6 +113,9 @@ Die Tests brauchen kein Ollama: Modellaufrufe werden durch Fakes ersetzt. Geprü
|
|||
werden Abschnittsbildung, Glossar (inkl. „jede Ersetzung in `ramstein.glossar.txt`
|
||||
trifft die Testdaten“), Streaming-Auswertung, Absatzgliederung (Text bleibt
|
||||
unverändert, 3–10 Sätze), Zwischenspeicher/Fortsetzen und die Kommandozeile.
|
||||
`tests/test_vtt2txt.py` prüft die VTT-Umwandlung: `testdaten/ramstein.de.vtt`
|
||||
ergibt genau `testdaten/ramstein.de.txt`, echte Wiederholungen bleiben erhalten,
|
||||
dazu Muster, Ausgabeverzeichnis und Fehlerfälle.
|
||||
|
||||
## Zwischenstände
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue