注意
点击 这里 下载完整示例代码
音频数据集¶
作者: Moto Hira
torchaudio 提供了便捷的方式来访问常见且公开可用的数据集。请参阅官方文档以获取可用数据集的列表。
import torch
import torchaudio
print(torch.__version__)
print(torchaudio.__version__)
2.6.0.dev20241104
2.5.0.dev20241105
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()
此处,我们展示如何使用
torchaudio.datasets.YESNO 数据集。
dataset = torchaudio.datasets.YESNO(YESNO_DATASET_PATH, download=True)
0%| | 0.00/4.49M [00:00<?, ?B/s]
3%|2 | 128k/4.49M [00:00<00:08, 514kB/s]
11%|#1 | 512k/4.49M [00:00<00:03, 1.39MB/s]
39%|###9 | 1.75M/4.49M [00:00<00:00, 4.44MB/s]
81%|######## | 3.62M/4.49M [00:00<00:00, 8.03MB/s]
100%|##########| 4.49M/4.49M [00:00<00:00, 6.89MB/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)
脚本的总运行时间: ( 0 分钟 1.737 秒)