Hugging Face 音频数据集指南 – 如何加载、处理和流式传输音频数据
TL;DR
Hugging Face 发布了一份一步步的指南,展示 🤗 Datasets 库可以通过一次 load_dataset 调用下载、预处理并流式传输 Hub 上的任何音频数据集,使大规模语音和音频研究变得实用且可复现。
Hub 是音频数据的一站式平台
Hugging Face Hub 托管了 77 个语音识别 和 28 个音频分类 数据集(截至 2022 年 12 月的数量)。每个数据集卡片都提供可播放音频样本的预览、许可信息以及训练该数据的模型链接。用户可以直接在 Hub 上按任务类别筛选数据集。
"数据集预览是体验音频数据集、在决定使用之前的绝佳方式。"
使用 load_dataset 一行加载
核心 API 为 datasets.load_dataset。提供 Hub 标识符(例如 speechcolab/gigaspeech)和可选配置(例如 "xs" 表示 10 小时切分)即可返回包含 train、validation 和 test 切分的 DatasetDict。
from datasets import load_dataset
gigaspeech = load_dataset("speechcolab/gigaspeech", "xs")
print(gigaspeech)
输出显示每个切分的行数以及完整的特征列表(例如 segment_id、speaker、text、audio,…)。可以使用 remove_columns 删除任务不需要的列。
最小化预处理流水线
三个通用步骤覆盖了大多数语音识别工作流:
- 重采样 – 使用
cast_column与datasets.Audio(sampling_rate=…)实时更改采样率。 - 特征提取 – 应用
map函数,对每个样本运行transformers.AutoProcessor(例如 Whisper),将原始波形转换为模型输入并对转录文本进行分词。 - 过滤 – 使用
filter删除超过时长阈值(例如 30 秒)的样本,以避免 OOM 错误。
在教程中,这三个步骤总共只需 13 行 Python 代码。
流式模式消除磁盘空间限制
大型配置(例如 GigaSpeech xl,拥有 10 000 h ≈ 1 TB)在本地存储不切实际。将 streaming=True 设置为惰性加载样本,仅在迭代时下载并处理每个条目。
gigaspeech = load_dataset("speechcolab/gigaspeech", "xs", streaming=True)
流式的优势包括:
- 零磁盘占用 – 数据仅在迭代期间驻留在内存中。
- 即时可用 – 一旦获取到第一个样本即可开始训练。
- 快速原型 – 在少量样本上实验,无需完整下载。
权衡在于流式数据不会被缓存;重复运行时会重新下载并重新处理每个样本。
流行音频数据集快速概览
本指南列出了三类任务中最常用的数据集,均可通过相同的 load_dataset 方式访问。
英语语音识别
| 数据集 | 领域 | 时长 | 大小写 | 标点 | 许可证 |
|---|---|---|---|---|---|
| LibriSpeech | 有声书 | 960 | ❌ | ❌ | CC‑BY‑4.0 |
| Common Voice 11 | 维基百科 | 2 300 | ✅ | ✅ | CC0‑1.0 |
| VoxPopuli | 欧洲议会 | 540 | ❌ | ✅ | CC0 |
| TED‑LIUM | TED 演讲 | 450 | ❌ | ❌ | CC‑BY‑NC‑ND 3.0 |
| GigaSpeech | 有声书、播客、YouTube | 10 000 | ❌ | ✅ | Apache‑2.0 |
| SPGISpeech | 财报电话会议 | 5 000 | ✅ | ✅ | User Agreement |
| Earnings‑22 | 财报电话会议 | 119 | ✅ | ✅ | CC‑BY‑SA‑4.0 |
| AMI | 会议 | 100 | ✅ | ✅ | CC‑BY‑4.0 |
多语言语音识别
- Multilingual LibriSpeech – 八种高资源语言。
- Common Voice – 超过 100 种语言,众包收集。
- VoxPopuli – 15 种欧洲语言。
- FLEURS – 102 种语言,每种语言约 10 小时。
语音翻译
- CoVoST 2 – 2 900 小时,覆盖 21→EN 和 EN→15 语言对。
- FLEURS – 101 对语言的平行语音翻译数据。
音频分类
- SpeechCommands – 1 秒关键词语音,用于设备端关键词检测。
- Multilingual Spoken Words – 23.4 小时,覆盖 50 种语言,34 万关键词。
- FLEURS – 102 种语言的语言识别标签。
结束语
本指南证明 🤗 Datasets 是音频研究的首选库:一行代码即可加载任意数据集,内置音频特性简化重采样,流式模式使海量语料可处理。随附的 Colab notebook 展示了如何在一个脚本中对八个英语 ASR 数据集评估 Whisper,体现了该工作流的实际优势。
本文博客文章的贡献者包括 Vaibhav Srivastav、Polina Kazakova、Patrick von Platen、Omar Sanseviero 和 Quentin Lhoest。