torchaudio.save_with_torchcodec¶
- torchaudio.save_with_torchcodec(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 将音频数据保存到文件。
注意
此函数支持与
save()
相同的 API,并在底层依赖 TorchCodec 的编码功能。它是为了方便而提供的,但我们建议您将代码移植到直接使用torchcodec
的AudioEncoder
类以获得更好的性能:https://docs.pytorch.ac.cn/torchcodec/stable/generated/torchcodec.encoders.AudioEncoder。在 TorchAudio 2.9 中,save()
将依赖save_with_torchcodec()
。请注意,save()
的某些参数,如format
、encoding
、bits_per_sample
、buffer_size
和backend
,会被save_with_torchcodec()
忽略。此函数提供了一个基于 TorchCodec 的 torchaudio.save 的替代方案,具有相同的 API。TorchCodec 的 AudioEncoder 在底层使用 FFmpeg 提供高效编码。
- 参数
uri (类路径对象) – 保存音频文件的路径。文件扩展名决定格式。
src (torch.Tensor) – 要保存的音频数据。必须是范围在 [-1, 1] 内的 float32 值的 1D 或 2D 张量。如果是 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 期望 [-1, 1] 范围内的 float32 样本。
某些参数(format, encoding, bits_per_sample, buffer_size, backend)未被 TorchCodec 使用,但为 API 兼容性而提供。
输出格式由 uri 中的文件扩展名决定。
TorchCodec 在后台使用 FFmpeg 进行编码。