使用DeepFilterNet音频降噪时遭遇文件找不到错误
解决DeepFilterNet "The system cannot find the file specified" 错误
一、API调用问题
你当前的API请求直接指定了本地路径samples/chat_with_noise.wav,但HF Space的远程服务器无法访问你的本地文件,这才导致文件找不到的错误。
修复方案
需要将本地音频文件以二进制或Base64编码的形式传入API请求,而非使用本地路径。以下是两种可行的代码修改方式:
方式1:二进制文件上传
import requests # 读取本地音频文件 with open("samples/chat_with_noise.wav", "rb") as f: audio_data = f.read() # 构造符合API要求的请求 r = requests.post( url='https://hf.space/embed/hshr/DeepFilterNet/+/api/predict/', files={ "data": ( "chat_with_noise.wav", audio_data, "audio/wav" ) }, data={"data": [None, None, None, 10]} ) print(r.json())
方式2:Base64编码上传
import requests import base64 # 将音频文件转为Base64字符串 with open("samples/chat_with_noise.wav", "rb") as f: audio_b64 = base64.b64encode(f.read()).decode("utf-8") # 构造JSON请求体 r = requests.post( url='https://hf.space/embed/hshr/DeepFilterNet/+/api/predict/', json={ "data": [ {"data": f"data:audio/wav;base64,{audio_b64}", "name": "chat_with_noise.wav"}, None, None, 10 ] } ) print(r.json())
二、本地命令行问题
从报错栈信息来看,错误并非找不到音频文件,而是DeepFilterNet依赖的ffmpeg工具未安装或未加入系统PATH。DeepFilterNet处理音频时会调用ffmpeg做格式转换,系统找不到该工具就会抛出文件不存在的错误。
修复方案
- 安装ffmpeg:
- Windows:下载ffmpeg编译包,解压后将
bin目录添加到系统环境变量PATH中 - macOS:通过Homebrew安装:
brew install ffmpeg - Linux:通过包管理器安装(如Ubuntu:
sudo apt install ffmpeg)
- Windows:下载ffmpeg编译包,解压后将
- 验证安装:打开新终端执行
ffmpeg -version,能输出版本信息即为安装成功 - 重新运行命令:确保在音频文件所在目录执行,或使用绝对路径:
deepFilter /完整路径/samples/chat_with_noise.wav
另外,warnings.warn("No audio backend is available.")的警告可通过安装soundfile解决:
pip install soundfile
内容的提问来源于stack exchange,提问作者Usama Aleem
相关产品推荐
相关产品推荐

