Datasets documentation
Buat dataset audio
Buat dataset audio
Anda dapat membagikan dataset dengan tim Anda atau dengan siapa pun di komunitas dengan membuat repositori dataset di Hugging Face Hub:
from datasets import load_dataset
dataset = load_dataset("<username>/my_dataset")Terdapat beberapa metode untuk membuat dan membagikan dataset audio:
Buat dataset audio dari file lokal di python dengan Dataset.push_to_hub(). Ini adalah cara mudah yang hanya membutuhkan beberapa langkah di python.
Buat repositori dataset audio dengan builder
AudioFolder. Ini adalah solusi tanpa kode untuk dengan cepat membuat dataset audio dengan beberapa ribu file audio.
Anda dapat mengontrol akses ke dataset Anda dengan meminta pengguna untuk membagikan informasi kontak mereka terlebih dahulu. Lihat panduan Gated datasets untuk informasi lebih lanjut tentang cara mengaktifkan fitur ini di Hub.
File lokal
Anda dapat memuat dataset Anda sendiri menggunakan path ke file audio Anda. Gunakan fungsi cast_column() untuk mengambil kolom berisi path file audio, lalu mengubahnya menjadi fitur Audio:
>>> audio_dataset = Dataset.from_dict({"audio": ["path/to/audio_1", "path/to/audio_2", ..., "path/to/audio_n"]}).cast_column("audio", Audio())
>>> audio_dataset[0]["audio"]
<datasets.features._torchcodec.AudioDecoder object at 0x11642b6a0>Lalu unggah dataset ke Hugging Face Hub menggunakan Dataset.push_to_hub():
audio_dataset.push_to_hub("<username>/my_dataset")Hal ini akan membuat repositori dataset yang berisi dataset audio Anda:
my_dataset/
├── README.md
└── data/
└── train-00000-of-00001.parquetAudioFolder
AudioFolder adalah pembangun dataset yang dirancang untuk memuat dataset audio dengan ribuan file audio secara cepat tanpa mengharuskan Anda menulis kode apa pun.
💡 Lihat hierarki pola Split untuk mempelajari lebih lanjut tentang bagaimana
AudioFoldermembuat split dataset berdasarkan struktur repositori dataset Anda.
AudioFolder secara otomatis menyimpulkan label kelas dari dataset Anda berdasarkan nama direktori. Simpan dataset Anda dalam struktur direktori seperti:
folder/train/dog/golden_retriever.mp3
folder/train/dog/german_shepherd.mp3
folder/train/dog/chihuahua.mp3
folder/train/cat/maine_coon.mp3
folder/train/cat/bengal.mp3
folder/train/cat/birman.mp3Jika dataset mengikuti struktur AudioFolder, maka Anda dapat memuatnya langsung dengan load_dataset():
>>> from datasets import load_dataset
>>> dataset = load_dataset("username/dataset_name")Ini setara dengan meneruskan audiofolder secara manual di load_dataset() dan direktori di data_dir:
>>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder")Anda juga dapat menggunakan audiofolder untuk memuat dataset yang melibatkan beberapa split. Untuk melakukannya, direktori dataset Anda harus memiliki struktur berikut:
folder/train/dog/golden_retriever.mp3
folder/train/cat/maine_coon.mp3
folder/test/dog/german_shepherd.mp3
folder/test/cat/bengal.mp3Jika semua file audio berada dalam satu direktori atau tidak berada pada level struktur direktori yang sama, kolom
labeltidak akan ditambahkan secara otomatis. Jika Anda membutuhkannya, tetapkandrop_labels=Falsesecara eksplisit.
Jika ada informasi tambahan yang ingin Anda sertakan tentang dataset Anda, seperti teks caption atau bounding box, tambahkan sebagai file metadata.csv di folder Anda. Hal ini memungkinkan Anda dengan cepat membuat dataset untuk berbagai tugas computer vision seperti text captioning atau object detection. Anda juga dapat menggunakan file JSONL metadata.jsonl atau file Parquet metadata.parquet.
folder/train/metadata.csv
folder/train/0001.mp3
folder/train/0002.mp3
folder/train/0003.mp3Anda juga dapat mengompres file audio Anda, dan dalam hal ini setiap file zip harus berisi file audio dan metadata
folder/train.zip
folder/test.zip
folder/validation.zipFile metadata.csv Anda harus memiliki field file_name atau *_file_name yang menghubungkan file audio dengan metadata-nya:
file_name,additional_feature
0001.mp3,This is a first value of a text feature you added to your audio files
0002.mp3,This is a second value of a text feature you added to your audio files
0003.mp3,This is a third value of a text feature you added to your audio filesatau menggunakan metadata.jsonl:
{"file_name": "0001.mp3", "additional_feature": "This is a first value of a text feature you added to your audio files"}
{"file_name": "0002.mp3", "additional_feature": "This is a second value of a text feature you added to your audio files"}
{"file_name": "0003.mp3", "additional_feature": "This is a third value of a text feature you added to your audio files"}Di sini, file_name harus berupa nama file audio yang berada di samping file metadata. Secara lebih umum, ini harus berupa path relatif dari direktori yang berisi metadata ke file audio.
Anda dapat menunjuk ke lebih dari satu audio di setiap baris dalam dataset Anda, misalnya jika input dan output Anda sama-sama berupa file audio:
{"input_file_name": "0001.mp3", "output_file_name": "0001_output.mp3"}
{"input_file_name": "0002.mp3", "output_file_name": "0002_output.mp3"}
{"input_file_name": "0003.mp3", "output_file_name": "0003_output.mp3"}Anda juga dapat mendefinisikan daftar file audio. Dalam hal itu, Anda perlu menamai field file_names atau *_file_names. Berikut adalah contohnya:
{"recordings_file_names": ["0001_r0.mp3", "0001_r1.mp3"], label: "same_person"}
{"recordings_file_names": ["0002_r0.mp3", "0002_r1.mp3"], label: "same_person"}
{"recordings_file_names": ["0003_r0.mp3", "0003_r1.mp3"], label: "different_person"}WebDataset
Format WebDataset didasarkan pada arsip TAR dan cocok untuk dataset audio besar. Anda dapat mengelompokkan file audio Anda ke dalam arsip TAR (misalnya 1GB file audio per arsip TAR) dan memiliki ribuan arsip TAR:
folder/train/00000.tar
folder/train/00001.tar
folder/train/00002.tar
...Di arsip, setiap contoh terdiri dari file-file yang berbagi prefiks yang sama:
e39871fd9fd74f55.mp3
e39871fd9fd74f55.json
f18b91585c4d3f3e.mp3
f18b91585c4d3f3e.json
ede6e66b2fb59aab.mp3
ede6e66b2fb59aab.json
ed600d57fcee4f94.mp3
ed600d57fcee4f94.json
...Anda dapat menyimpan label/keterangan/kotak batas file audio Anda menggunakan file JSON atau teks, misalnya.
Muat WebDataset Anda dan akan dibuat satu kolom per akhiran file (di sini “mp3” dan “json”):
>>> from datasets import load_dataset
>>> dataset = load_dataset("webdataset", data_dir="/path/to/folder", split="train")
>>> dataset[0]["json"]
{"transcript": "Hello there !", "speaker": "Obi-Wan Kenobi"}Anda juga dapat memiliki beberapa file audio per contoh seperti ini:
e39871fd9fd74f55.input.mp3
e39871fd9fd74f55.output.mp3
e39871fd9fd74f55.json
f18b91585c4d3f3e.input.mp3
f18b91585c4d3f3e.output.mp3
f18b91585c4d3f3e.json
...Untuk detail lebih lanjut tentang format WebDataset dan pustaka python, silakan periksa dokumentasi WebDataset.
Update on GitHub