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

时间:2011-02-09 02:24:54

标签: python function audio libsndfile scikits

我需要为研究项目安装Python模块audiolab,虽然我已经设法安装它并在Python shell中导入模块,但它在调用模块中最基本的函数之一时返回错误,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。这是在文档中的指示,在标题'build'

下找到了here

文档还讨论了在某些情况下需要制作'site.cfg'文件,这是我在谷歌搜索后看到的,只是真正适用于Windows用户,但我不确定这一点。

你能解决我的问题的任何亮点都会非常感激!!

1 个答案:

答案 0 :(得分:4)

有些缺乏audiolab文档,但wavread()需要输入文件。在您的代码中,该输入为test.wav。如果工作目录中不存在(通常是python脚本的位置),则需要提供该文件的完整路径。