Torch audio 文档
索引
安装
API 教程
音频数据集
管道教程
训练实用技巧
Conformer RNN-T 语音识别
Emformer RNN-T 语音识别
Conv-TasNet 源分离
HuBERT 预训练与微调(ASR)
实时音视频自动语音识别
Python API 参考文档
Python 原型 API 参考
C++ 原型 API 参考
PyTorch 库
PyTorch
torchaudio
torchtext
torchvision
TorchElastic
TorchServe
在 XLA 设备上使用 PyTorch

torchaudio

输入/输出

torchaudio 顶级模块提供了以下函数,使得处理音频数据变得更加便捷。

info 获取音频文件的信号信息。
load 从源加载音频数据。
save 将音频数据保存到文件。
list_audio_backends 列出可用的后端

后端与调度器

解码和编码媒体是一个高度复杂的过程。因此,TorchAudio 依赖第三方库来执行这些操作。这些第三方库被称为 backend,目前 TorchAudio 集成了以下库。

有关如何启用后端的详细信息,请参阅 安装

传统上,TorchAudio 在运行时根据可用性全局设置其 I/O 后端。然而,这种方法不允许应用程序使用不同的后端,并且不太适合大型代码库。

出于这些原因,在 v2.0 版本中,我们引入了一个调度器(dispatcher),这是一种新机制,允许用户为每个函数调用选择后端。

当启用调度器模式时,所有 I/O 函数都接受额外的关键字参数 backend,用于指定所需的后端。如果指定的后端不可用,函数调用将失败。

如果没有明确选择后端,函数将根据优先级顺序和库的可用性选择一个后端使用。

下表总结了可用的后端。

优先级 后端 支持的操作系统 注意
1 FFmpeg Linux, macOS, Windows 使用get_audio_decoders()get_audio_encoders()获取支持的编解码器。该后端支持多种协议,例如 HTTPS 和 MP4,以及类文件对象。
2 SoX Linux, macOS 使用list_read_formats()以及list_write_formats()获取支持的编解码器。该后端不支持not支持类文件对象。
3 SoundFile Linux, macOS, Windows 请参考官方文档支持的编解码器。该后端支持类文件对象。

调度器迁移

我们正在将 I/O 功能迁移到使用调度器机制,这导致了多项变更,其中一些涉及向后兼容性的破坏性更改,并要求用户更改他们的函数调用。

(计划中的)变更如下。有关最新信息,请参考 https://github.com/pytorch/audio/issues/2950

  • 在 2.0 版本中,引入了音频 I/O 后端调度器。用户可以通过设置环境变量 TORCHAUDIO_USE_BACKEND_DISPATCHER=1 来选择使用调度器。

  • 在 2.1 版本中,调度器成为 I/O 的默认机制。

  • 在 2.2 版本中,移除了旧的全局后端机制。工具函数 get_audio_backend()set_audio_backend() 变为无操作。

此外,我们从 libsox 后端移除了对类文件对象的支持,因为 FFmpeg 后端对此提供了更好的支持,并且简化了构建过程。因此,从 2.1 版本开始,FFmpeg 和 Soundfile 是唯一支持类文件对象的后端。

本页目录