torchaudio.save¶
- torchaudio.save(uri: Union[str, PathLike], src: Tensor, sample_rate: int, channels_first: bool = True, format: Optional[str] = None, encoding: Optional[str] = None, bits_per_sample: Optional[int] = None, buffer_size: int = 4096, backend: Optional[str] = None, compression: Optional[Union[float, int]] = None) None [源码]¶
使用 TorchCodec 的 AudioEncoder 将音频数据保存到文件。
注意
从 TorchAudio 2.9 开始,此函数在底层依赖 TorchCodec 的编码能力。它提供是为了方便,但我们建议您将代码移植到原生使用
torchcodec
的AudioEncoder
类,以获得更好的性能: https://docs.pytorch.ac.cn/torchcodec/stable/generated/torchcodec.encoders.AudioEncoder。由于依赖 Torchcodec,参数format
、encoding
、bits_per_sample
、buffer_size
和backend
将被忽略,仅为向后兼容而接受。要安装 torchcodec,请按照 https://github.com/pytorch/torchcodec#installing-torchcodec 上的说明进行操作。- 参数
uri (路径类对象) – 要保存音频文件的路径。文件扩展名决定格式。
src (torch.Tensor) – 要保存的音频数据。必须是 1D 或 2D 张量,值为 float32,范围在 [-1, 1] 之间。如果是 2D,当 channels_first=True 时,形状应为 [通道, 时间];当 channels_first=False 时,形状应为 [时间, 通道]。
sample_rate (int) – 音频数据的采样率。
channels_first (bool, 可选) – 指示输入张量是否将通道作为第一个维度。如果为 True,则期望 [通道, 时间]。如果为 False,则期望 [时间, 通道]。默认为 True。
format (str 或 None, 可选) – 音频格式提示。TorchCodec 不使用(格式由文件扩展名决定)。如果提供,将发出警告。默认为 None。
encoding (str 或 None, 可选) – 音频编码。TorchCodec AudioEncoder 不完全支持。如果提供,将发出警告。默认为 None。
bits_per_sample (int 或 None, 可选) – 每样本位数。TorchCodec AudioEncoder 不直接支持。如果提供,将发出警告。默认为 None。
buffer_size (int, 可选) – TorchCodec AudioEncoder 不使用。为 API 兼容性提供。如果不是默认值,将发出警告。默认为 4096。
backend (str 或 None, 可选) – TorchCodec AudioEncoder 不使用。为 API 兼容性提供。如果提供,将发出警告。默认为 None。
compression (float, int 或 None, 可选) – 压缩级别或比特率。映射到 TorchCodec AudioEncoder 中的 bit_rate 参数。默认为 None。
- 引发
ImportError – 如果 torchcodec 不可用。
ValueError – 如果输入参数无效。
RuntimeError – 如果 TorchCodec 无法编码音频。
注意
TorchCodec AudioEncoder 期望 float32 样本,范围在 [-1, 1] 之间。
某些参数(format、encoding、bits_per_sample、buffer_size、backend)
TorchCodec 不使用,但为 API 兼容性而提供。- 输出格式由 uri 中的文件扩展名决定。- TorchCodec 在底层使用 FFmpeg 进行编码。