音频加载故障排除

本页面旨在记录如何安装torchaudio后端,并为您的音频加载问题提供故障排除步骤。

介绍

SpeechBrain 在大多数情况下依赖 torchaudio 来加载音频文件。如果您遇到问题,请首先尝试更新 torchaudio。 同时,请确保您使用的 PyTorch 版本与已安装的 torchaudio 版本相匹配。

截至 torchaudio 2.2.0,支持三种后端:ffmpegsoxsoundfile。torchaudio 文档中描述了如何在其 可选依赖文档中找到这些后端。

你可以通过运行torchaudio.list_audio_backends()来确定你的环境中可用的后端。

警告

后端可能会*静默*加载失败,如果初始化失败,它将从列表中省略。

警告

并非每个后端都能支持所有的编解码器。 例如,在撰写本文时,torchaudio的SoX后端无法处理MP3,而SoundFile后端无法处理AAC(通常是.m4a),这两种格式在某些流行的语音数据集中都能找到。 然而,大多数常见格式通常都能得到所有后端的良好支持(.wav/.ogg vorbis/opus/.flac)。

开发者注意事项 & 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或使用不同的后端。