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:
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
# Regression set: the two recordings whose true speaker count we know
|
||||
# (#70 = 4 speakers, #71 = 2). Same pipeline as #74 so the chosen thresholds can
|
||||
# be checked against small calls, not just the 23-person weekly.
|
||||
cd /opt/callrec/lab
|
||||
/opt/callrec/aime-cpucap.sh 1416000
|
||||
run() { # $1 = tag, $2 = wav
|
||||
[ -f segs$1.txt ] || ./lab-dump-segs.sh "$2" segs$1.txt 0.2
|
||||
for m in nemo_titanet_small 3dspeaker_speech_campplus_sv_zh_en_16k-common_advanced nemo_en_titanet_large; do
|
||||
out=emb$1.$m.json
|
||||
[ -f "$out" ] && continue
|
||||
echo "=== $1 $m $(date -Is)"
|
||||
taskset -c 4-7 node lab-embed.mjs segs$1.txt "$2" /opt/sherpa/$m.onnx "$out" 3.0 1.5 2>&1 | tail -3
|
||||
done
|
||||
}
|
||||
run 70 /opt/callrec/recordings/rec_1784192426082.wav
|
||||
run 71 /opt/callrec/recordings/rec_1784205293914.wav
|
||||
/opt/callrec/aime-cpucap.sh 2256000
|
||||
echo "ALLDONE2 $(date -Is)"
|
||||
Reference in New Issue
Block a user