Kano001's picture
Upload 462 files
864affd verified
raw
history blame
1.62 kB
import os
from abc import ABC, abstractmethod
from typing import BinaryIO, Optional, Tuple, Union
from torch import Tensor
from torchaudio.io import CodecConfig
from .common import AudioMetaData
class Backend(ABC):
@staticmethod
@abstractmethod
def info(uri: Union[BinaryIO, str, os.PathLike], format: Optional[str], buffer_size: int = 4096) -> AudioMetaData:
raise NotImplementedError
@staticmethod
@abstractmethod
def load(
uri: Union[BinaryIO, str, os.PathLike],
frame_offset: int = 0,
num_frames: int = -1,
normalize: bool = True,
channels_first: bool = True,
format: Optional[str] = None,
buffer_size: int = 4096,
) -> Tuple[Tensor, int]:
raise NotImplementedError
@staticmethod
@abstractmethod
def save(
uri: Union[BinaryIO, str, os.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,
compression: Optional[Union[CodecConfig, float, int]] = None,
) -> None:
raise NotImplementedError
@staticmethod
@abstractmethod
def can_decode(uri: Union[BinaryIO, str, os.PathLike], format: Optional[str]) -> bool:
raise NotImplementedError
@staticmethod
@abstractmethod
def can_encode(uri: Union[BinaryIO, str, os.PathLike], format: Optional[str]) -> bool:
raise NotImplementedError