def separate_file(self, path, savedir="."): """Separate sources from file. Arguments --------- path : str Path to file which has a mixture of sources. It can be a local path, a web url, or a huggingface repo. savedir : path Path where to store the wav signals (when downloaded from the web). Returns ------- tensor Separated sources """ source, fl = split_path(path) path = fetch(fl, source=source, savedir=savedir) batch, fs_file = torchaudio.load(path) batch = batch.to(self.device) fs_model = self.hparams.sample_rate # resample the data if needed if fs_file != fs_model: print("Resampling the audio from {} Hz to {} Hz".format( fs_file, fs_model)) tf = torchaudio.transforms.Resample(orig_freq=fs_file, new_freq=fs_model) batch = batch.mean(dim=0, keepdim=True) batch = tf(batch) est_sources = self.separate_batch(batch) est_sources = est_sources / est_sources.max(dim=1, keepdim=True)[0] return est_sources
def separate_file(self, path, savedir="."): """Separate sources from file. Arguments --------- path : str Path to file which has a mixture of sources. It can be a local path, a web url, or a huggingface repo. savedir : path Path where to store the wav signals (when downloaded from the web). Returns ------- tensor Separated sources """ source, fl = split_path(path) path = fetch(fl, source=source, savedir=savedir) batch, _ = torchaudio.load(path) # eric fix batch = batch.to(self.device) est_sources = self.separate_batch(batch) est_sources = est_sources / est_sources.max(dim=1, keepdim=True)[0] return est_sources
def separate_file(self, path, savedir="."): """Separate sources from file. Arguments --------- path : str Path to file which has a mixture of sources. It can be a local path, a web url, or a huggingface repo. savedir : path Path where to store the wav signals (when downloaded from the web). Returns ------- tensor Separated sources """ source, fl = split_path(path) # sample rate limit to 8000 batch, _ = torchaudio.sox_effects.apply_effects_file( path, effects=[['rate', "8000"]]) # eric fix batch = batch.to(self.device) #print(batch.device) est_sources = self.separate_batch(batch) est_sources = est_sources / est_sources.max(dim=1, keepdim=True)[0] return est_sources
def load_audio(self, path, savedir="."): """Load an audio file with this model"s input spec When using a speech model, it is important to use the same type of data, as was used to train the model. This means for example using the same sampling rate and number of channels. It is, however, possible to convert a file from a higher sampling rate to a lower one (downsampling). Similarly, it is simple to downmix a stereo file to mono. The path can be a local path, a web url, or a link to a huggingface repo. """ source, fl = split_path(path) path = fetch(fl, source=source, savedir=savedir) signal, sr = torchaudio.load(path, channels_first=False) return self.audio_normalizer(signal, sr)