Python - problema crear archivo .wav=Ruido

 
Vista:

problema crear archivo .wav=Ruido

Publicado por Jose Antonio (3 intervenciones) el 03/06/2013 04:56:21
Hola Chicos, me encuentro haciendo una practica para la facultad. Tengo que hacer un teclado de tonos. El problema es que tras crear la función del tono, la represento en un gráfico y me sale correcta, pero al intentar generar el archivo .wav, este no da ningun fallo, pero sale con mucho ruido. He ido a leerlo en Matlab y no tiene nada que ver con o que debe de salir. ¿Alguien puede ayudarme?

Dejo el código:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import wave #Librería para generar archivos wav
from numpy import *
#import scipy as sp
import math
import matplotlib.pyplot as plt
#import matplotlib as mpl
import sys
from pylab import *
import struct
 
fs=8000.0
SNR=2
amp=64000.0
 
 
teclacode=array([['1', '2', '3', 'A'],['4', '5', '6','B'],['7', '8', '9','C'],['*','0',"#",'D']])
teclafrec=array([[1906,2033,2174,2330],[1979,2136,2247,2403],[2061,2188,2329,2485],[2150,2307,2418,2574]])
tiempo=arange(0,5,(1./fs))
 
f1=teclafrec[2][1]
f2=teclafrec[2][2]
 
##
##SEÑAL EN EL DOMINIO DEL TIEMPO
##
 
m=(sin(2*math.pi*f1*tiempo)+sin(2*math.pi*f2*tiempo))
 
##
##GENERACIÓN DEL ARCHIVO WAV
##
 
signal=wave.open('tono.wav','w')
signal.setparams((1,2,int(fs),80000,'NONE','not compressed'))
for s in m:
    #write the audio frames to file
    packed_value=struct.pack('f',s)
    signal.writeframes(packed_value)
    #print (packed_value)
signal.close()
 
 
 
figure()
plot(tiempo,m)
axis([0,0.02,-2,2])
xlabel('Tiempo(s)')
ylabel('Amplitud')
title('Amplitud en el dominio del tiempo')
show()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder