Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

enregistrer un son sous python

131 views
Skip to first unread message

igor carron

unread,
May 5, 2005, 9:19:28 AM5/5/05
to
Bonjour,

J'essaie d'enregistrer un son sous Windows et Python 2.2 afin de
pouvoir l'analyser en frequence.

J'ai joue un peu avec fastaudio
http://www.freenet.org.nz/python/pyPortAudio/
mais je ne comprends pas comment l'enregistrement qui devient une
string peut-etre sauver sous un fichier wav (en utlisant l'exemple) ?
Il n'y a pas non plus de documentation pour dsptools (
http://sourceforge.net/projects/dsptools )

Quelqu'un aurait-il un element de reponse ? Merci d'avance,

Igor.

Sean McIlroy

unread,
May 5, 2005, 12:35:51 PM5/5/05
to
je me demande que ceci vous interesserait:

http://www.speech.kth.se/snack/

peace
sean

Do Re Mi chel La Si Do

unread,
May 5, 2005, 3:41:38 PM5/5/05
to
'soir

J'avais fais une classe, qui fonctionnait avec Python 2.3 + ctypes, et
adressait directement windows.MCI
Si ça te dis, je met ça en-dessous...

Michel Claveau


import time
from ctypes import windll, c_buffer

class mci:
def __init__(self):
self.w32mci = windll.winmm.mciSendStringA
self.w32mcierror = windll.winmm.mciGetErrorStringA

def send(self,commande):
buffer = c_buffer(255)
errorcode = self.w32mci(str(commande),buffer,254,0)
if errorcode:
return errorcode, self.get_error(errorcode)
else:
return errorcode,buffer.value

def get_error(self,error):
error = int(error)
buffer = c_buffer(255)
self.w32mcierror(error,buffer,254)
return buffer.value

def directsend(self, txt):
(err,buf)=self.send(txt)
if err != 0:
print'Erreur',str(err),'sur',txt,':',buf
return (err,buf)

def record(self):
print"Record"
self.directsend('open new type waveaudio alias toto')
self.directsend('Set toto time format milliseconds')
self.directsend('set toto bitspersample 8') # 8 bits ou 16 bits
self.directsend('set toto samplespersec 11025') # 11025 low
qualité 22050 medium qualité 44100 high qualité (CD)
self.directsend('set toto channels 1') # 1 mono 2 stéréo
self.directsend('record toto')
time.sleep(0.1)

def finrecord(self, nomfichier):
self.directsend('stop toto')
self.directsend('save toto '+nomfichier)
self.directsend('close toto')
#self.directsend('delete toto')

message=mci()
message.record()
for i in xrange(5):
time.sleep(1)
print 5-i
print "Fin"
message.finrecord()

igor carron

unread,
May 6, 2005, 4:42:31 PM5/6/05
to
Michel,

Ca marche. Merci beaucoup. J'ai utilise Ctypes pour python 2.2 et ca
marche sous Python 2.2 aussi.

Un petit detail, la derniere ligne devrait etre:
message.finrecord('C:\\enregistrement1.wav')
afin d'enregistrer le son dans le fichier: enregistrement1.wav
cela semble evident mais je suis un nouveau avec python.

Merci aussi a Sean pour la reference sur Snack.

Igor.

Do Re Mi chel La Si Do

unread,
May 6, 2005, 6:40:34 PM5/6/05
to
Bonsoir !

Pour la dernière ligne, je suis d'accord. Mais j'ai donné un fichier "brut",
que j'utilise indirectement.


Pour le reste, si tu envisages de pouvoir faire des analyses (fréquences,
niveau, etc.), je serais intéressé par la façon de faire. Cela pourrait
permettre de trouver les début/fin automatiquement, d'approcher (doucement)
la reconnaissance vocale, etc.


@-salutations

Michel Claveau

igorc...@gmail.com

unread,
May 7, 2005, 7:47:22 AM5/7/05
to
Bonjour,

Il y a bien sur cet article:
http://www.onlamp.com/pub/a/python/2001/01/31/numerically.html

au lieu d'utiliser dislin, j'utilise scipy. Pour l'instant je
m'interesse a des sons tres precis mais si tu es interesse par la
chose, je te conseille de regarder des articles sur les ondelettes
(wavelet en anglais).

Merci encore,

Igor.

igorc...@gmail.com

unread,
May 7, 2005, 7:52:46 AM5/7/05
to
Michel,

A ta question, oui, je ferais un petit resume de mes incursions dans ce
domaine dans ce groupe.

Igor.

Do Re Mi chel La Si Do

unread,
May 7, 2005, 3:32:37 PM5/7/05
to
Bonsoir !

Merci pour le lien, très facile, malgré l'anglais omni-présent.
L'exemple donné ayant fonctionné du premier coup, je laisse ma
xénolinguiphobie de côté...

@-salutations

Michel Claveau

Do Re Mi chel La Si Do

unread,
May 7, 2005, 3:33:00 PM5/7/05
to
Merci d'avance.

MCI

0 new messages