duongthienz commited on
Commit
c17f7a4
·
verified ·
1 Parent(s): 44ae55c

add rename demo sample

Browse files
Files changed (1) hide show
  1. state.py +59 -2
state.py CHANGED
@@ -567,9 +567,64 @@ def load_demo_multi(demo_paths):
567
  st.session_state.analyzeAllToggle = True
568
 
569
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
570
  def _setup_demo_roles_population(fname):
571
  """Assign SPEAKER_001 to Instructor, all others to Students, and set
572
- a random population in [24, 28] for the given demo file."""
573
  if fname not in st.session_state.results:
574
  return
575
  annotation, _ = st.session_state.results[fname]
@@ -594,7 +649,9 @@ def _setup_demo_roles_population(fname):
594
  st.session_state.unusedSpeakers[fname] = [
595
  sp for sp in labels if f"{fname}: {sp}" not in all_assigned
596
  ]
597
- st.session_state.studentPopulations[fname] = random.randint(24, 28)
 
 
598
 
599
 
600
  def run_analysis_loop(file_names, file_paths_dict):
 
567
  st.session_state.analyzeAllToggle = True
568
 
569
 
570
+ # Fixed population values for each demo file — randomized once at design time,
571
+ # then hardcoded so repeated demo loads always show the same number.
572
+ _DEMO_POPULATIONS = {
573
+ "sample.rttm": 26,
574
+ "sample_short.rttm": 27,
575
+ "class01.rttm": 28,
576
+ "class02.rttm": 28,
577
+ "class03.rttm": 28,
578
+ "class04.rttm": 26,
579
+ "class05.rttm": 26,
580
+ "class06.rttm": 28,
581
+ "class07.rttm": 28,
582
+ "class08.rttm": 28,
583
+ "class09.rttm": 27,
584
+ "class10.rttm": 28,
585
+ }
586
+
587
+
588
+ # Fixed rename list for the Single File Demo (Sample) — used by the
589
+ # "Rename Sample Speakers" button. Index 0 maps to SPEAKER_001, etc.
590
+ _SAMPLE_DEMO_RENAMES = [
591
+ "Tannin no sensei",
592
+ "Tadano Hitohito",
593
+ "Osana Najimi",
594
+ "Yamai Ren",
595
+ "Agari Himiko",
596
+ "Nakanaka Omoharu",
597
+ "Yadano Makeru",
598
+ "Kishi Himeko",
599
+ "Onigashima Akako",
600
+ "Chiarai Shigeo",
601
+ "Sonoda Taisei",
602
+ "Shinobino Mono",
603
+ "Inaka Nokoko",
604
+ "Onemine Nene",
605
+ "Otori Kaede",
606
+ "Katai Makoto",
607
+ "Naruse Shisuto",
608
+ "Kometani Chushaku",
609
+ ]
610
+
611
+
612
+ def rename_sample_demo_speakers(fname):
613
+ """Rename every speaker in the Single File Demo (Sample) file to the
614
+ fixed name list, in SPEAKER_001, SPEAKER_002... order."""
615
+ if fname not in st.session_state.results:
616
+ return
617
+ annotation, _ = st.session_state.results[fname]
618
+ labels = sorted(annotation.labels()) # SPEAKER_001, SPEAKER_002, ...
619
+
620
+ st.session_state.speakerRenames.setdefault(fname, {})
621
+ for sp, name in zip(labels, _SAMPLE_DEMO_RENAMES):
622
+ st.session_state.speakerRenames[fname][sp] = name
623
+
624
+
625
  def _setup_demo_roles_population(fname):
626
  """Assign SPEAKER_001 to Instructor, all others to Students, and set
627
+ a fixed population for the given demo file (from _DEMO_POPULATIONS)."""
628
  if fname not in st.session_state.results:
629
  return
630
  annotation, _ = st.session_state.results[fname]
 
649
  st.session_state.unusedSpeakers[fname] = [
650
  sp for sp in labels if f"{fname}: {sp}" not in all_assigned
651
  ]
652
+ # Look up the base filename (without any path prefix) for the fixed value
653
+ base_name = fname.split("/")[-1]
654
+ st.session_state.studentPopulations[fname] = _DEMO_POPULATIONS.get(base_name, 27)
655
 
656
 
657
  def run_analysis_loop(file_names, file_paths_dict):