Note
Click here to download the full example code
Audio Datasets¶
Author: Moto Hira
torchaudio
provides easy access to common, publicly accessible
datasets. Please refer to the official documentation for the list of
available datasets.
import torch
import torchaudio
print(torch.__version__)
print(torchaudio.__version__)
2.1.1
2.1.0
import os
import IPython
import matplotlib.pyplot as plt
_SAMPLE_DIR = "_assets"
YESNO_DATASET_PATH = os.path.join(_SAMPLE_DIR, "yes_no")
os.makedirs(YESNO_DATASET_PATH, exist_ok=True)
def plot_specgram(waveform, sample_rate, title="Spectrogram"):
waveform = waveform.numpy()
figure, ax = plt.subplots()
ax.specgram(waveform[0], Fs=sample_rate)
figure.suptitle(title)
figure.tight_layout()
Here, we show how to use the
torchaudio.datasets.YESNO
dataset.
dataset = torchaudio.datasets.YESNO(YESNO_DATASET_PATH, download=True)
0%| | 0.00/4.49M [00:00<?, ?B/s]
1%| | 40.0k/4.49M [00:00<00:20, 225kB/s]
5%|4 | 208k/4.49M [00:00<00:06, 644kB/s]
15%|#4 | 680k/4.49M [00:00<00:02, 1.55MB/s]
41%|#### | 1.83M/4.49M [00:00<00:00, 3.56MB/s]
100%|##########| 4.49M/4.49M [00:00<00:00, 5.64MB/s]
i = 1
waveform, sample_rate, label = dataset[i]
plot_specgram(waveform, sample_rate, title=f"Sample {i}: {label}")
IPython.display.Audio(waveform, rate=sample_rate)
i = 3
waveform, sample_rate, label = dataset[i]
plot_specgram(waveform, sample_rate, title=f"Sample {i}: {label}")
IPython.display.Audio(waveform, rate=sample_rate)
i = 5
waveform, sample_rate, label = dataset[i]
plot_specgram(waveform, sample_rate, title=f"Sample {i}: {label}")
IPython.display.Audio(waveform, rate=sample_rate)
Total running time of the script: ( 0 minutes 1.970 seconds)