Monstermango commited on
Commit
e25fa74
·
verified ·
1 Parent(s): 69c798a

Make the glossary correct instead of decorate

Browse files
Files changed (1) hide show
  1. app.py +15 -2
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
- s["daten"] = _zusammenfuegen(s["turns"], s["stats"], s["overlaps"],
646
- s["chunks"], s["dauer"], s.get("sprache"))
 
 
 
 
 
 
 
 
 
 
 
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