esta es mi primera publicación en la pila. Hasta ahora, este sitio ha sido muy útil, pero soy un novato y necesito una explicación clara de mi problema, que está relacionado con el audio de cambio de tono en Python. Tengo instalados los módulos actuales: numpy, scipy, pygame y scikits "samplerate" api.Python: Cambiar el tono del archivo de audio
Mi objetivo es tomar un archivo estéreo y reproducirlo en un tono diferente en tan pocos pasos como sea posible. Actualmente, cargo el archivo en una matriz usando pygame.sndarray, luego aplico una conversión de frecuencia de muestreo usando scikits.samplerate.resample, luego convierto la salida a un objeto de sonido para reproducir usando pygame. El problema es que el audio basura sale de mis altavoces. Seguramente me faltan algunos pasos (además de no saber nada sobre matemáticas y audio).
Gracias.
import time, numpy, pygame.mixer, pygame.sndarray
from scikits.samplerate import resample
pygame.mixer.init(44100,-16,2,4096)
# choose a file and make a sound object
sound_file = "tone.wav"
sound = pygame.mixer.Sound(sound_file)
# load the sound into an array
snd_array = pygame.sndarray.array(sound)
# resample. args: (target array, ratio, mode), outputs ratio * target array.
# this outputs a bunch of garbage and I don't know why.
snd_resample = resample(snd_array, 1.5, "sinc_fastest")
# take the resampled array, make it an object and stop playing after 2 seconds.
snd_out = pygame.sndarray.make_sound(snd_resample)
snd_out.play()
time.sleep(2)
Oh hombre, no sé cómo agradecerte. No, espera, sí, puedo enviarte dinero de cerveza a través de PayPal si aceptas mi oferta. Tengo innumerables horas buscando una solución. Esto es fantástico. – hilmers
Me alegro de verte como mi respuesta :) No tienes que ofrecerme nada, tu pregunta fue interesante y también he aprendido algunas cosas con ella. – kasyc
¿Sería posible guardar el objeto pygame.micer.Sound modificado como un archivo de sonido en lugar de reproducirlo? –