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

Python Discussion :

Inversion d'un signal numérique en .wav


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Inversion d'un signal numérique en .wav
    Bonjour,

    Je souhaiterais faire une petite manip avec python : j'aimerais faire de la réduction active du son numériquement, le principe est très simple : il suffit d'acquérir le son dans un fichier wav, ensuite de créer son spectre opposé qui serait inversé et de l'envoyer en sortie pour 'annuler' le premier son. Pour cela j'aurais besoin de manipuler les fichiers wav, j'ai vu qu'il existait un module wave qui permettait de le faire, en revanche j'ai du mal à le maitriser. Sauriez-vous comment ouvrir un tel fichier en python, et l'exploiter (comment se présente la structure d'un tel fichier? Est-ce qu'on a une liste de valeurs qui correspondent au signal comme on pourrait voir sur Audacity...).
    Ensuite je pourrais changer les valeurs des différents harmoniques afin de créer mon signal de sortie.
    Si quelqu'un peut m'aider ça serait top!

    Merci et bonne fin d'après-midi.

  2. #2
    Membre habitué
    Homme Profil pro
    Vagabong étudiant en annalyse du signal.
    Inscrit en
    Avril 2019
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Vagabong étudiant en annalyse du signal.
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2019
    Messages : 123
    Points : 162
    Points
    162
    Par défaut
    Bonjour,

    Quand vous avez déjà une vague idée de comment faire, vous pouvez utiliser la documentation intégrée de python.
    >>> import wave
    >>> help(wave)
    DESCRIPTION
    Usage.

    Reading WAVE files:
    f = wave.open(file, 'r')
    On remarque que l'on peut faire "f = wave.open(file, 'r')", c'est un bon début!
    Donc ensuite on fait:
    >>> import wave
    >>> f = wave.open(file, 'r')
    >>> help(f)
    ...
    La documentation va vous dire quelles méthodes existes, puis en avançant comme ça pas à pas, je suis certain que vous allez trouver!

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 986
    Points : 9 361
    Points
    9 361
    Par défaut
    hello,
    pour lire un fichier audio wav on peut utiliser la bibliothèque scipy qui a en plus des fonctions de transformée de fourier.
    Avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import scipy as sp
    from scipy.io.wavfile import read
    import matplotlib.pyplot as plt
     
     
    (samplerate, data) = read('M:\\test\move.wav') # Reading the sound file. 
    print("nb d'échantillons : " + str(len(data) ))# length of our array
    print("fréquence d'échantillonnage : " + str(samplerate))
    plt.plot(data) 
    plt.title('Visualisation signal audio')
    plt.xlabel('Echantillon')
    plt.ylabel('Amplitude')
    plt.show()
    FourierTransformation = sp.fft(data) # Calculating the fourier transformation of the signal
    j'obtiens ceci :
    nb d'échantillons : 28672
    fréquence d'échantillonnage : 44100
    Nom : scipyAudio.PNG
Affichages : 69
Taille : 115,2 Ko

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

Discussions similaires

  1. Propagation inverse d'un signal
    Par Lilsaure dans le forum Traitement du signal
    Réponses: 1
    Dernier message: 28/07/2014, 10h52
  2. Transformer une image jpeg en signal numérique
    Par coolhac dans le forum LabVIEW
    Réponses: 24
    Dernier message: 27/05/2009, 15h49
  3. Mesurer la fréquence signal numérique
    Par ozeo57 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 15/12/2007, 19h11
  4. [Débutant] Génération d'un signal numérique
    Par Sabazios dans le forum LabVIEW
    Réponses: 2
    Dernier message: 26/10/2007, 08h43

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