IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

analyse de Gamme


Sujet :

Calcul scientifique Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Terminal Scientifique
    Inscrit en
    Mai 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Terminal Scientifique

    Informations forums :
    Inscription : Mai 2018
    Messages : 1
    Points : 2
    Points
    2
    Par défaut analyse de Gamme
    Bonjour à tous,
    Actuellement en Terminale S, spécialité Informatique et Science du Numérique. Je voudrai, à partir d'un fichier audio d'un enregistrement de piano jouant une gamme, calculer les fréquences de chaque note. J'utilise un code que j'ai trouvé sur internet pour extraire les fréquences (ci-joint). Cependant Lors que je fais des tests avec un enregistrement audio que j'ai réalisé (à partir d'enregistrement virtuel, donc pas de problème d'accordage) le programme m'affiche les bonnes fréquences, mais à de mauvaise octave (sauf la première note qui est à la bonne octave et bonne fréquence). Si quelqu'un a une idée sur l'origine de cette erreur.

    Merci de votre aide,

    Akane

    Analyseur - Frequence.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    import wave, struct
    from struct import *
    from time import sleep
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.optimize import curve_fit
     
    def func(x,a,b,c):
        return c * np.exp( -np.power( (x-a)/b, 2) )
     
     
    # Ouverture du fichier wav a decrypter
    wav_original = wave.open("pianoDm.wav",'rb')
     
    nchannels = wav_original.getnchannels()     # Returns number of audio channels (1 for mono, 2 for stereo)
     
    framerate = wav_original.getframerate()     # Returns sampling frequency
     
    nframes   = wav_original.getnframes()       # Returns number of audio frames
     
     
    # Decouper le fichier en plusieurs parties (une note par partie)
    frequences, freq_gauss = [], []
    larg_frame = 44100
    for posi in range(0,nframes,larg_frame):
     
        # Sequence contenant une note
        wav_original.setpos(posi)
        donnee = wav_original.readframes(larg_frame)
        data = struct.unpack('%sh' % (larg_frame*nchannels ), donnee)
        # Transformee de Fourier
        w     = np.fft.fft(data)
        sig   = np.real(w * w.conjugate())
        freqs = np.fft.fftfreq(len(w)) * framerate
     
        # Estimation de la frequence
        idx = np.argmax(sig)
        f0, maxi = np.abs(freqs[idx]), sig[idx]
        frequences.append( f0 )
     
        # Ajustement par une gaussienne
        ind = np.where( np.abs(freqs - f0) < 20 )
        popt, pcov = curve_fit( func, freqs[ind], sig[ind]/maxi, p0=[f0,1,1] )
        a, b, c = popt
        freq_gauss.append(a)
     
    wav_original.close()
     
    for res in (frequences,freq_gauss):
        print(np.round(res, 0))
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Qu'est ce qu'une analyse fonctionelle
    Par sandrine dans le forum Débats sur le développement - Le Best Of
    Réponses: 22
    Dernier message: 28/02/2015, 19h03
  2. Outil d'analyse de code
    Par Bloon dans le forum Outils
    Réponses: 8
    Dernier message: 07/08/2007, 09h04
  3. [CR8.5] Analyse de la structure d'un état
    Par Henry Arcan dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 17/11/2003, 13h42
  4. XML / Analyse
    Par Cian dans le forum XQUERY/SGBD
    Réponses: 3
    Dernier message: 23/12/2002, 12h22
  5. Analyser la ligne de commande
    Par benj29 dans le forum C
    Réponses: 14
    Dernier message: 19/11/2002, 04h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo