无法在python中导入audiolab

时间:2013-03-03 14:22:40

标签: python audio-processing

我从这个来源安装了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似乎是audiotools和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。

3 个答案:

答案 0 :(得分:0)

据我所知,您需要安装libsndfile-1.0.25,正如您在下载二进制文件时所提到的那样

  

Scikits.audiolab是一个使用numpy数组的音频文件IO包。链接libsndfile-1.0.25。

您可以从here下载安装程序。安装scikits.audiolab后,您可能需要重新安装libsndfile发行版(虽然老实说,我不确定)。

但是,如果这需要付出很多努力,您可能更容易安装Python 2.6并从PyPi安装audiolab scikits docs建议。 PyPi scikits.audiolablibsndfile静态链接到{{1}},因此您无需自行安装。

答案 1 :(得分:0)

我在Mac OS上遇到了同样的问题。安装audiolab后,您可能更新或安装了新版本的python / numpy。我做的是卸载scikits.audiolab并重新安装它,摆脱了这个错误

答案 2 :(得分:0)

我在Ubuntu 10.04.4 LTS上遇到了同样的问题。原因是audiolab的安装版本是针对python2.5的,但与此同时,Ubuntu 10.04.4 LTS python升级到2.6版本。在新安装的audiolab(获得正确版本)之后,一切正常。