无法在Python中导入audiolab
我从这个网址安装了audiolab:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikits.audiolab
这是我找到的唯一适用于Python 2.7的Windows版本。
当我输入 from scikits import audiolab
时,出现了以下错误:
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
from scikits import audiolab
File "C:\Python27\lib\site-packages\scikits\audiolab\__init__.py", line 34, in <module>
from pysndfile.matapi import *
File "C:\Python27\lib\site-packages\scikits\audiolab\pysndfile\matapi.py", line 145, in <module>
Format('wav', 'pcm16').file_format)
File "_sndfile.pyx", line 170, in scikits.audiolab.pysndfile._sndfile.Format.__init__ (scikits\audiolab\pysndfile\_sndfile.c:1429)
NameError: _SNDFILE_FILE_FORMAT
有没有办法解决这个问题?如果没有,那我该用什么来处理音频呢?(在音频工具中,audiolab似乎是音频工具和pyaudio中最好的选择)
编辑:
在替换了libsndfile-1.dll之后,我遇到了这个新错误:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
from scikits import audiolab
File "C:\Python27\lib\site-packages\scikits\audiolab\__init__.py", line 25, in <module>
from pysndfile import formatinfo, sndfile
File "C:\Python27\lib\site-packages\scikits\audiolab\pysndfile\__init__.py", line 1, in <module>
from _sndfile import Sndfile, Format, available_file_formats, \
File "numpy.pxd", line 30, in scikits.audiolab.pysndfile._sndfile (scikits\audiolab\pysndfile\_sndfile.c:9632)
ValueError: numpy.dtype does not appear to be the correct type object
注意:numpy已经安装。
4 个回答
我在Ubuntu 10.04.4 LTS上也遇到了同样的问题。原因是我安装的audiolab版本是针对python2.5的,但在这段时间里,Ubuntu 10.04.4 LTS的python升级到了2.6。后来我重新安装了audiolab(这次安装了正确的版本),一切都正常了。
我在Mac OS上也遇到了同样的问题。可能是你在安装audiolab之后,更新了或者安装了新的python/numpy版本。我做的就是先卸载scikits.audiolab,然后再重新安装,这样就解决了这个错误。
根据我的了解,你需要安装 libsndfile-1.0.25,这个信息就在你下载二进制文件的地方提到过。
Scikits.audiolab 是一个用于处理音频文件的工具,它使用 numpy 数组来进行输入输出。这个工具是和 libsndfile-1.0.25 连接在一起的。
你可以从 这里 下载安装程序。安装完 libsndfile
后,你可能需要重新安装 scikits.audiolab
,不过说实话,我也不太确定。
不过,如果觉得这些步骤太麻烦,你可以考虑安装 Python 2.6,然后从 PyPi 安装 audiolab
,这也是 scikits 文档 推荐的做法。PyPi 上的 scikits.audiolab
版本已经和 libsndfile
绑定在一起了,所以你就不需要自己再去安装它了。