Namen nachtraeglich in fertige Zusammenfassung uebernehmen
speaker_labels speichert das Label jedes Clusters im LLM-Text; relabelAnalysis() ersetzt beim Umbenennen wortgenau in summary/todos/transcript_clean und baut die Teilnehmerliste neu. #74: keine 'Sprecher N' mehr.
This commit is contained in:
@@ -111,6 +111,36 @@ GUI rendert mit `white-space: pre-line` (style.css) → Bullets und Absätze sic
|
||||
Feld/eigene Liste. **Teilnehmer kommen NICHT vom LLM**, sondern aus der Diarization (Kap. 04) — das LLM
|
||||
hatte alle im Gespräch *erwähnten* Namen als Teilnehmer gelistet (11 statt 3 bei Aufnahme #69).
|
||||
|
||||
## Namen nachträglich in eine fertige Analyse übernehmen (seit 2026-07-27)
|
||||
|
||||
Die Zusammenfassung entsteht aus einem Dialog, in dem jeder Sprecher ein **Label** trägt: seinen Namen,
|
||||
falls beim Analysezeitpunkt bekannt, sonst „Sprecher N". Wer erst DANACH benannt wird (Sprecher-Popover,
|
||||
Namensmarker), stand vorher weiter als „Sprecher 5" im fertigen Text — und eine Neu-Analyse kostet auf
|
||||
diesem Board ~20–30 min.
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A["analyzeRecording()"] --> B["buildBasis() vergibt Labels<br/>{speaker_09: 'Sprecher 5'}"]
|
||||
B --> C[("recordings.speaker_labels")]
|
||||
B --> D["LLM: Zusammenfassung/Todos<br/>mit genau diesen Labels"]
|
||||
E["Sprecher umbenennen<br/>(Popover / Marker)"] --> F["relabelAnalysis()"]
|
||||
C --> F
|
||||
F --> G["Whole-Word-Ersetzung in<br/>summary · todos · transcript_clean"]
|
||||
F --> H["Teilnehmerliste NEU gebaut<br/>(Reihenfolge des ersten Auftretens)"]
|
||||
F --> C
|
||||
```
|
||||
|
||||
- `speaker_labels` (JSON, pro Aufnahme) hält genau das Label, das jeder Cluster im LLM-Text hatte —
|
||||
deshalb ist die Ersetzung eindeutig und braucht keine erneute Analyse (Sekunden statt Minuten).
|
||||
- Nach der Ersetzung wird das gespeicherte Label auf den Namen gesetzt, damit ein zweites Umbenennen
|
||||
wieder funktioniert.
|
||||
- **Teilnehmerliste** wird neu aufgebaut statt ersetzt (String-Swap ließ Sprecher stehen, die im Text nie
|
||||
vorkamen, und konnte Namen doppeln).
|
||||
- **Mehrdeutige Labels werden übersprungen:** trug dasselbe Label zwei Cluster (die Stimm-Erkennung hatte
|
||||
„Fabio" einmal auf zwei Cluster gelegt), lässt sich im Text nicht entscheiden, wer gemeint war — dann
|
||||
bleibt der Text unangetastet. Sauber wird das erst durch „Analyse neu (nur KI)" mit korrekten Namen.
|
||||
- GUI: Umbenennen → Toast „Name in Zusammenfassung übernommen", Detailansicht lädt neu.
|
||||
|
||||
## Robustheit gegen Gemma-Marotten (alle real aufgetreten)
|
||||
|
||||
| Marotte | Gegenmaßnahme |
|
||||
|
||||
Reference in New Issue
Block a user