def sox_build_flow_effects(self, out=None): r"""Build effects chain and flow effects from input file to output tensor Args: out (torch.Tensor): Where the output will be written to. (Default: ``None``) Returns: Tuple[torch.Tensor, int]: An output Tensor of size `[C x L]` or `[L x C]` where L is the number of audio frames and C is the number of channels. An integer which is the sample rate of the audio (as listed in the metadata of the file) """ # initialize output tensor if out is not None: torchaudio.check_input(out) else: out = torch.FloatTensor() if not len(self.chain): e = SoxEffect() e.ename = "no_effects" e.eopts = [""] self.chain.append(e) # print("effect options:", [x.eopts for x in self.chain]) sr = _torch_sox.build_flow_effects(self.input_file, out, self.channels_first, self.out_siginfo, self.out_encinfo, self.filetype, self.chain, self.MAX_EFFECT_OPTS) torchaudio._audio_normalization(out, self.normalization) return out, sr
def load(filepath: str, out: Optional[Tensor] = None, normalization: bool = True, channels_first: bool = True, num_frames: int = 0, offset: int = 0, signalinfo: SignalInfo = None, encodinginfo: EncodingInfo = None, filetype: Optional[str] = None) -> Tuple[Tensor, int]: r"""See torchaudio.load""" # stringify if `pathlib.Path` (noop if already `str`) filepath = str(filepath) # check if valid file if not os.path.isfile(filepath): raise OSError("{} not found or is a directory".format(filepath)) # initialize output tensor if out is not None: torchaudio.check_input(out) else: out = torch.FloatTensor() if num_frames < -1: raise ValueError("Expected value for num_samples -1 (entire file) or >=0") if offset < 0: raise ValueError("Expected positive offset value") from . import _torchaudio sample_rate = _torchaudio.read_audio_file( filepath, out, channels_first, num_frames, offset, signalinfo, encodinginfo, filetype ) # normalize if needed torchaudio._audio_normalization(out, normalization) return out, sample_rate
def sox_build_flow_effects(self, out=None): """Build effects chain and flow effects from input file to output tensor """ # initialize output tensor if out is not None: torchaudio.check_input(out) else: out = torch.FloatTensor() if not len(self.chain): e = SoxEffect() e.ename = "no_effects" e.eopts = [""] self.chain.append(e) # print("effect options:", [x.eopts for x in self.chain]) sr = _torch_sox.build_flow_effects(self.input_file, out, self.channels_first, self.out_siginfo, self.out_encinfo, self.filetype, self.chain, self.MAX_EFFECT_OPTS) torchaudio._audio_normalization(out, self.normalization) return out, sr