2011-02-03 19 views
5

Tengo un poco de problemas de programación y conversión. Estoy diseñando una IA para reconocer las notas tocadas por los instrumentos y necesito extraer los datos de sonido en bruto de un archivo de onda. Mi objetivo es realizar una operación de FFT durante períodos de tiempo en el archivo para su uso por la IA. Para esto necesito una lista de amplitud del archivo de audio, pero parece que no puedo encontrar una técnica de conversión que funcione. Los archivos comienzan como MP3 y luego los convierto en archivos wav, pero siempre termino con un archivo comprimido que escupe galimatías cuando intento leerlo. ¿Alguien sabe cómo podría convertir el archivo wav a algo que sería compatible con el módulo de onda de Python o incluso algo que convertiría directamente los datos en una lista de amplitud?Extracción de una lista de amplitudes del archivo * .wav para usar en Python

+0

BTW, estoy ejecutando en un macbook pro con PyDev para Eclipse, por lo que aunque los convertidores de Windows no están completamente fuera de cuestión, son muy inconvenientes. – AlexL

Respuesta

3

El módulo de onda Python predeterminado no es muy completo. Puede probar el incluido en scipy como alternativa.

Salida: Reading *.wav files in Python

Si usted va a hacer ningún trabajo pesado numérica con el audio, scipy podría ser su mejor opción de todas formas.

2

Creo que Python puede leer archivos .dat. Se puede utilizar para convertir SoX MP3 o WAV o lo que sea en archivos .dat que son simplemente una lista de texto de "tiempo - Izquierda de amplificador - amplificador derecho"

El código es simplemente soundfile.mp3 Medias soundfile.dat

http://sox.sourceforge.net/

Sox es línea de comando - Lo manejo con Terminal en mi mac, pero cualquier cosa que entienda los comandos Bash o Linux debería funcionar dependiendo de qué CPU está usando.

Espero que ayude!

Es posible que desee ver Pure Data también, tiene algunas buenas transformaciones FFT integradas en un lenguaje de programación gráfica intuitiva.

Cuestiones relacionadas