Visualisation de la voix Python

Résolu
SamB_1051 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour.

Je suis un peu coincé sur un exercice spécifique.

Je suis capable de créer un graphe sur Python et d'enregistrer un fichier audio.wav sans problème. L'endroit où je bloque, c'est lorsque je dois intégrer mon fichier au code pour pouvoir le visualiser sur un graphique.

Je crois qu'il y a une erreur sur la valeur Y.

import matplotlib.pyplot as plt

fig, graphe = plt.subplots(figsize=(20,10))
valX = list(range(50))
valY = [i * i for i in valX]
graphe.set_title("Graphique audio")
graphe.set_xlabel("numéro de l'échantillon")
graphe.set_ylabel("Temps")
graphe.scatter(x=valX, y=valY, marker='*', c='b')
Audio(audio.wav, rate=sr)
fig.tight_layout()

 J'ai l'erreur suivante :

 AttributeError: 'numpy.ndarray' object has no attribute 'wav'

A voir également:

2 réponses

hypothetix Messages postés 224 Date d'inscription   Statut Membre Dernière intervention   66
 

Bonjour,

Pour poster du code il faut utiliser la coloration syntaxique, c'est plus agréable à lire. Si possible, il faut poster le code complet. Et être patient surtout le Dimanche.:-)

En attendant une réponse plus spécifique, voir ceci.

0
SamB_1051 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 

C'est que j'essaye aussi d'ajouter une image, mais le site ne veux pas que je mette une image et un code dans la même publication.

0
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention  
 

Bonjour,

Je confirme que le lien partagé par hypothetix #3 fournit une solution qui marche (presque). Voici une version corrigée (à toi d'adapter le chemin vers le fichier .wav) :

import matplotlib.pyplot as plt
import numpy as np
import wave
import sys

spf = wave.open("/usr/share/sounds/alsa/Front_Center.wav", "r")

# Extract Raw Audio from Wav File
signal = spf.readframes(-1)
signal = np.fromstring(signal, np.int16)


# If Stereo
if spf.getnchannels() == 2:
    print("Just mono files")
    sys.exit(0)

plt.figure(1)
plt.title("Signal Wave...")
plt.plot(signal)
plt.show()

Si ton fichier est stéréo, voir cette solution.

Bonne chance

0