使用soundfile转换Ogg为Wav时遭遇“格式未识别”错误求助
解决soundfile读取Ogg文件报错「Format not recognised」
问题根源
soundfile依赖的底层库libsndfile,默认编译版本通常不包含Ogg/Vorbis格式支持,导致无法识别.ogg文件。
修复方案
方案一:重装带完整格式支持的soundfile
- Windows/macOS:用conda安装conda-forge源的预编译包(自带完整libsndfile):
conda install -c conda-forge soundfile - Linux:先安装系统级的完整libsndfile开发包,再重装soundfile:
# Debian/Ubuntu 系列 sudo apt-get install libsndfile1-dev # 强制重装soundfile以关联新的libsndfile pip install --force-reinstall soundfile
方案二:换用pydub(无需依赖libsndfile)
如果不想折腾libsndfile,用pydub结合ffmpeg处理更省心:
from pydub import AudioSegment def convert(): ogg_audio = AudioSegment.from_ogg('file.ogg') ogg_audio.export('file.wav', format='wav')
前置依赖安装:
pip install pydub # 安装ffmpeg:Windows/macOS从官网下载,Linux用系统包管理器 # Debian/Ubuntu: sudo apt-get install ffmpeg
验证
修复后运行原代码或上述替代代码,能正常生成.wav文件即为解决。
内容的提问来源于stack exchange,提问作者slck
相关产品推荐
相关产品推荐

