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) -> bytes 和 seek(self, offset: int, whence: int) -> bytes 方法。详细阅读:通过类文件支持流式传输数据。
Pathlib.path –
object): 视频或音频的来源
如果为
str
:本地路径或视频/音频文件的 URL。如果为
Pathlib.path
:本地视频或音频文件的路径。如果为
bytes
对象或torch.Tensor
:原始编码的音频数据。如果是类文件对象:我们将按需从该对象读取视频数据。该对象必须公开 read(self, size: int) -> bytes 和 seek(self, offset: int, whence: int) -> bytes 方法。详细阅读:通过类文件支持流式传输数据。
bytes –
object): 视频或音频的来源
如果为
str
:本地路径或视频/音频文件的 URL。如果为
Pathlib.path
:本地视频或音频文件的路径。如果为
bytes
对象或torch.Tensor
:原始编码的音频数据。如果是类文件对象:我们将按需从该对象读取视频数据。该对象必须公开 read(self, size: int) -> bytes 和 seek(self, offset: int, whence: int) -> bytes 方法。详细阅读:通过类文件支持流式传输数据。
file-like (torch.Tensor 或) –
object): 视频或音频的来源
如果为
str
:本地路径或视频/音频文件的 URL。如果为
Pathlib.path
:本地视频或音频文件的路径。如果为
bytes
对象或torch.Tensor
:原始编码的音频数据。如果是类文件对象:我们将按需从该对象读取视频数据。该对象必须公开 read(self, size: int) -> bytes 和 seek(self, offset: int, whence: int) -> bytes 方法。详细阅读:通过类文件支持流式传输数据。
stream_index (int, optional) – 指定要从中解码样本的文件的流。请注意,此索引对于所有媒体类型都是绝对的。如果未指定,则使用 最佳流。
sample_rate (int, optional) – 解码样本所需的输出采样率。默认情况下,使用源的采样率。
num_channels (int, optional) – 解码样本所需的通道数。默认情况下,使用源的通道数。
- 变量:
metadata (AudioStreamMetadata) – 音频流的元数据。
stream_index (int) – 此解码器正在从中检索样本的流索引。如果在初始化时提供了流索引,则此值为相同的值。如果未指定,则为 最佳流。
使用
AudioDecoder
的示例- get_all_samples() AudioSamples [源代码]¶
返回源中的所有音频样本。
要解码特定范围内的样本,请使用
get_samples_played_in_range()
。- 返回:
文件中的样本。
- 返回类型:
- get_samples_played_in_range(start_seconds: float = 0.0, stop_seconds: Optional[float] = None) AudioSamples [源代码]¶
返回给定范围内的音频样本。
样本位于半开区间 [start_seconds, stop_seconds)。
要解码从开始到结束的所有样本,您可以调用此方法,将
start_seconds
和stop_seconds
保留为其默认值,或者使用get_all_samples()
作为更方便的别名。- 参数:
- 返回:
指定范围内的样本。
- 返回类型: