音频加载故障排除
本页面旨在记录如何安装torchaudio后端,并为您的音频加载问题提供故障排除步骤。
介绍
SpeechBrain 在大多数情况下依赖 torchaudio 来加载音频文件。如果您遇到问题,请首先尝试更新 torchaudio。 同时,请确保您使用的 PyTorch 版本与已安装的 torchaudio 版本相匹配。
截至 torchaudio 2.2.0,支持三种后端:ffmpeg、sox 和
soundfile。torchaudio 文档中描述了如何在其
可选依赖文档中找到这些后端。
你可以通过运行torchaudio.list_audio_backends()来确定你的环境中可用的后端。
警告
后端可能会*静默*加载失败,如果初始化失败,它将从列表中省略。
警告
并非每个后端都能支持所有的编解码器。 例如,在撰写本文时,torchaudio的SoX后端无法处理MP3,而SoundFile后端无法处理AAC(通常是.m4a),这两种格式在某些流行的语音数据集中都能找到。
然而,大多数常见格式通常都能得到所有后端的良好支持(.wav/.ogg vorbis/opus/.flac)。
推荐的安装步骤
通常,torchaudio 可以直接使用。在某些系统上,可能没有安装可用的后端。我们建议您尝试以下步骤,看看是否能解决您的问题:
开发者注意事项 & torchaudio 2.x 的重大更改
在 torchaudio <2.x 版本中,后端是通过 torchaudio.set_audio_backend 选择的。这个函数在 torchaudio 的 2.x 分支中被弃用并移除,并且在 SpeechBrain 中不再使用。从那时起,后端(可选地)通过 torchaudio.load() 和 torchaudio.info() 的 backend 参数选择。
安装/故障排除后端
ffmpeg
torchaudio 为 ffmpeg 的特定范围版本编译了他们的 ffmpeg 后端。
ffmpeg 通常已经安装在常见的 Linux 发行版上。
在 Ubuntu 上,可以通过 sudo apt install ffmpeg 安装。
根据您的操作系统版本,您安装的ffmpeg版本可能不受torchaudio支持(如果版本太新或太旧)。
如果您认为这是问题所在,您可以尝试安装由conda-forge提供的特定版本的ffmpeg包。
有关更多详细信息,请参阅torchaudio文档中的可选依赖项。
音频文件
torchaudio 可以使用 soundfile 作为音频后端,它依赖于 libsndfile。
从 SoundFile 0.12.0 开始,这个包捆绑了预构建的 libsndfile
适用于多个平台。有关更多详细信息,请参阅项目页面。
SoX
从torchaudio 0.12.0开始,SoX后端不再支持mp3文件。
从 torchaudio 2.1.0 开始,torchaudio 不再自行编译和捆绑 SoX,而是期望由系统提供。
如果您从早期版本升级后无法再加载音频文件,可能是由于这个原因。在这种情况下,您可能需要安装SoX或使用不同的后端。