Diarization v2: Fenster-Clustering mit gelernter Schwelle + Live-Namensmarker
#74 (22 Teilnehmer) ergab automatisch 44 Sprecher, dieselbe Stimme mehrfach. Ursache gemessen: ein Zentroid pro sherpa-Cluster aus max. 3 Schnitten, fester Kosinus auf rohen Embeddings (Kreuz-Turn-Kosinus ~0,4 = keine Trennschaerfe). v2: sherpa liefert nur Turn-Grenzen, Identitaet aus 3-s-Fenster-Embeddings, Mittelwert-Zentrierung, Average-Linkage-AHC, Weak-Fold, Schwelle pro Aufnahme per 2-Gauss-EM gelernt. Validiert: #74 44->20, #70 ->4, #68 ->2. Live-Namensmarker: Namen waehrend der Aufnahme tippen; Zeitstempel benennt spaeter den Cluster und dient als must-/cannot-link-Zwangsbedingung.
This commit is contained in:
@@ -91,10 +91,33 @@ nav { display: flex; gap: 6px; flex-wrap: wrap; }
|
||||
.recbtn:disabled { opacity: .55; cursor: default; animation: none; }
|
||||
.rec-ctl .rectime { font-size: 14px; font-variant-numeric: tabular-nums; color: var(--muted); min-width: 44px; }
|
||||
|
||||
/* Namensmarker während der Aufnahme (Kopfzeile) */
|
||||
.rec-ctl .mkin { width: 210px; padding: 6px 10px; font-size: 13px; }
|
||||
@media (max-width: 1100px) { .rec-ctl .mkin { width: 130px; } }
|
||||
|
||||
/* Live-Platzhalter in der Aufnahmen-Liste */
|
||||
.item.rec-live { border-color: var(--danger); background: var(--danger-soft); }
|
||||
.rec-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--danger); flex: none; animation: recpulse 1.4s ease-in-out infinite; }
|
||||
.item.rec-live .rectime { color: var(--danger); font-weight: 650; }
|
||||
.mkchips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
|
||||
.mkchip {
|
||||
display: inline-flex; align-items: center; gap: 5px; font-size: 12px;
|
||||
background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: 2px 4px 2px 8px;
|
||||
}
|
||||
.mkchip .mono { color: var(--muted); }
|
||||
.mkdel { background: none; border: none; color: var(--muted); cursor: pointer; font-size: 12px; line-height: 1; padding: 2px 4px; }
|
||||
.mkdel:hover { color: var(--danger); }
|
||||
|
||||
/* Namensmarker-Liste im Detail */
|
||||
.markers { list-style: none; margin: 6px 0; padding: 0; }
|
||||
.markers li { display: flex; align-items: center; gap: 7px; padding: 3px 0; font-size: 13px; }
|
||||
.mkseek {
|
||||
background: var(--surface-2); border: 1px solid var(--line); border-radius: 7px;
|
||||
color: var(--accent); cursor: pointer; font-size: 12px; padding: 2px 7px;
|
||||
}
|
||||
.mkseek:hover { border-color: var(--accent); }
|
||||
.mkadd-row { margin-top: 8px; }
|
||||
.mkadd-row .input { flex: 1; min-width: 120px; }
|
||||
.tab {
|
||||
background: transparent; color: var(--muted); border: 1px solid transparent;
|
||||
padding: 7px 14px; border-radius: 999px; cursor: pointer; font-size: 14px;
|
||||
|
||||
Reference in New Issue
Block a user