Accueil » Python » Forums Python » Forum général Python » Problème de lecture d'un entête WAVE

 • Problème de lecture d'un entête WAVE

Document Actions
Réponses: 2   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • Problème de lecture d'un entête WAVE

Posté par elnycko le 24/01/2008 14:07
Bonjour,

je cherche à lire un fichier wave afin de le mettre sous forme vectorielle et procédé à du traitement de signal.
En cherchant de-ci de-là, j'ai trouvé différents documents décrivant la structure de l'entête d'un WAVE et les infos qu'il contient. Mon problème se situe au niveau de la lecture du dit fichier, disons que je travaille avec chimes.wav (un bête fichier son de windows...).

si je fais :
>>signal=open('chimes.wav','r')
>>signal.read(4)
'RIFF' # ce qui est OK
>>s=signal.read(1)
>>s
'\xd8'

#le problème étant que devrait être un hexadécimal noté '0xd8'
#comme s[0] me donne aussi '\xd8', je ne sais pas bien comment remplacer le \ par un 0

#de plus, il arrive que la réponse ne soit pas un hexadécimal mais le symbole ascii correspondant:
#par exemple:

>>signal=open('tada.wav','r')
>>signal.read(4)
'RIFF' # ce qui est OK
>>s=signal.read(1)
>>s
'T'

Je suppose qu'il doit y avoir un problème de formatage (peut être un argument à ajouter à signal.read( ) pour spécifier le
type de résultat attendu ?

J'ai essayé les même manipulations en utilisant
signal=open('chimes.wav','rb')
ainsi que le module wave de python, mais le problème persiste.
J'ai aussi une fichier wave non tiré de windows, mais là encore le problème persiste.

Si quelqu'un à une idée (ou deux..)
Merci,
Elnycko

tool Re: Problème de lecture d'un entête WAVE

Posté par niavlyss le 24/01/2008 18:02
s=signal.read(1) te retourne un string:

ord(s) la valeur ordinale qui correspond au string

hex(ord(s)) convertit cette valeur ordinale en hexa.


et wala!

 • Re: Problème de lecture d'un entête WAVE

Posté par elnycko le 25/01/2008 12:45
C'est effectivement tout simple mais ça marche !

Merci beaucoup.