Obai33 commited on
Commit
9e4baab
·
verified ·
1 Parent(s): f8b4e77

Upload audio_support_functions.py

Browse files
Files changed (1) hide show
  1. audio_support_functions.py +33 -0
audio_support_functions.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #support functions
2
+
3
+ import matplotlib
4
+ import matplotlib.pyplot as plt
5
+ from IPython.display import display, Audio
6
+ import librosa
7
+
8
+ def plot_waveform(waveform):
9
+ waveform_numpy = waveform.t().numpy()
10
+ plt.plot(waveform_numpy);
11
+ plt.show(block=False)
12
+
13
+ def plot_spectrogram(spec, ylabel='freq_bin', aspect='auto', xmax=None):
14
+ fig, axs = plt.subplots(1, 1)
15
+ axs.set_title('Spectrogram (db)')
16
+ axs.set_ylabel(ylabel)
17
+ axs.set_xlabel('frame')
18
+ im = axs.imshow(librosa.power_to_db(spec), origin='lower', aspect=aspect)
19
+ if xmax:
20
+ axs.set_xlim((0, xmax))
21
+ fig.colorbar(im, ax=axs)
22
+ plt.show(block=False)
23
+
24
+ def play_audio(waveform, sample_rate):
25
+ waveform = waveform.numpy()
26
+
27
+ num_channels, num_frames = waveform.shape
28
+ if num_channels == 1:
29
+ display(Audio(waveform[0], rate=sample_rate)) # for stereo audio (two channels)
30
+ elif num_channels == 2:
31
+ display(Audio((waveform[0], waveform[1]), rate=sample_rate))
32
+ else:
33
+ raise ValueError("Only mono or stereo files")