test: eigene Beispielrede statt echter Reden, testdaten/ nur noch lokal
Die Abschriften echter Reden sind urheberrechtlich geschützt und gehören nicht in ein öffentliches Repository. Die Tests nutzen jetzt eine frei erfundene Festrede (tests/daten/beispiel.de.vtt/.txt, YouTube-Format mit rollendem Fenster) mit eigenem Glossar. testdaten/ steht in .gitignore; liegen die Reden dort lokal, laufen die Tests ihrer Glossare zusätzlich, sonst werden sie übersprungen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
0106c307e7
commit
93fb99eda2
1 changed files with 3134 additions and 62 deletions
38
README.md
38
README.md
|
|
@ -415,24 +415,30 @@ werden in `<Entwurf>.parts/` zwischengespeichert.
|
|||
|
||||
## Testdaten
|
||||
|
||||
`testdaten/` enthält drei Reden, jeweils als automatische YouTube-Untertitel
|
||||
(`.vtt`, Original) und daraus mit `vtt2txt.py` gewonnener Rohtext (`.txt`, Eingabe
|
||||
für das Programm):
|
||||
**Im Repository:** `tests/daten/` enthält eine frei erfundene Beispielrede
|
||||
(Festrede zum Jubiläum der Gemeinde „Auental“; Ort und Personen gibt es nicht), als
|
||||
Untertitel im Format der YouTube-Auto-Untertitel (`beispiel.de.vtt`, rollendes
|
||||
Fenster, Wort-Zeitstempel), daraus gewonnener Rohtext (`beispiel.de.txt`) und ein
|
||||
passendes Glossar (`beispiel.glossar.txt`) für die eingebauten Hörfehler wie
|
||||
„Auen Tal“ oder „Haber Kamp“. Die Tests nutzen nur diese Daten.
|
||||
|
||||
```bash
|
||||
./abschrift_korrigieren.py -i tests/daten/beispiel.de.txt -g tests/daten/beispiel.glossar.txt -o /tmp/beispiel.korrigiert.txt
|
||||
```
|
||||
|
||||
**Nur lokal:** Echte Reden gehören wegen des Urheberrechts nicht ins Repository;
|
||||
`testdaten/` ist deshalb in `.gitignore`. Liegen dort die drei Reden, mit denen das
|
||||
Programm entwickelt wurde, laufen zusätzlich die Tests, die ihre Glossare prüfen;
|
||||
sonst werden diese übersprungen. Die Glossare dazu sind im Repository:
|
||||
|
||||
- `ramstein.de.*`: Rede über die US Air Base Ramstein (Glossar `ramstein.glossar.txt`)
|
||||
- `magdeburg.de-orig.*`: Rede in Magdeburg (Glossar `magdeburg.glossar.txt`)
|
||||
- `Lahnstein.de-orig.*`: Rede „Respekt geht anders“ in Lahnstein (Glossar
|
||||
`lahnstein.glossar.txt`, erstellt mit Hilfe von `glossar_vorschlag.py`)
|
||||
`lahnstein.glossar.txt`, erstellt mit Hilfe von `glossar_vorschlag.py`), zu laden mit
|
||||
`./yt_untertitel.py -u 'https://www.youtube.com/watch?v=rm6lADgf6GQ' -n Lahnstein -d testdaten`
|
||||
|
||||
Alle drei mit dem gemeinsamen `krone-schmalz.glossar.txt` davor.
|
||||
|
||||
```bash
|
||||
./vtt2txt.py -i "testdaten/*.vtt" # erzeugt alle .txt neu
|
||||
./abschrift_korrigieren.py -i testdaten/ramstein.de.txt -g krone-schmalz.glossar.txt -g ramstein.glossar.txt
|
||||
# → testdaten/ramstein.de.korrigiert.txt (nicht versioniert)
|
||||
```
|
||||
|
||||
Ein Lauf dauert mit `qwen3:32b` vollständig auf einer RTX 3090 etwa 6 Minuten.
|
||||
Alle drei mit dem gemeinsamen `krone-schmalz.glossar.txt` davor. Ein Lauf über eine
|
||||
Rede dauert mit `qwen3:32b` vollständig auf einer RTX 3090 etwa 6–8 Minuten.
|
||||
|
||||
## Tests
|
||||
|
||||
|
|
@ -440,7 +446,7 @@ Ein Lauf dauert mit `qwen3:32b` vollständig auf einer RTX 3090 etwa 6 Minuten.
|
|||
python3 -m pytest
|
||||
```
|
||||
|
||||
Die Tests (323) brauchen weder Ollama noch Netz: Modellaufrufe und `yt-dlp` werden
|
||||
Die Tests (325, ohne die lokalen Reden 318) brauchen weder Ollama noch Netz: Modellaufrufe und `yt-dlp` werden
|
||||
durch Fakes ersetzt. `tests/test_abschrift_korrigieren.py` prüft Abschnittsbildung,
|
||||
Satzgrenzen (Abkürzungen und Ordnungszahlen sind kein Satzende), Glossar (inkl.
|
||||
„jede Ersetzung im Glossar einer Rede trifft diese Rede, jede im gemeinsamen Glossar
|
||||
|
|
@ -458,8 +464,8 @@ Die Tests nutzen eine kleine eigene Wortliste statt der des Systems.
|
|||
(Original-Audio, manuell vor automatisch) und Fehlerfälle.
|
||||
`tests/test_yt_untertitel.py` prüft Spurauswahl, Aufruf von `yt-dlp` und
|
||||
Fehlerfälle (ohne Netz, `yt-dlp` wird durch Fakes ersetzt).
|
||||
`tests/test_vtt2txt.py` prüft die VTT-Umwandlung: jede `.vtt` in `testdaten/`
|
||||
ergibt genau die zugehörige `.txt`, echte Wiederholungen bleiben erhalten, auch bei
|
||||
`tests/test_vtt2txt.py` prüft die VTT-Umwandlung: die Beispiel-`.vtt` (und lokal
|
||||
jede Rede in `testdaten/`) ergibt genau die zugehörige `.txt`, echte Wiederholungen bleiben erhalten, auch bei
|
||||
Untertiteln ohne rollendes Fenster, dazu Zeitauswahl, Muster, Ausgabeverzeichnis und
|
||||
Fehlerfälle.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue