4

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

4

4 回答 4

0

据我所知,您需要在下载二进制文件的地方安装libsndfile-1.0.25

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

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

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

于 2013-03-03T14:56:18.627 回答
0

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

于 2014-09-23T17:11:39.283 回答
0

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

于 2014-10-01T20:45:13.520 回答
0

您需要做的就是安装 libsndfile 也可以。

brew install libsndfile
于 2021-11-16T00:55:20.097 回答