écriture d'un fichier .wav

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

écriture d'un fichier .wav

Posté par GautK le 24/05/2007 11:50
Bonjour,

j'ai un problème pour écrire un fichier wav à partir d'une liste de valeurs.

Je dispose d'une liste d'entiers représentant la puissance de chaque échantillon.
j'aimerais utiliser la fonction "writeframes(data) du module wave, mais il n'est nulle part spécifié dans quel format doit être donné "data".
j'ai essayé de convertir mes entiers en haxadécimale, en binaire (représentés sous un string), rien n'y fait, le son qui sort lorsque je j'ouvre le fichier wav est tout sauf ce que je devrais avoir.
Je suis certain que c'est un problème dans l'encodage, car la lsite d'entiers vient d'un autre fichier .wav qui a été correctement ouvert.

Quelqu'un saurait m'aider?

Re: écriture d'un fichier .wav

Posté par tarek le 24/05/2007 12:44
Fait voir ton code
sinon, uel es ton os ? (http://mail.python.org/pipermail/python-list/2004-September/284455.html)

Re: écriture d'un fichier .wav

Posté par GautK le 24/05/2007 14:06
je travaille sous xp,
voila le code, il ne sert à rien, parce que pour l'instant j'essaye juste d'ouvrir un fichier, d'en extraire les données, et de les réécrire dans un autre fichier. Une fois que je saurai faire ca, je manipulerai les données.

Pour l'instant, alors que le fichier demo.wav est tout a fait audible, j'obtiens n'importe quoi avec demo2.wav

code:
import wave, audioop, numpy
from numpy.fft import *
from math import *

signal = wave.open('C:\demo.wav', 'rb' )
Nframes = float(signal.getnframes())
width = signal.getsampwidth()
frameRate = signal.getframerate()

frame = signal.readframes(1)
power =[]
while len(frame):
    power.append(audioop.rms( frame, width ))
    frame = signal.readframes(1)

new_signal = wave.open('C:\demo2.wav', 'wb')
new_signal.setsampwidth(width)
new_signal.setframerate(frameRate)
new_signal.setnchannels(signal.getnchannels())

for j in range(len(power)):
     data = hex(power[j])
     new_signal.writeframes(data)
new_signal.close()

Re: écriture d'un fichier .wav

Posté par spag le 15/06/2007 18:15
As tu trouver la solution à ton problème? Parce que j'ai le même ;)

Python.org : Le site officiel du langage Python.
Zope.org : Le site web officiel de Zope.
Daily Python-URL : Actus de l'univers Python.
Tribute to Zyons : Zyons notre ami et membre fondateur de l'Afpy, nous quittait en 2005.