Hugging Face 오디오 데이터셋 가이드 – 로드, 처리 및 스트리밍
TL;DR
Hugging Face는 🤗 Datasets 라이브러리를 사용해 Hub에서 모든 오디오 데이터셋을 단일 load_dataset 호출만으로 다운로드, 전처리 및 스트리밍할 수 있음을 보여주는 단계별 가이드를 발표했으며, 이를 통해 대규모 음성·오디오 연구를 실용적이고 재현 가능하게 만들었습니다.
The Hub is a One‑Stop Shop for Audio Data
Hugging Face Hub는 77개의 음성 인식 및 28개의 오디오 분류 데이터셋을 호스팅하고 있습니다(2022년 12월 기준). 각 데이터셋 카드에는 재생 가능한 오디오 샘플 미리보기, 라이선스 정보, 그리고 해당 데이터로 학습된 모델에 대한 링크가 제공됩니다. 사용자는 Hub에서 바로 작업 카테고리별로 데이터셋을 필터링할 수 있습니다.
"데이터셋 미리보기는 오디오 데이터셋을 실제로 사용하기 전에 체험할 수 있는 훌륭한 방법입니다."
One‑Line Loading with load_dataset
핵심 API는 datasets.load_dataset입니다. Hub 식별자(예: speechcolab/gigaspeech)와 선택적 구성(예: 10시간 분할을 위한 "xs")을 제공하면 학습, 검증, 테스트 분할을 포함하는 DatasetDict가 반환됩니다.
from datasets import load_dataset
gigaspeech = load_dataset("speechcolab/gigaspeech", "xs")
print(gigaspeech)
출력에는 각 분할의 행 수와 전체 특징 목록(예: segment_id, speaker, text, audio, …)이 표시됩니다. 작업에 필요 없는 열은 remove_columns로 삭제할 수 있습니다.
Minimal Pre‑Processing Pipeline
대부분의 음성 인식 워크플로를 포괄하는 세 가지 일반 단계:
- Resampling –
cast_column에datasets.Audio(sampling_rate=…)를 사용해 실시간으로 샘플링 레이트를 변경합니다. - Feature Extraction –
map함수를 적용해transformers.AutoProcessor(예: Whisper)를 각 샘플에 실행, 원시 파형을 모델 입력으로 변환하고 전사 텍스트를 토크나이징합니다. - Filtering –
filter를 사용해 길이 임계값(예: 30 s)을 초과하는 샘플을 제거해 OOM 오류를 방지합니다.
세 단계 모두 튜토리얼에서는 13줄의 파이썬 코드만 필요했습니다.
Streaming Mode Removes Disk‑Space Barriers
대용량 구성(예: GigaSpeech xl 10 000 h ≈ 1 TB)은 로컬에 저장하기 비현실적입니다. streaming=True로 설정하면 샘플을 지연 로드하여 반복할 때마다 항목을 다운로드·처리합니다.
gigaspeech = load_dataset("speechcolab/gigaspeech", "xs", streaming=True)
스트리밍의 장점:
- Zero disk footprint – 데이터는 반복 중 메모리 상에만 존재합니다.
- Immediate availability – 첫 샘플을 가져오는 즉시 학습을 시작할 수 있습니다.
- Rapid prototyping – 전체 다운로드 없이 소수 샘플로 실험할 수 있습니다.
단점은 스트리밍 데이터가 캐시되지 않아 반복 실행 시 매번 재다운로드·재처리된다는 점입니다.
Quick Tour of Popular Audio Datasets
이 가이드는 동일한 load_dataset 패턴으로 접근 가능한 세 작업군별 가장 널리 사용되는 데이터셋을 나열합니다.
English Speech Recognition
| Dataset | Domain | Hours | Casing | Punctuation | License |
|---|---|---|---|---|---|
| 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 Speech Recognition
- Multilingual LibriSpeech – 8개의 고자원 언어.
- Common Voice – 100개가 넘는 언어, 크라우드소싱.
- VoxPopuli – 15개 유럽 언어.
- FLEURS – 102개 언어, 언어당 약 10 h.
Speech Translation
- CoVoST 2 – 2 900 h, 21→EN 및 EN→15 언어 쌍 포함.
- FLEURS – 101개 언어 쌍에 대한 병렬 음성 번역 데이터.
Audio Classification
- SpeechCommands – 디바이스 내 키워드 스팟팅을 위한 1초 키워드 발화.
- Multilingual Spoken Words – 50개 언어에 걸쳐 23.4 h, 340 k 키워드.
- FLEURS – 102개 언어에 대한 언어 식별 라벨.
Closing Remarks
이 가이드는 🤗 Datasets가 오디오 연구를 위한 최적의 라이브러리임을 입증합니다: 한 줄로 모든 데이터셋을 로드하고, 내장 오디오 기능으로 리샘플링을 간소화하며, 스트리밍으로 방대한 코퍼스를 다룰 수 있게 합니다. 동봉된 Colab 노트북은 하나의 스크립트로 8개의 영어 ASR 데이터셋에 Whisper를 평가하는 방법을 보여주며, 워크플로의 실용적 이점을 강조합니다.
이 블로그 포스트는 Vaibhav Srivastav, Polina Kazakova, Patrick von Platen, Omar Sanseviero, Quentin Lhoest의 기여로 작성되었습니다.