Partage
  • Partager sur Facebook
  • Partager sur Twitter

tracer fft d'un audio wav à un temps donné

comment tracer l'fft d'un audio wav à un instant précis de l'audio

Sujet résolu
    8 juillet 2021 à 12:53:27

    Bonjour,

    Je travail actuellement sur un projet et je code en python objet .J'ai une fonction qui doit tracer l'fft (transformé de Fourier ) d'un audio et je souhaite tracer l'fft sur un intervalle de temps de l'audio ( environ 20s emplacement dans l'audio variable  ) transmis en argument .Ma fonction actuelle trace l'fft de l'audio complet , avez vous une solution? 

    def Analyse_emotion(self):   
         if self.pushButton_Analyse.clicked:
             # Lecture du fichier
             rate, data = wavfile.read('Passage-P52-T2.wav','rb')
     
             x = data[:, 0]  # Sélection du canal 1
             # Création de instants d'échantillons
              
             t = np.linspace(0, data.shape[0]/rate, data.shape[0])
              
            )
     
             # Calcul FFT
             X = fft(x)  # Transformée de fourier
             freq = fftfreq(x.size, d=1/rate)  # Fréquences de la transformée de Fourier
     
             # Calcul du nombre d'échantillon
             N = x.size
     
             # On prend la valeur absolue de l'amplitude uniquement pour les fréquences positives et normalisation
             X_abs = np.abs(X[:N//2])*2.0/N
             # On garde uniquement les fréquences positives
             freq_pos = freq[:N//2]
     
             plt.plot(freq_pos, X_abs, label="Amplitude absolue")
             plt.xlim(0, 1000)  # On réduit la plage des fréquences à la zone utile
             plt.grid()
             plt.xlabel(r"Fréquence (Hz)")
             plt.ylabel(r"Amplitude $|X(f)|$")
             plt.title("Transformée de Fourier Passage-P52-T2")
             plt.show()

    Voici ma fonction

    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2021 à 13:29:04

      Segmente x:
      x = data[point_de_depart:point_d_arrivee, 0]  # Sélection du canal 1

      Puis après je vois pas où tu utilise la variable 't' mais tu aura probablement besoin de l'écrire comme ça:

      t = np.linspace(0, x.shape[0]/rate, x.shape[0])



      • Partager sur Facebook
      • Partager sur Twitter
        8 juillet 2021 à 14:41:59

        Coliculus a écrit:

        Segmente x:

        x = data[point_de_depart:point_d_arrivee, 0]  # Sélection du canal 1

        Puis après je vois pas où tu utilise la variable 't' mais tu aura probablement besoin de l'écrire comme ça:

        t = np.linspace(0, x.shape[0]/rate, x.shape[0]

        est ce que mes variables point_de_depart et point_d_arrivee correspondent à mon temps de départ et d'arrivé en seconde ?


        • Partager sur Facebook
        • Partager sur Twitter
          8 juillet 2021 à 15:14:24

          d'après l'appel, non, c'est en terme d'échantillons, mais il suffit alors de multiplier le temps voulu en seconde par le nombre d'échantillons par seconde (rate) => départ à 20s du début => 20*rate
          • Partager sur Facebook
          • Partager sur Twitter
            8 juillet 2021 à 15:37:54

            umfred a écrit:

            d'après l'appel, non, c'est en terme d'échantillons, mais il suffit alors de multiplier le temps voulu en seconde par le nombre d'échantillons par seconde (rate) => départ à 20s du début => 20*rate


            ça à l'air de marché mercii à vous.

            • Partager sur Facebook
            • Partager sur Twitter
              8 juillet 2021 à 15:41:07

              Bonjour,

              Sujet résolu

              Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e ;)
              • Partager sur Facebook
              • Partager sur Twitter

              tracer fft d'un audio wav à un temps donné

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown