Mohssinibra commited on
Commit
1b222a0
·
verified ·
1 Parent(s): a5cedb3
Files changed (1) hide show
  1. app.py +17 -3
app.py CHANGED
@@ -34,11 +34,25 @@ def diarize_audio(audio_path):
34
  diarization = diarization_pipeline(audio_path)
35
  speaker_segments = {}
36
 
 
 
 
 
 
37
  for turn, _, speaker in diarization.itertracks(yield_label=True):
38
  start, end = turn.start, turn.end
39
- if speaker not in speaker_segments:
40
- speaker_segments[speaker] = []
41
- speaker_segments[speaker].append((start, end))
 
 
 
 
 
 
 
 
 
42
 
43
  return speaker_segments
44
 
 
34
  diarization = diarization_pipeline(audio_path)
35
  speaker_segments = {}
36
 
37
+ # Ajustement : fusionner les segments proches si le silence est trop court
38
+ min_silence_duration = 0.5 # Durée minimale du silence pour être considéré comme un changement de speaker
39
+ previous_speaker = None
40
+ last_end = 0
41
+
42
  for turn, _, speaker in diarization.itertracks(yield_label=True):
43
  start, end = turn.start, turn.end
44
+
45
+ # Si le silence entre deux segments est trop court, on fusionne avec le speaker précédent
46
+ if previous_speaker is not None and start - last_end < min_silence_duration:
47
+ speaker_segments[previous_speaker].append((start, end))
48
+ else:
49
+ # Nouveau speaker ou silence long : on l'ajoute comme un segment distinct
50
+ if speaker not in speaker_segments:
51
+ speaker_segments[speaker] = []
52
+ speaker_segments[speaker].append((start, end))
53
+
54
+ previous_speaker = speaker
55
+ last_end = end
56
 
57
  return speaker_segments
58