Python模块audiolab调用函数时返回错误

3 投票
1 回答
1023 浏览
提问于 2025-04-16 11:29

我需要为一个研究项目安装Python模块audiolab。虽然我已经成功安装了这个模块,并且可以在Python的命令行中导入它,但在调用模块里最基本的一个函数wavread()时却出现了错误。

我主要使用的是Python2.7.1,不过我也尝试回退到Python2.6.6来安装audiolab,但在导入并调用wavread()函数后,还是遇到了同样的错误信息。

我的操作系统是Mac OS X 10.5.8,使用的是英特尔处理器。

大致情况是这样的:

import numpy                            
import scipy                           
import scikits.audiolab as audio                           
x, fs, nbits = audio.wavread('test.wav')                           

追踪记录(最近的调用最后):

  File "<pyshell#3>", line 1, in <module>                           
    x, fs, nbits = audio.wavread('test.wav')                           
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scikits.audiolab-0.11.0-py2.7-macosx-10.3-                           fat.egg/scikits/audiolab/pysndfile/matapi.py", line 91, in basic_reader                           
    hdl = Sndfile(filename, 'r')                           
  File "_sndfile.pyx", line 488, in scikits.audiolab.pysndfile._sndfile.Sndfile.__init__ (scikits/audiolab/pysndfile/_sndfile.c:4251)                                                      
IOError: error while opening test.wav                           
    ->error while opening file test.wav                           
    -> System error : No such file or directory.                           

我通过pip安装了libsndfile库(我认为audiofile只是一个包装库),安装过程似乎没有出错。然后我尝试通过在终端中使用命令python setup.py install从tar.gz文件安装audiolab。这是文档中指示的,文档可以在这里找到,标题为“构建”。

文档中还提到在某些情况下需要创建一个'site.cfg'文件。根据我在网上搜索到的信息,这个文件似乎主要是针对Windows用户的,不过我不太确定。

如果你能帮我解答这个问题,我将非常感激!!

1 个回答

4

audiolab的文档有点不够详细,不过wavread()这个函数需要一个输入文件。在你的代码中,这个输入文件就是test.wav。如果这个文件在你的工作目录里找不到(通常就是你存放python脚本的地方),你就需要提供这个文件的完整路径。

撰写回答