Spaces:
Runtime error
Runtime error
import librosa | |
from IPython.display import Audio, display | |
import matplotlib.pyplot as plt | |
import torch | |
SAMPLE_RIR_URL = "https://pytorch-tutorial-assets.s3.amazonaws.com/VOiCES_devkit/distant-16k/room-response/rm1/impulse/Lab41-SRI-VOiCES-rm1-impulse-mc01-stu-clo.wav" | |
SAMPLE_NOISE_URL = "https://pytorch-tutorial-assets.s3.amazonaws.com/VOiCES_devkit/distant-16k/distractors/rm1/babb/Lab41-SRI-VOiCES-rm1-babb-mc01-stu-clo.wav" | |
def plot_spectrogram(spec, title=None, ylabel="freq_bin", aspect="auto", xmax=None): | |
spec = spec.squeeze(0) | |
spec = spec.numpy() | |
fig, axs = plt.subplots(1, 1) | |
axs.set_title(title or "Spectrogram (db)") | |
axs.set_ylabel(ylabel) | |
axs.set_xlabel("frame") | |
im = axs.imshow(librosa.power_to_db(spec), origin="lower", aspect=aspect) | |
if xmax: | |
axs.set_xlim((0, xmax)) | |
fig.colorbar(im, ax=axs) | |
plt.show(block=False) | |
def play_audio(waveform, sample_rate): | |
waveform = waveform.numpy() | |
num_channels, num_frames = waveform.shape | |
if num_channels == 1: | |
display(Audio(waveform[0], rate=sample_rate)) | |
elif num_channels == 2: | |
display(Audio((waveform[0], waveform[1]), rate=sample_rate)) | |
else: | |
raise ValueError("Waveform with more than 2 channels are not supported.") | |
def get_rir_sample(path, resample=None, processed=False): | |
rir_raw, sample_rate = torch.load(path) | |
if not processed: | |
return rir_raw, sample_rate | |
rir = rir_raw[:, int(sample_rate*1.01):int(sample_rate*1.3)] | |
rir = rir / torch.norm(rir, p=2) | |
rir = torch.flip(rir, [1]) | |
return rir, sample_rate | |