scipy.io.wavfile muestra el error “WavFileWarning: chunk no entiende”

Estoy tratando de leer un archivo .wav usando scipy. Hago esto:

from scipy.io import wavfile filename = "myWavFile.wav" print "Processing " + filename samples = wavfile.read(filename) 

Y me sale este feo error:

 /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/io/wavfile.py:121: WavFileWarning: chunk not understood warnings.warn("chunk not understood", WavFileWarning) Traceback (most recent call last): File "fingerFooler.py", line 15, in  samples = wavfile.read(filename) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/io/wavfile.py", line 127, in read size = struct.unpack(fmt, data)[0] struct.error: unpack requires a string argument of length 4 

Estoy usando Python 2.6.6, numpy 1.6.2 y scipy 0.11.0

Aquí hay un archivo wav que causa el problema.

¿Alguna idea? ¿Qué está mal aquí?

No sé nada sobre el formato de archivo WAV, pero al scipy en el código scipy parece que scipy no está familiarizado con el fragmento que está presente hacia el final del archivo (el ID del fragmento es bext, 2753632 bytes, si eso ayuda) ). Ese trozo se declara con 603 bytes de largo, por lo que se lee más allá de él, esperando otro ID de trozo 603 bytes más tarde, no lo encuentra (se queda sin archivo) y se cae.

¿Lo has probado con éxito en otros archivos WAV? ¿Cómo se generó este?

Los archivos ya no están disponibles (¡no es sorprendente después de 9 meses!), Pero para futuras referencias, la causa más probable es que tenía metadatos adicionales que Scipy no puede analizar.

En mi caso, fueron los metadatos predeterminados (derechos de autor, nombre de la pista, etc.) que fue agregado por Audacity; puede abrir el archivo en Audacity y usar Archivo … Abrir el Editor de metadatos para verlo. Luego use el botón ‘Borrar’ para eliminarlo e intente nuevamente.

La versión actual de scipy admite los siguientes fragmentos RIFF: ‘fmt’, ‘fact’, ‘data’ y ‘LIST’. La página de Wikipedia en RIFF tiene un poco más de detalles sobre cómo está estructurado un archivo WAV, por ejemplo, el suyo podría haber incluido un fragmento INFO no compatible pero popular

También recibí este error debido a (presumiblemente) los metadatos introducidos por Audacity. Exporté mi archivo wav desde otro DAW (Ableton Live), y scipy.io.wavfile lo cargó sin error.

Tuve el mismo error y pude convertir con éxito a lo que puede leer.

Mi archivo original era de Logic Pro. Luego usé audacia para leer el archivo.