• 文档 >
  • torchaudio >
  • 旧版本 (稳定版)
快捷方式

torchaudio

警告

从 2.8 版本开始,我们正在重构 TorchAudio,以使其进入维护阶段。因此:

  • 下面列出的大多数 API 在 2.8 版中已弃用,并将在 2.9 版中移除。

  • PyTorch 用于音频和视频的解码和编码功能正在整合到 TorchCodec 中。为方便起见,我们提供 load_with_torchcodec() 作为 load() 的替代,以及 save_with_torchcodec() 作为 save() 的替代,但我们建议您将代码移植到原生 TorchCodec API。

请参阅 https://github.com/pytorch/audio/issues/3902 获取更多信息。

I/O

torchaudio 顶级模块提供了以下功能,便于处理音频数据。

信息

已弃用

加载

从源加载音频数据。

load_with_torchcodec

使用 TorchCodec 的 AudioDecoder 从源加载音频数据。

保存

将音频数据保存到文件。

save_with_torchcodec

使用 TorchCodec 的 AudioEncoder 将音频数据保存到文件。

list_audio_backends

已弃用

后端和调度器

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

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

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

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

当启用调度器模式时,所有 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() 检索支持的编解码器。

此后端支持类似文件的对象。

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 是唯一支持类文件对象的后端。

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源