torchaudio内置数据集全解析:从语音识别到音乐分离的宝藏工具
在语音处理和音频分析领域,高质量的数据集是研究和开发的基础。PyTorch的torchaudio库不仅提供了丰富的音频处理功能,还内置了多种常用的音频数据集,极大地方便了研究人员和开发者的工作。本文将为您详细介绍torchaudio中内置的主要数据集及其应用场景。
常用地址
官网:https://docs.pytorch.org/audio/stable/index.html
数据集参考:https://docs.pytorch.org/audio/stable/datasets.html
快速参考
| 数据集 | 主要用途 |
|---|---|
| LIBRISPEECH | 语音识别 |
| COMMONVOICE | 多语言语音识别/合成 |
| LJSPEECH | 语音合成(单说话人) |
| SPEECHCOMMANDS | 关键词唤醒 |
| VoxCeleb1* | 说话人识别/验证 |
| IEMOCAP | 情感识别 |
| LibriMix | 语音分离 |
| MUSDB_HQ | 音乐源分离 |
| GTZAN | 音乐流派分类 |
| YESNO | 入门教学示例 |
语音识别与合成
LIBRISPEECH
最广泛使用的自动语音识别(ASR)开源数据集之一,基于LibriVox有声读物构建,包含朗读英语语音及其对应文本转录。
COMMONVOICE
Mozilla主导的开源多语言语音数据集,支持100+种语言(包括中文、英语、西班牙语等),通过众包方式收集,是语音识别和合成研究的理想选择。
LJSPEECH
经典的单一说话人英语语音数据集,以其高质量录音和清晰发音著称,专为文本到语音合成(TTS)任务设计,广泛用于训练Tacotron 2、WaveNet等端到端模型。
LIBRITTS
基于LibriVox有声读物构建的TTS专用数据集,与LibriSpeech不同,更强调语音的自然流畅性和韵律特征,适合训练高质量语音合成模型。
TEDLIUM
基于TED演讲录音构建的大规模英语语音识别数据集,包含高质量人工校对转录,主题覆盖广泛,是学术和工业界的ASR基准数据集之一。
语音命令与理解
SPEECHCOMMANDS
Google发布的轻量级语音命令数据集,专为关键词唤醒(如“Hey Google”)和短指令识别设计,适合边缘设备(如IoT设备)的语音交互开发。
FluentSpeechCommands
专门为口语理解(SLU)任务设计的语音指令数据集,包含约3万条语音样本,标注了意图识别和语义槽信息,适合高级语音助手研究。
Snips
面向语音助手开发的数据集,专注于语音唤醒和自然语言理解(NLU),支持多语言,包含丰富的语义标注,适用于智能家居、IoT等场景。
YESNO
小型的孤立词语音识别数据集,包含单个说话人录制的“yes”和“no”序列,适合入门级语音命令识别或教学演示。
说话人与情感识别
VoxCeleb1Identification
基于名人采访音频的闭集说话人识别数据集,用于训练和验证说话人身份鉴别模型,是声纹识别领域的核心基准。
VoxCeleb1Verification
与上一数据集对应,专为开集说话人验证任务设计,用于判断两段语音是否属于同一说话人,广泛应用于学术和工业验证。
IEMOCAP
南加州大学创建的多模态情感识别数据集,包含语音、面部表情等多维数据,广泛用于语音情感识别和对话情绪研究。
CMUARCTIC
卡内基梅隆大学开发的语音合成研究数据库,包含约1,150个音素平衡句子,由4位母语为英语的说话人录制。
语音分离与增强
LibriMix
基于LibriSpeech构建的语音分离和增强数据集,提供多种混合语音场景,支持单通道和多通道语音分离算法开发。
MUSDB_HQ
高质量的多轨音乐数据集,专为音乐源分离任务设计,包含独立的人声和乐器音轨,采用24位WAV格式。
发音与语音障碍
CMUDict
卡内基梅隆大学开发的开源发音词典,包含超过134,000个英语单词和短语的发音标注,是语音处理研究的重要资源。
DR_VCTK
基于VCTK数据集扩展的语音障碍研究数据集,包含健康说话人和构音障碍患者的语音样本,用于辅助技术研究。
音乐信息检索
GTZAN
音乐信息检索领域最具影响力的音乐流派分类数据集之一,包含10类音乐(如摇滚、爵士),每类100条30秒片段。
其他专业数据集
QUESST14
专为音频查询检测任务设计,用于研究跨语言、低资源环境下通过短音频片段检索相似内容。
VCTK_092
VCTK数据集的子集,专为多说话人语音合成和语音转换任务设计,由英国爱丁堡大学发布。
使用示例
使用torchaudio加载数据集非常简单,以LJSPEECH为例:
import torchaudio
# 下载并加载LJSPEECH数据集
dataset = torchaudio.datasets.LJSPEECH(
root="./data", # 存储路径
download=True # 自动下载
)
# 访问数据
for waveform, sample_rate, transcript, normalized_transcript in dataset:
print(f"音频形状: {waveform.shape}")
print(f"采样率: {sample_rate}")
print(f"文本: {transcript}")
break
总结
PyTorch torchaudio内置的这些数据集覆盖了语音处理的各个主要方向——从基础的语音识别、合成,到高级的说话人识别、情感分析、音乐分离等。无论您是初学者入门,还是专业研究人员进行实验验证,都能在这里找到合适的数据集。建议读者根据具体任务选择合适的数据集,并查阅官方文档获取更详细的使用说明。