Spaces:
Running on Zero
Running on Zero
Make the glossary correct instead of decorate
Browse files
app.py
CHANGED
|
@@ -34,6 +34,7 @@ from transformers import pipeline as hf_pipeline
|
|
| 34 |
from kern import (FA_ANTEIL, FA_BLOCK, FA_FENSTER, FARBEN, FENSTER,
|
| 35 |
GLOSSAR_DATEI, GLOSSAR_MAX, GLOSSAR_PROMPT,
|
| 36 |
_begriffe_zaehlen, _decode_optionen, _fenstergrenzen,
|
|
|
|
| 37 |
_frontmatter, _kontext_bauen, _markdown, _namen_farben,
|
| 38 |
_rangfolge, _romanisieren, _sprecher_bei, _zeit,
|
| 39 |
_zusammenfuegen, glossar_lesen, glossar_schreiben,
|
|
@@ -566,6 +567,7 @@ def vorbereiten_api(key, audio, transkript=None, kontext=None):
|
|
| 566 |
"quelle": quelle, "zeit": time.time(),
|
| 567 |
"dauer": loader.get_duration(wav), "chunks": [],
|
| 568 |
"worte": worte, "fa_zeit": 0.0, "fa_wort": 0,
|
|
|
|
| 569 |
"kontext": _kontext_bauen((kontext or "").strip(),
|
| 570 |
_glossar_laden())}
|
| 571 |
return {"ok": True, "id": sid, "dauer": round(SITZUNGEN[sid]["dauer"], 1),
|
|
@@ -642,8 +644,19 @@ def transkribieren_api(key, sid, index):
|
|
| 642 |
|
| 643 |
def _daten_sichern(s):
|
| 644 |
if "daten" not in s:
|
| 645 |
-
|
| 646 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 647 |
return s["daten"]
|
| 648 |
|
| 649 |
|
|
|
|
| 34 |
from kern import (FA_ANTEIL, FA_BLOCK, FA_FENSTER, FARBEN, FENSTER,
|
| 35 |
GLOSSAR_DATEI, GLOSSAR_MAX, GLOSSAR_PROMPT,
|
| 36 |
_begriffe_zaehlen, _decode_optionen, _fenstergrenzen,
|
| 37 |
+
_korrekturziele, _korrigieren,
|
| 38 |
_frontmatter, _kontext_bauen, _markdown, _namen_farben,
|
| 39 |
_rangfolge, _romanisieren, _sprecher_bei, _zeit,
|
| 40 |
_zusammenfuegen, glossar_lesen, glossar_schreiben,
|
|
|
|
| 567 |
"quelle": quelle, "zeit": time.time(),
|
| 568 |
"dauer": loader.get_duration(wav), "chunks": [],
|
| 569 |
"worte": worte, "fa_zeit": 0.0, "fa_wort": 0,
|
| 570 |
+
"eigener": (kontext or "").strip(),
|
| 571 |
"kontext": _kontext_bauen((kontext or "").strip(),
|
| 572 |
_glossar_laden())}
|
| 573 |
return {"ok": True, "id": sid, "dauer": round(SITZUNGEN[sid]["dauer"], 1),
|
|
|
|
| 644 |
|
| 645 |
def _daten_sichern(s):
|
| 646 |
if "daten" not in s:
|
| 647 |
+
daten = _zusammenfuegen(s["turns"], s["stats"], s["overlaps"],
|
| 648 |
+
s["chunks"], s["dauer"], s.get("sprache"))
|
| 649 |
+
# Erst nach der Zuordnung korrigieren: die Zeitstempel stammen aus
|
| 650 |
+
# dem Audio und dürfen von einer Textänderung nicht berührt werden.
|
| 651 |
+
# Ein mitgeliefertes Transkript bleibt unangetastet — es ist die
|
| 652 |
+
# Vorlage, nicht die Vermutung.
|
| 653 |
+
if not s.get("worte"):
|
| 654 |
+
ziele = _korrekturziele(_glossar_laden(), s.get("eigener", ""))
|
| 655 |
+
daten["segmente"], daten["korrekturen"] = _korrigieren(
|
| 656 |
+
daten["segmente"], ziele)
|
| 657 |
+
else:
|
| 658 |
+
daten["korrekturen"] = []
|
| 659 |
+
s["daten"] = daten
|
| 660 |
return s["daten"]
|
| 661 |
|
| 662 |
|