我正在尝试使用 scipy 读取 .wav 文件。我这样做:
from scipy.io import wavfile
filename = "myWavFile.wav"
print "Processing " + filename
samples = wavfile.read(filename)
我得到了这个丑陋的错误:
/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 <module>
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
我正在使用 Python 2.6.6、numpy 1.6.2 和 scipy 0.11.0
这 是导致问题的 wav 文件。
有什么想法吗?这里出了什么问题?
原文由 Eric 发布,翻译遵循 CC BY-SA 4.0 许可协议
我对 WAV 文件格式一无所知,但深入研究
scipy
代码看起来像scipy
不熟悉文件末尾出现的块(块 ID 是bext
,2753632 字节,如果有帮助的话)。该块被声明为 603 字节长,因此它读取了它并期待 603 字节后的另一个块 ID——它没有找到它(文件用完)并失败了。你在其他 WAV 文件上试过成功了吗?这个是怎么产生的?