torchaudio.load_with_torchcodec¶
- torchaudio.load_with_torchcodec(uri: Union[BinaryIO, str, PathLike], frame_offset: int = 0, num_frames: int = -1, normalize: bool = True, channels_first: bool = True, format: Optional[str] = None, buffer_size: int = 4096, backend: Optional[str] = None) Tuple[Tensor, int] [源代码]¶
使用 TorchCodec 的 AudioDecoder 从源加载音频数据。
注意
此函数支持与
load()
相同的 API,并在底层依赖 TorchCodec 的解码能力。它提供便利,但我们建议您将代码移植到原生使用torchcodec
的AudioDecoder
类以获得更好的性能:https://docs.pytorch.ac.cn/torchcodec/stable/generated/torchcodec.decoders.AudioDecoder。在 TorchAudio 2.9 中,load()
依赖于load_with_torchcodec()
。请注意,load()
的一些参数,如normalize
、buffer_size
和backend
,会被load_with_torchcodec()
忽略。要安装 torchcodec,请按照 https://github.com/pytorch/torchcodec#installing-torchcodec 的说明进行操作。- 参数
uri (类路径对象或文件类对象) –
音频数据源。接受以下类型:
类路径
:文件路径或 URL。文件类
:具有read(size: int) -> bytes
方法的对象。
frame_offset (int, 可选) – 在开始读取数据之前要跳过的样本数。
num_frames (int, 可选) – 要读取的最大样本数。
-1
读取所有剩余样本,从frame_offset
开始。normalize (bool, 可选) – TorchCodec 始终返回归一化的 float32 样本。如果设置为 False,则忽略此参数并发出警告。默认为
True
。channels_first (bool, 可选) – 如果为 True,则返回的 Tensor 具有维度 [通道, 时间]。否则,返回的 Tensor 的维度为 [时间, 通道]。
format (str 或 None, 可选) – 解码器的格式提示。可能不受所有 TorchCodec 解码器支持。(默认:
None
)buffer_size (int, 可选) – TorchCodec AudioDecoder 未使用。为 API 兼容性提供。
backend (str 或 None, 可选) – TorchCodec AudioDecoder 未使用。为 API 兼容性提供。
- 返回
返回的 Tensor 和采样率。始终返回 float32 Tensor。如果
channels_first=True
,形状为 [通道, 时间],否则为 [时间, 通道]。- 返回类型
(torch.Tensor, int)
- 引发
ImportError – 如果 torchcodec 不可用。
ValueError – 如果使用不受支持的参数。
RuntimeError – 如果 TorchCodec 无法解码音频。
注意
TorchCodec 始终返回归一化的 float32 样本,因此
normalize
参数无效。buffer_size
和backend
参数将被忽略。并非所有 torchaudio 后端支持的音频格式都可能被 TorchCodec 支持。