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()
忽略。- 参数
uri (路径类对象或文件类对象) –
音频数据源。接受以下类型:
path-like
: 文件路径或 URL。file-like
: 具有read(size: int) -> bytes
方法的对象。
frame_offset (int, 可选) – 开始读取数据前要跳过的样本数。
num_frames (int, 可选) – 要读取的最大样本数。
-1
读取从frame_offset
开始的所有剩余样本。normalize (bool, 可选) – TorchCodec 始终返回归一化的 float32 样本。如果设置为 False,此参数将被忽略并发出警告。默认值:
True
。channels_first (bool, 可选) – 如果为 True,则返回的 Tensor 的维度为 [channel, time]。否则,返回的 Tensor 的维度为 [time, channel]。
format (str或None, 可选) – 解码器的格式提示。可能并非所有 TorchCodec 解码器都支持此功能。(默认:
None
)buffer_size (int, 可选) – TorchCodec AudioDecoder 不使用。为保持 API 兼容性而提供。
backend (str或None, 可选) – TorchCodec AudioDecoder 不使用。为保持 API 兼容性而提供。
- 返回
结果 Tensor 和采样率。始终返回 float32 Tensor。如果
channels_first=True
,形状为 [channel, time],否则为 [time, channel]。- 返回类型
(torch.Tensor, int)
- 引发
ImportError – 如果 torchcodec 不可用。
ValueError – 如果使用了不支持的参数。
RuntimeError – 如果 TorchCodec 无法解码音频。
注意
TorchCodec 始终返回归一化的 float32 样本,因此
normalize
参数无效。已忽略
buffer_size
和backend
参数。并非所有 torchaudio 后端支持的音频格式都可能被 TorchCodec 支持。