Bonsoir,
J'ai mis au point il y quelques temps un programme Python qui permet de faire du filtrage sonore ( je décompose le son sur Audacity et je récupère la liste des fréquences présentes. Je lis ensuite cette liste sur Python et je n'isole que quelques fréquences).
Admettons que j'obtienne à l'issue de ce traitement la liste de fréquences suivante :
Je dois ensuite recréer un fichier son (.wav) contenant uniquement ces fréquences. Pour ce faire j'ai écrit le programme suivant mais après de nombreux essais j'ai toujours l'erreur "EOFError" et je n'arrive pas à corriger cette dernière. Je pense que c'est peut-être une coquille au niveau des bornes des intervalles... mais je n'ai pas réussi à trouver d'où venait le problème.[818.261719, 861.328125, 904.394531, 947.460938, 990.527344]
Si vous trouvez d'où vient mon erreur je vous serais très reconnaissant
Cordialement
Maxime
Le programme en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 import wave import math NomFichier = 'son à nbCanal fréquences filtré.wav' Son=wave.open(NomFichier,'rb') duree= float(5) nbCanal = len(Lfreq) nbOctet = 1 fech = 10000 nbEchantillon = duree*fech params = (nbCanal, nbOctet, fech, nbEchantillon, 'NONE', 'not compressed') with wave.open('son à nbCanal fréquences filtré.wav', 'wb') as handle: handle.setparams(params) def generation_son(L): for i in range(0,nbEchantillon): Lval=[] for k in range(len(Lfreq)): val = wave.struct.pack('B',int(128.0 + 127.5*math.sin(2.0*math.pi*Lfreq[k]*i/fech))) Lval.append(val) Son.writeframes(concatenate(Lval)) generation_son(A)
Partager