in denoiser/audio.py [0:0]
def __getitem__(self, index):
for (file, _), examples in zip(self.files, self.num_examples):
if index >= examples:
index -= examples
continue
num_frames = 0
offset = 0
if self.length is not None:
offset = self.stride * index
num_frames = self.length
if torchaudio.get_audio_backend() in ['soundfile', 'sox_io']:
out, sr = torchaudio.load(str(file),
frame_offset=offset,
num_frames=num_frames or -1)
else:
out, sr = torchaudio.load(str(file), offset=offset, num_frames=num_frames)
target_sr = self.sample_rate or sr
target_channels = self.channels or out.shape[0]
if self.convert:
out = convert_audio(out, sr, target_sr, target_channels)
else:
if sr != target_sr:
raise RuntimeError(f"Expected {file} to have sample rate of "
f"{target_sr}, but got {sr}")
if out.shape[0] != target_channels:
raise RuntimeError(f"Expected {file} to have sample rate of "
f"{target_channels}, but got {sr}")
if num_frames:
out = F.pad(out, (0, num_frames - out.shape[-1]))
if self.with_path:
return out, file
else:
return out