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] ¶
从源加载音频数据。
默认情况下 (
normalize=True
,channels_first=True
),此函数返回float32
dtype 的 Tensor,形状为 [channel, time]。警告
normalize
参数不执行音量归一化。它仅将样本类型从本机样本类型转换为 torch.float32。当输入格式为整数类型的 WAV 时,例如 32 位有符号整数、16 位有符号整数、24 位有符号整数和 8 位无符号整数,通过提供
normalize=False
,此函数可以返回整数 Tensor,其中样本在相应 dtype 的整个范围内表示,即 32 位有符号 PCM 的int32
tensor,16 位有符号 PCM 的int16
和 8 位无符号 PCM 的uint8
。由于 torch 不支持int24
dtype,因此 24 位有符号 PCM 将转换为int32
张量。normalize
参数对 32 位浮点 WAV 和其他格式(例如flac
和mp3
)没有影响。对于这些格式,此函数始终返回带有值的
float32
Tensor。- 参数:
uri (path-like object 或 file-like object) – 音频数据的来源。
frame_offset (int, optional) – 在开始读取数据之前要跳过的帧数。
num_frames (int, optional) – 要读取的最大帧数。
-1
读取从frame_offset
开始的所有剩余样本。如果给定文件中没有足够的帧,则此函数可能会返回较少的帧数。normalize (bool, optional) –
当
True
时,此函数将本机样本类型转换为float32
。默认值:True
。如果输入文件是整数 WAV,则给出
False
会将结果 Tensor 类型更改为整数类型。此参数对于整数 WAV 类型以外的格式无效。channels_first (bool, optional) – 当为 True 时,返回的 Tensor 具有维度 [channel, time]。否则,返回的 Tensor 的维度为 [time, channel]。
format (str 或 None, optional) – 如果不是
None
,则解释为提示,允许后端覆盖检测到的格式。(默认值:None
)buffer_size (int, optional) – 处理类文件对象时要使用的缓冲区大小,以字节为单位。(默认值:
4096
)backend (str 或 None, optional) –
要使用的 I/O 后端。如果
None
,函数会根据输入和可用的后端选择后端。否则,必须是 ["ffmpeg"
,"sox"
,"soundfile"
] 之一,并且相应的后端可用。(默认值:None
)另请参阅
- 返回:
- 结果 Tensor 和采样率。
如果输入文件具有整数 wav 格式并且归一化已关闭,则它具有整数类型,否则为
float32
类型。如果channels_first=True
,则它具有 [channel, time],否则为 [time, channel]。
- 返回类型:
(torch.Tensor, int)
- 使用
load
的教程