Spaces:
Sleeping
Sleeping
#support functions | |
import matplotlib | |
import matplotlib.pyplot as plt | |
from IPython.display import display, Audio | |
import librosa | |
def plot_waveform(waveform): | |
waveform_numpy = waveform.t().numpy() | |
plt.plot(waveform_numpy); | |
plt.show(block=False) | |
def plot_spectrogram(spec, ylabel='freq_bin', aspect='auto', xmax=None): | |
fig, axs = plt.subplots(1, 1) | |
axs.set_title('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)) # for stereo audio (two channels) | |
elif num_channels == 2: | |
display(Audio((waveform[0], waveform[1]), rate=sample_rate)) | |
else: | |
raise ValueError("Only mono or stereo files") |