Mohssinibra commited on
Commit
65b377d
·
verified ·
1 Parent(s): e392559

silentDynamically

Browse files
Files changed (1) hide show
  1. app.py +12 -2
app.py CHANGED
@@ -27,16 +27,26 @@ def reduce_noise(audio, sr):
27
  audio = np.where(np.abs(audio) > noise_threshold, audio, 0)
28
  return audio
29
 
 
 
 
 
 
 
 
 
30
  def diarize_audio(audio_path):
31
  """
32
  Diarisation de l'audio : détecte qui parle et à quel moment.
33
  Retourne une liste de (speaker, début, fin).
34
  """
 
 
 
 
35
  diarization = diarization_pipeline(audio_path)
36
  speaker_segments = {}
37
 
38
- # Ajustement : fusionner les segments proches si le silence est trop court
39
- min_silence_duration = 0.5 # Durée minimale du silence pour être considéré comme un changement de speaker
40
  previous_speaker = None
41
  last_end = 0
42
 
 
27
  audio = np.where(np.abs(audio) > noise_threshold, audio, 0)
28
  return audio
29
 
30
+ def calculate_min_silence_duration(audio_path):
31
+ # Charger l'audio pour obtenir sa durée
32
+ audio, sr = librosa.load(audio_path, sr=None)
33
+ total_duration = len(audio) / sr
34
+ dynamic_min_silence = total_duration * 0.05 # 5% de la durée totale de l'audio
35
+ return dynamic_min_silence
36
+
37
+
38
  def diarize_audio(audio_path):
39
  """
40
  Diarisation de l'audio : détecte qui parle et à quel moment.
41
  Retourne une liste de (speaker, début, fin).
42
  """
43
+ # Calculer la durée minimale de silence en fonction de la durée de l'audio
44
+ min_silence_duration = calculate_min_silence_duration(audio_path)
45
+ print(f"Durée minimale de silence ajustée à : {min_silence_duration} secondes")
46
+
47
  diarization = diarization_pipeline(audio_path)
48
  speaker_segments = {}
49
 
 
 
50
  previous_speaker = None
51
  last_end = 0
52