使用diart与OpenAI Whisper时FFmpeg已安装仍报错的问题
问题:diart结合OpenAI Whisper转录音频时FFmpeg依赖报错
使用diart库结合OpenAI Whisper模型进行音频转录,运行代码时抛出以下错误:
Traceback (most recent call last): File "/home/vkyc/Desktop/projectRasa/audio/lib/python3.10/site-packages/torchaudio/_extension.py", line 71, in _init_ffmpeg _load_lib("libtorchaudio_ffmpeg") File "/home/vkyc/Desktop/projectRasa/audio/lib/python3.10/site-packages/torchaudio/_extension.py", line 52, in _load_lib torch.ops.load_library(path) File "/home/vkyc/Desktop/projectRasa/audio/lib/python3.10/site-packages/torch/_ops.py", line 573, in load_library ctypes.CDLL(path) File "/usr/lib/python3.10/ctypes/__init__.py", line 374, in __init__ self._handle = _dlopen(self._name, mode) OSError: libavdevice.so.58: cannot open shared object file: No such file or directory The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/vkyc/Desktop/audio_streaming/LiveStream.py", line 13, in <module> from diart.sources import MicrophoneAudioSource File "/home/vkyc/Desktop/projectRasa/audio/lib/python3.10/site-packages/diart/sources.py", line 11, in <module> from torchaudio.io import StreamReader File "/home/vkyc/Desktop/projectRasa/audio/lib/python3.10/site-packages/torchaudio/io/__init__.py", line 21, in __getattr__ torchaudio._extension._init_ffmpeg() File "/home/vkyc/Desktop/projectRasa/audio/lib/python3.10/site-packages/torchaudio/_extension.py", line 73, in _init_ffmpeg raise ImportError("FFmpeg libraries are not found. Please install FFmpeg.") from err ImportError: FFmpeg libraries are not found. Please install FFmpeg.
已执行pip install python-ffmpeg和sudo apt install ffmpeg确认系统已安装FFmpeg,但问题依旧。
解决方案
安装对应版本的FFmpeg库
报错中缺失的libavdevice.so.58属于FFmpeg 4.x系列,若通过apt安装的是新版FFmpeg(如5.x),库版本号会升级为59,导致不匹配。直接安装对应版本的库:sudo apt install libavdevice58若apt源中找不到该版本,可尝试添加旧版软件源,或从FFmpeg官方下载对应版本的预编译库手动安装。
配置系统库路径
若库已安装但系统无法识别,先定位库文件位置:find /usr -name libavdevice.so.58将找到的路径添加到
LD_LIBRARY_PATH环境变量:export LD_LIBRARY_PATH=/path/to/ffmpeg/libs:$LD_LIBRARY_PATH若需永久生效,可将上述命令添加到
~/.bashrc或~/.zshrc文件末尾,执行source ~/.bashrc使配置生效。修复虚拟环境依赖兼容性
当前使用的虚拟环境中,torchaudio版本可能与系统FFmpeg版本不兼容。重新安装torchaudio:pip uninstall torchaudio -y pip install torchaudio --no-cache-dir若仍不兼容,可指定与FFmpeg 4.x适配的torchaudio版本进行安装。
创建软链接修复库引用
若找到libavdevice.so.58的路径(如/usr/lib/x86_64-linux-gnu/),但系统无法找到,可创建软链接:sudo ln -s /usr/lib/x86_64-linux-gnu/libavdevice.so.58 /usr/lib/libavdevice.so.58注意根据实际找到的路径调整命令中的路径参数。
内容的提问来源于stack exchange,提问作者Schrödinger's Cat
相关产品推荐
相关产品推荐

