I\'m trying to read a .wav file using scipy. I do this:
from scipy.io import wavfile
filename = \"myWavFile.wav\"
print \"Processing \" + filename
samples
The files is no longer available (not surprising after 9 months!), but for future reference the most likely cause is that it had extra metadata which scipy can't parse.
In my case, it was default metadata (copyright, track name etc) which was added by Audacity- you can open the file in Audacity and use File ... Open Metadata Editor to see it. Then use the 'Clear' button to strip it, and try again.
The current version of scipy supports the following RIFF chunks - 'fmt', 'fact', 'data' and 'LIST'. The Wikipedia page on RIFF has a bit more detail on how a WAV file is structured, for example yours might have included an unsupported-but-popular INFO chunk
I also got this error because of (presumably) metadata introduced by Audacity. I exported my wav file from another DAW (Ableton Live), and scipy.io.wavfile loaded it without error.
I don't know anything about the WAV file format, but digging into the scipy
code it looks like scipy
isn't familiar with the chunk that's present towards the end of the file (chunk ID is bext
, 2753632 bytes in, if that helps). That chunk is declared as 603 bytes long so it reads past it expecting another chunk ID 603 bytes later -- it doesn't find it (runs out of file) and falls over.
Have you tried it on other WAV files successfully? How was this one generated?
I had the same error and could successfully convert to what it can read.
My original file was from Logic Pro. Then I used audacity to read the file.