오디오 데이터셋
오디오 데이터셋 (Audio Dataset)
이 가이드는 데이터셋 저장소를 오디오 파일로 구성하는 방법을 보여줘요. 관련 저장소 예시는 Audio datasets examples 컬렉션에서 찾을 수 있어요.
지원되는 구조와 파일 형식을 갖춘 데이터셋은 허브 페이지에 Dataset Viewer가 자동으로 표시돼요.
오디오 파일에 대한 추가 정보(예: 전사(transcription))는 메타데이터 파일(metadata.csv/metadata.jsonl/metadata.parquet)에 포함하면 자동으로 로드됩니다.
또는 오디오 파일이 WebDataset 형식의 Parquet 파일이나 TAR 아카이브에 담길 수도 있어요.
출처: 문서
본문
오디오 파일만 있는 경우
데이터셋이 오디오만 있는 한 컬럼으로 구성된다면, 오디오 파일을 저장소 루트에 간단히 저장할 수 있어요:
my_dataset_repository/
├── 1.wav
├── 2.wav
├── 3.wav
└── 4.wav
또는 하위 디렉터리에 저장할 수도 있어요:
my_dataset_repository/
└── audio
├── 1.wav
├── 2.wav
├── 3.wav
└── 4.wav
AIFF, FLAC, MP3, OGG, WAV 등 여러 형식을 동시에 지원해요.
my_dataset_repository/
└── audio
├── 1.aiff
├── 2.ogg
├── 3.mp3
└── 4.flac
여러 split이 있다면 오디오 파일을 그에 맞는 이름의 디렉터리에 넣을 수 있어요:
my_dataset_repository/
├── train
│ ├── 1.wav
│ └── 2.wav
└── test
├── 3.wav
└── 4.wav
split별 데이터 구성의 다른 방법은 File names and splits를 참고하세요.
추가 컬럼
전사(transcription) 같은 추가 정보를 포함하고 싶다면 저장소에 metadata.csv 파일로 추가하세요. 이를 통해 text-to-speech나 automatic speech recognition 같은 다양한 오디오 태스크용 데이터셋을 빠르게 만들 수 있어요.
my_dataset_repository/
├── 1.wav
├── 2.wav
├── 3.wav
├── 4.wav
└── metadata.csv
metadata.csv 파일에는 오디오 파일과 메타데이터를 연결하는 file_name 컬럼이 있어야 해요:
file_name,animal
1.wav,cat
2.wav,cat
3.wav,dog
4.wav,dog
JSONL 파일 metadata.jsonl도 사용할 수 있어요:
{"file_name": "1.wav","text": "cat"}
{"file_name": "2.wav","text": "cat"}
{"file_name": "3.wav","text": "dog"}
{"file_name": "4.wav","text": "dog"}
더 큰 데이터셋이거나 고급 데이터 검색 기능이 필요하다면 Parquet 파일 metadata.parquet를 사용할 수 있어요.
상대 경로 (Relative paths)
메타데이터 파일은 연결된 오디오 파일과 같은 디렉터리 또는 어떤 상위 디렉터리에 있어야 해요:
my_dataset_repository/
└── test
├── audio
│ ├── 1.wav
│ ├── 2.wav
│ ├── 3.wav
│ └── 4.wav
└── metadata.csv
이 경우 file_name 컬럼은 파일명이 아닌 오디오 파일까지의 전체 상대 경로여야 해요:
file_name,animal
audio/1.wav,cat
audio/2.wav,cat
audio/3.wav,dog
audio/4.wav,dog
메타데이터 파일은 오디오 파일이 있는 디렉터리의 하위 디렉터리에는 놓을 수 없어요.
일반적으로 file_name 또는 *_file_name이라는 이름의 컬럼은 오디오 파일까지의 전체 상대 경로를 담아야 해요.
이 예에서는 test 디렉터리가 학습 split의 이름을 설정하는 데 사용됩니다. 자세한 내용은 File names and splits를 참고하세요.
오디오 분류 (Audio classification)
오디오 분류 데이터셋의 경우 디렉터리 이름을 오디오 클래스로 사용하는 간단한 구성도 가능해요:
my_dataset_repository/
├── cat
│ ├── 1.wav
│ └── 2.wav
└── dog
├── 3.wav
└── 4.wav
이 구조로 만들어진 데이터셋에는 audio와 label(값 cat, dog) 두 컬럼이 포함돼요.
여러 split을 제공할 수도 있어요. 데이터셋 디렉터리는 다음과 같은 구조여야 합니다(자세한 내용은 File names and splits 참고):
my_dataset_repository/
├── test
│ ├── cat
│ │ └── 2.wav
│ └── dog
│ └── 4.wav
└── train
├── cat
│ └── 1.wav
└── dog
└── 3.wav
YAML 구성에서 label 컬럼의 자동 추가를 비활성화할 수 있어요. 디렉터리 이름에 특별한 의미가 없다면 README 헤더에 drop_labels: true를 설정하세요:
configs:
- config_name: default # Name of the dataset subset, if applicable.
drop_labels: true
대규모 데이터셋
WebDataset 형식
WebDataset 형식은 대규모 오디오 데이터셋에 잘 맞아요(예: AlienKevin/sbs_cantonese). 오디오 파일과 메타데이터를 담은 TAR 아카이브로 구성되며 스트리밍에 최적화되어 있어요. 오디오 파일 수가 많거나 대규모 학습용 스트리밍 데이터 로더가 필요할 때 유용해요.
my_dataset_repository/
├── train-0000.tar
├── train-0001.tar
├── ...
└── train-1023.tar
WebDataset TAR 아카이브를 만들려면 아카이브할 오디오 파일과 메타데이터 파일을 담은 디렉터리를 만든 뒤 예를 들어 tar 명령으로 TAR 아카이브를 생성하세요. 일반적으로 아카이브당 크기는 1GB 내외예요. 각 오디오 파일과 메타데이터 쌍이 같은 파일 접두사를 공유해야 해요:
train-0000/
├── 000.flac
├── 000.json
├── 001.flac
├── 001.json
├── ...
├── 999.flac
└── 999.json
사용자 편의와 Dataset Viewer 활성화를 위해 허브에 호스팅된 모든 데이터셋은 최대 5GB까지 자동으로 Parquet 형식으로 변환된다는 점을 참고하세요. 자세한 내용은 Parquet 형식 문서를 참고하세요.
Parquet 형식
오디오 파일과 메타데이터를 개별 파일로 업로드하는 대신 모든 것을 Parquet 파일에 담을 수 있어요. 이는 오디오 파일 수가 많거나, 여러 오디오 컬럼을 포함하거나, 같은 파일에 오디오에 대한 추가 정보를 저장하고 싶을 때 유용해요. Parquet은 JSON/CSV가 지원하지 않는 원시 바이트(raw bytes) 같은 데이터를 저장하는 데도 유용해요.
my_dataset_repository/
└── train.parquet
오디오 데이터가 있는 Parquet 파일은 pandas나 datasets 라이브러리로 만들 수 있어요. pandas에서 오디오 데이터가 있는 Parquet 파일을 만들려면 pandas-audio-methods와 df.to_parquet()를 사용할 수 있어요. datasets에서는 컬럼 타입을 Audio()로 설정하고 ds.to_parquet(...) 메서드나 ds.push_to_hub(...)를 사용하면 됩니다. datasets에서 오디오 데이터셋을 로드하는 가이드는 여기에서 찾을 수 있어요.
또는 다른 도구로 만든 Parquet의 오디오 타입을 수동으로 설정할 수도 있어요. 먼저 오디오 컬럼이 struct 타입이고, 오디오 데이터용 바이너리 필드 "bytes"와 오디오 파일명·경로용 문자열 필드 "path"가 있는지 확인하세요. 그런 다음 README 헤더의 YAML에서 컬럼의 피처 타입을 직접 지정하세요:
dataset_info:
features:
- name: audio
dtype: audio
- name: caption
dtype: string
Parquet은 작은 오디오 파일(오디오 파일당 <1MB)과 작은 행 그룹(행 그룹당 100행, datasets가 오디오에 사용하는 값)에 권장됩니다. 더 큰 오디오 파일에는 WebDataset 형식을 사용하거나 원본 오디오 파일(선택적으로 메타데이터 파일 포함)을 공유하는 것이 권장돼요.
더 알아보기 (Learn more)
- Video Dataset 가이드에서 비디오 파일로 데이터셋을 구성하는 법을 배울 수 있어요.
- File names and splits에서 split별 데이터 구성 방법을 확인하세요.