如何解决Python中的RuntimeError:找不到合适的后端来处理URI
我想在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 个回答
在我的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
之前没有安装过
torch
、torchvision
、torchaudio
或PySoundFile
我打开了命令提示符(不是以管理员身份),然后运行了:
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导致的。