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 对应int32Tensor,16 位有符号 PCM 对应int16,8 位无符号 PCM 对应uint8。由于 torch 不支持int24dtype,因此 24 位有符号 PCM 会转换为int32Tensor。normalize参数对 32 位浮点 WAV 和其他格式(如flac和mp3)无效。对于这些格式,此函数始终返回包含值的
float32Tensor。- 参数:
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的教程