Eri*_*ric 9 python audio macos numpy scipy
我正在尝试使用scipy读取.wav文件.我这样做:
from scipy.io import wavfile
filename = "myWavFile.wav"
print "Processing " + filename
samples = wavfile.read(filename)
Run Code Online (Sandbox Code Playgroud)
我得到了这个丑陋的错误:
/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
Run Code Online (Sandbox Code Playgroud)
我使用的是Python 2.6.6,numpy 1.6.2和scipy 0.11.0
这是导致问题的wav文件.
有什么想法吗?这有什么不对?
rol*_*ger 18
文件不再可用(9个月后就不足为奇了!),但是为了将来参考,最可能的原因是它有额外的元数据,scipy无法解析.
在我的例子中,它是由Audacity添加的默认元数据(版权,曲目名称等) - 您可以在Audacity中打开文件并使用文件...打开元数据编辑器来查看它.然后使用"清除"按钮将其剥离,然后重试.
该SciPy的当前版本支持以下RIFF块- "格式化","事实","数据"和"LIST". 关于RIFF的维基百科页面有关于如何构建WAV文件的更多详细信息,例如您的WAV文件可能包含一个不受支持但非常流行的INFO块
小智 7
我对WAV文件格式一无所知,但是深入研究scipy代码看起来scipy并不熟悉文件末尾的块(块ID为bext2753632字节,如果有帮助的话).该块被声明为603字节长,所以它读取它预期另一个块ID为603字节后 - 它没有找到它(用完文件)并且翻倒.
你有没有成功尝试过其他WAV文件?这是怎么产生的?
小智 5
解决此问题的最简单方法是使用 SoX 将 wav 文件转换为其他 wav 文件。
$ sox wavfile.wav wavfile2.wav
Run Code Online (Sandbox Code Playgroud)
对我有用!
| 归档时间: |
|
| 查看次数: |
15338 次 |
| 最近记录: |