Mohssinibra commited on
Commit
ace35b6
·
verified ·
1 Parent(s): e46382b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -3
app.py CHANGED
@@ -8,16 +8,25 @@ def visualize_audio(file):
8
  # Charger l'audio
9
  y, sr = librosa.load(file, sr=None)
10
 
 
 
 
 
 
 
 
 
 
11
  # Transformer le signal en spectre de fréquences
12
- D = librosa.stft(y) # Transformée de Fourier
13
  magnitude, phase = np.abs(D), np.angle(D)
14
 
15
  # Créer les figures pour affichage
16
  fig, ax = plt.subplots(3, 1, figsize=(10, 12))
17
 
18
  # 1. Affichage de la forme d'onde
19
- ax[0].plot(y, color="blue")
20
- ax[0].set_title("Forme d'onde")
21
  ax[0].set_xlabel("Temps (échantillons)")
22
  ax[0].set_ylabel("Amplitude")
23
 
 
8
  # Charger l'audio
9
  y, sr = librosa.load(file, sr=None)
10
 
11
+ # Détecter les segments actifs (éviter les silences)
12
+ intervals = librosa.effects.split(y, top_db=20) # Seuil de silence (en dB)
13
+
14
+ if len(intervals) == 0: # Si pas de segment actif, on garde tout
15
+ y_active = y
16
+ else:
17
+ start, end = intervals[0][0], intervals[-1][1] # Début et fin du segment actif
18
+ y_active = y[start:end]
19
+
20
  # Transformer le signal en spectre de fréquences
21
+ D = librosa.stft(y_active) # Transformée de Fourier
22
  magnitude, phase = np.abs(D), np.angle(D)
23
 
24
  # Créer les figures pour affichage
25
  fig, ax = plt.subplots(3, 1, figsize=(10, 12))
26
 
27
  # 1. Affichage de la forme d'onde
28
+ ax[0].plot(y_active, color="blue")
29
+ ax[0].set_title("Forme d'onde (intervalle actif)")
30
  ax[0].set_xlabel("Temps (échantillons)")
31
  ax[0].set_ylabel("Amplitude")
32