scipy.io.wavfile gives "WavFileWarning: chunk not understood" 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?


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 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.


The easiest solution to this problem is to convert the wav file into other wav file using SoX.

$ sox wavfile.wav wavfile2.wav

Works for me!