【问题标题】:Can't import audiolab in python无法在 python 中导入 audiolab
【发布时间】:2013-02-17 15:54:05
【问题描述】:

我从这个来源安装了 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。

【问题讨论】:

  • 我在 Mac OS 上与 numpy.dtype 有同样的问题

标签: python audio-processing


【解决方案1】:

您只需安装 libsndfile 也可以。

brew install libsndfile

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

        但是,如果这看起来很费力,那么安装 Python 2.6 并按照scikits docs 的建议从PyPi 安装audiolab 可能会更容易。 PyPi 版本的 scikits.audiolab 静态链接到 libsndfile,因此您无需自行安装。

        【讨论】:

        • 好吧,libsndfile 已经包含在我的版本中(我还安装了 libsndfile 以确保)。 PyPi 版本仅适用于 Python 2.6...
        • 您应该安装哪个版本的 libsndfile,32 位还是 64 位?它是否取决于您的 Python 安装或您的计算机或您的操作系统的位深度?
        • 这也不能解决我的安装问题。它曾经工作,但现在它给出了这个错误。 File "_sndfile.pyx", line 170, in scikits.audiolab.pysndfile._sndfile.Format.__init__ (scikits\audiolab\pysndfile\_sndfile.c:1429) NameError: _SNDFILE_FILE_FORMAT
        猜你喜欢
        • 1970-01-01
        • 2012-12-09
        • 2018-02-13
        • 2010-11-19
        • 2016-05-27
        • 2016-05-12
        • 2018-11-30
        • 2011-07-04
        • 2017-09-27
        相关资源
        最近更新 更多