快捷方式

AudioDecoder

class torchcodec.decoders.AudioDecoder(source: Union[str, Path, RawIOBase, BufferedReader, bytes, Tensor], *, stream_index: Optional[int] = None, sample_rate: Optional[int] = None, num_channels: Optional[int] = None)[源代码]

一个单流音频解码器。

这可用于解码纯音频文件(例如 mp3、wav 等)或包含音频流的视频(例如 mp4 视频)中的音频。

返回的样本是归一化在 [-1, 1] 范围内的浮点样本

参数:
  • (str (source) –

    object): 视频或音频的来源

    • 如果为 str:本地路径或视频/音频文件的 URL。

    • 如果为 Pathlib.path:本地视频或音频文件的路径。

    • 如果为 bytes 对象或 torch.Tensor:原始编码的音频数据。

    • 如果是类文件对象:我们将按需从该对象读取视频数据。该对象必须公开 read(self, size: int) -> bytesseek(self, offset: int, whence: int) -> bytes 方法。详细阅读:通过类文件支持流式传输数据

  • Pathlib.path

    object): 视频或音频的来源

    • 如果为 str:本地路径或视频/音频文件的 URL。

    • 如果为 Pathlib.path:本地视频或音频文件的路径。

    • 如果为 bytes 对象或 torch.Tensor:原始编码的音频数据。

    • 如果是类文件对象:我们将按需从该对象读取视频数据。该对象必须公开 read(self, size: int) -> bytesseek(self, offset: int, whence: int) -> bytes 方法。详细阅读:通过类文件支持流式传输数据

  • bytes

    object): 视频或音频的来源

    • 如果为 str:本地路径或视频/音频文件的 URL。

    • 如果为 Pathlib.path:本地视频或音频文件的路径。

    • 如果为 bytes 对象或 torch.Tensor:原始编码的音频数据。

    • 如果是类文件对象:我们将按需从该对象读取视频数据。该对象必须公开 read(self, size: int) -> bytesseek(self, offset: int, whence: int) -> bytes 方法。详细阅读:通过类文件支持流式传输数据

  • file-like (torch.Tensor 或) –

    object): 视频或音频的来源

    • 如果为 str:本地路径或视频/音频文件的 URL。

    • 如果为 Pathlib.path:本地视频或音频文件的路径。

    • 如果为 bytes 对象或 torch.Tensor:原始编码的音频数据。

    • 如果是类文件对象:我们将按需从该对象读取视频数据。该对象必须公开 read(self, size: int) -> bytesseek(self, offset: int, whence: int) -> bytes 方法。详细阅读:通过类文件支持流式传输数据

  • stream_index (int, optional) – 指定要从中解码样本的文件的流。请注意,此索引对于所有媒体类型都是绝对的。如果未指定,则使用 最佳流

  • sample_rate (int, optional) – 解码样本所需的输出采样率。默认情况下,使用源的采样率。

  • num_channels (int, optional) – 解码样本所需的通道数。默认情况下,使用源的通道数。

变量:
  • metadata (AudioStreamMetadata) – 音频流的元数据。

  • stream_index (int) – 此解码器正在从中检索样本的流索引。如果在初始化时提供了流索引,则此值为相同的值。如果未指定,则为 最佳流

使用 AudioDecoder 的示例

使用 AudioDecoder 解码音频流

使用 AudioDecoder 解码音频流

通过类文件对象流式传输数据

通过类文件对象流式传输数据

使用 AudioEncoder 对音频样本进行编码

使用 AudioEncoder 对音频样本进行编码
get_all_samples() AudioSamples[源代码]

返回源中的所有音频样本。

要解码特定范围内的样本,请使用 get_samples_played_in_range()

返回:

文件中的样本。

返回类型:

AudioSamples

get_samples_played_in_range(start_seconds: float = 0.0, stop_seconds: Optional[float] = None) AudioSamples[源代码]

返回给定范围内的音频样本。

样本位于半开区间 [start_seconds, stop_seconds)。

要解码从开始到结束的所有样本,您可以调用此方法,将 start_secondsstop_seconds 保留为其默认值,或者使用 get_all_samples() 作为更方便的别名。

参数:
  • start_seconds (float) – 范围开始时间(以秒为单位)。默认为 0。

  • stop_seconds (floatNone) – 范围结束时间(以秒为单位)。作为一个半开区间,不包括结束时间。默认为 None,表示解码直到最后。

返回:

指定范围内的样本。

返回类型:

AudioSamples

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源