如何解决Python中的RuntimeError:找不到合适的后端来处理URI

1 投票
1 回答
528 浏览
提问于 2025-04-14 18:36

我想在pytorch中处理音频文件。

当我运行这行代码:metadata = torchaudio.info(SAMPLE_WAV_PATH)时,出现了错误信息:RuntimeError: Couldn't find appropriate backend to handle uri _assets\steam.wav and format None

网上有人告诉我可以试试这个命令:str(torchaudio.list_audio_backends()),看看我是否安装了soundfile。结果显示我没有安装,因为返回的是一个空列表。

于是我尝试安装soundfile。以下是我尝试过的命令:

  • conda install pytorch torchvision torchaudio -c pytorch
  • conda install -c conda-forge pysoundfile
  • pip install soundfile
  • pip install PySoundFile

但是这些都没有解决问题。根据anaconda navigator的显示,我已经安装了pysoundfile和soundfile,但仍然出现同样的错误信息。我搜索了一些类似的问题,发现有这样的提问:无法导入torch audio '没有可用的音频后端'。但那里的回答都说我应该安装soundfile。

如果有人知道问题出在哪里,我会很感激能得到一些帮助,提前谢谢大家。

编辑 我使用的是Windows 11。

1 个回答

1

在我的Windows 11电脑上,配置如下:

  • C:\Users\Foo>python3 --version
    Python 3.12.2
    
  • C:\Users\Foo>pip3 --version
    pip 24.0 from C:\Users\Foo\PathToPython312\site-packages\pip (python 3.12)
    
  • C:\Users\Foo>pip3 show torch torchvision torchaudio PySoundFile
    WARNING: Package(s) not found: torch torchvision torchaudio PySoundFile
    

    之前没有安装过 torchtorchvisiontorchaudioPySoundFile


我打开了命令提示符(不是以管理员身份),然后运行了:

pip3 install torch torchvision torchaudio

这安装了:

torch              2.2.1
torchaudio         2.2.1
torchvision        0.17.1

注意:同时还安装了其他几个依赖包。

接着我运行了 python3 ./test.py

# ./test.py

import torchaudio
print(str(torchaudio.list_audio_backends()))

结果输出了一个空列表:

[]

所以我又运行了:

pip3 install PySoundFile

这又安装了:

PySoundFile        0.9.0.post1

然后我重新运行了 python3 ./test.py,输出结果是:

['soundfile']

我建议卸载所有相关的包:

pip3 uninstall torch torchvision torchaudio PySoundFile

你可能还想卸载 soundfile,因为它在你尝试的命令列表中。

然后检查一下 pip3 list 的输出,确保这些包不再存在。接着按照我上面的步骤,逐步操作,看看能否得到 ['soundfile'] 作为输出。

注意:我不使用anaconda,所以如果以上步骤没有解决你的问题,那很可能是anaconda导致的。

撰写回答