torchaudio.load¶
- torchaudio.load(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] ¶
从源加载音频数据。
警告
在 2.9 版本中,此函数的实现将改为在后台使用
load_with_torchcodec()
。一些参数,如normalize
、format
、buffer_size
和backend
将被忽略。我们建议您将代码迁移到直接依赖 TorchCodec 的解码器:https://docs.pytorch.ac.cn/torchcodec/stable/generated/torchcodec.decoders.AudioDecoder.html#torchcodec.decoders.AudioDecoder。默认情况下(
normalize=True
,channels_first=True
),此函数返回float32
类型的 Tensor,形状为 [channel, time]。警告
normalize
参数不执行音量归一化。它仅将采样类型从原生采样类型转换为 torch.float32。当输入格式为具有整数类型的 WAV(例如 32 位有符号整数、16 位有符号整数、24 位有符号整数和 8 位无符号整数)时,通过提供
normalize=False
,此函数可以返回整数 Tensor,其中采样表示在相应数据类型的整个范围内,即 32 位有符号 PCM 返回int32
Tensor,16 位有符号 PCM 返回int16
Tensor,8 位无符号 PCM 返回uint8
Tensor。由于 torch 不支持int24
数据类型,24 位有符号 PCM 将被转换为int32
Tensor。normalize
参数对 32 位浮点 WAV 和其他格式(如flac
和mp3
)没有影响。对于这些格式,此函数始终返回带有值的
float32
Tensor。- 参数
uri (类路径对象或类文件对象) – 音频数据源。
frame_offset (int, 可选) – 开始读取数据前要跳过的帧数。
num_frames (int, 可选) – 要读取的最大帧数。
-1
表示读取从frame_offset
开始的所有剩余样本。如果给定文件中没有足够的帧,此函数可能会返回比指定数量少的帧数。normalize (bool, 可选) –
如果为
True
,此函数会将原生采样类型转换为float32
。默认为True
。如果输入文件是整数 WAV,提供
False
将会把结果 Tensor 类型更改为整数类型。此参数对非整数 WAV 类型以外的格式无效。channels_first (bool, 可选) – 如果为 True,则返回的 Tensor 维度为 [channel, time]。否则,返回的 Tensor 维度为 [time, channel]。
format (str 或 None, 可选) – 如果不为
None
,则被解释为一种提示,可能允许后端覆盖检测到的格式。(默认:None
)buffer_size (int, 可选) – 处理类文件对象时使用的缓冲区大小(以字节为单位)。(默认:
4096
)backend (str 或 None, 可选) –
要使用的 I/O 后端。如果为
None
,则函数根据输入和可用后端选择后端。否则,必须是 ["ffmpeg"
、"sox"
、"soundfile"
] 中的一个,并且相应的后端必须可用。(默认:None
)另请参阅
- 返回
- 结果 Tensor 和采样率。
如果输入文件是整数 WAV 格式且归一化关闭,则其类型为整数;否则为
float32
类型。如果channels_first=True
,则维度为 [channel, time],否则为 [time, channel]。
- 返回类型
(torch.Tensor, int)
- 使用
load
的教程