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
),此函数返回 dtype 为float32
且形状为 [channel, time] 的 Tensor。警告
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
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
的教程