Hub documentation
Dataset Audio
Dataset Audio
Panduan ini akan menunjukkan cara mengonfigurasi repositori dataset Anda dengan file audio. Anda dapat menemukan contoh repositori yang menyertainya dalam koleksi contoh dataset audio ini.
Dataset dengan struktur dan format file yang didukung secara otomatis memiliki Dataset Viewer di halamannya di Hub.
Informasi tambahan tentang file audio Anda - seperti transkripsi - dimuat secara otomatis selama Anda menyertakan informasi ini dalam file metadata (metadata.csv/metadata.jsonl/metadata.parquet).
Sebagai alternatif, file audio dapat berada dalam file Parquet atau dalam arsip TAR yang mengikuti format WebDataset.
Hanya file audio
Jika dataset Anda hanya terdiri dari satu kolom berisi audio, Anda cukup menyimpan file audio Anda di root:
my_dataset_repository/ βββ 1.wav βββ 2.wav βββ 3.wav βββ 4.wav
atau dalam subdirektori:
my_dataset_repository/
βββ audio
βββ 1.wav
βββ 2.wav
βββ 3.wav
βββ 4.wavBeberapa format didukung secara bersamaan, termasuk AIFF, FLAC, MP3, OGG, dan WAV.
my_dataset_repository/
βββ audio
βββ 1.aiff
βββ 2.ogg
βββ 3.mp3
βββ 4.flacJika Anda memiliki beberapa split, Anda dapat menempatkan file audio Anda ke dalam direktori yang diberi nama sesuai:
my_dataset_repository/
βββ train
βΒ Β βββ 1.wav
βΒ Β βββ 2.wav
βββ test
βββ 3.wav
βββ 4.wavLihat Nama file dan split untuk informasi lebih lanjut dan cara lain untuk mengorganisasi data berdasarkan split.
Kolom tambahan
Jika ada informasi tambahan yang ingin Anda sertakan tentang dataset Anda, seperti transkripsi, tambahkan sebagai file metadata.csv di repositori Anda. Hal ini memungkinkan Anda dengan cepat membuat dataset untuk berbagai tugas audio seperti text-to-speech atau automatic speech recognition.
my_dataset_repository/ βββ 1.wav βββ 2.wav βββ 3.wav βββ 4.wav βββ metadata.csv
File metadata.csv Anda harus memiliki kolom file_name yang menghubungkan file gambar dengan metadata mereka:
file_name,animal
1.wav,cat
2.wav,cat
3.wav,dog
4.wav,dogAnda juga dapat menggunakan file 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"}Dan untuk dataset yang lebih besar atau jika Anda tertarik dengan fitur pengambilan data yang lebih lanjut, Anda dapat menggunakan file Parquet metadata.parquet.
Path relatif
File metadata harus berada di direktori yang sama dengan file audio yang terkait, atau di direktori induk mana pun, seperti pada contoh ini:
my_dataset_repository/
βββ test
βββ audio
βΒ Β βββ 1.wav
βΒ Β βββ 2.wav
βΒ Β βββ 3.wav
βΒ Β βββ 4.wav
βββ metadata.csvDalam kasus ini, kolom file_name harus berupa jalur relatif lengkap ke file audio, bukan hanya nama file:
file_name,animal
audio/1.wav,cat
audio/2.wav,cat
audio/3.wav,dog
audio/4.wav,dogFile metadata tidak dapat ditempatkan di subdirektori dari direktori yang berisi file audio.
Secara lebih umum, kolom apa pun yang bernama file_name atau *_file_name harus berisi jalur relatif lengkap ke file audio.
Pada contoh ini, direktori test digunakan untuk mengatur nama split pelatihan. Lihat Nama file dan split untuk informasi lebih lanjut.
Klasifikasi audio
Untuk dataset klasifikasi audio, Anda juga dapat menggunakan setup sederhana: gunakan direktori untuk memberi nama kelas audio. Simpan file audio Anda dalam struktur direktori seperti:
my_dataset_repository/
βββ cat
βΒ Β βββ 1.wav
βΒ Β βββ 2.wav
βββ dog
βββ 3.wav
βββ 4.wavDataset yang dibuat dengan struktur ini berisi dua kolom: audio dan label (dengan nilai cat dan dog).
Anda juga dapat menyediakan beberapa split. Untuk melakukannya, direktori dataset Anda harus memiliki struktur berikut (lihat Nama file dan split untuk informasi lebih lanjut):
my_dataset_repository/
βββ test
βΒ Β βββ cat
βΒ Β βΒ Β βββ 2.wav
βΒ Β βββ dog
βΒ Β βββ 4.wav
βββ train
βββ cat
βΒ Β βββ 1.wav
βββ dog
βββ 3.wavAnda dapat menonaktifkan penambahan otomatis kolom label dalam konfigurasi YAML. Jika nama direktori Anda tidak memiliki arti khusus, atur drop_labels: true di header README:
configs:
- config_name: default # Name of the dataset subset, if applicable.
drop_labels: trueDataset berskala besar
Format WebDataset
Format WebDataset sangat cocok untuk dataset audio berskala besar (lihat AlienKevin/sbs_cantonese sebagai contoh). Format ini terdiri dari arsip TAR yang berisi file audio dan metadata-nya, serta dioptimalkan untuk streaming. Format ini berguna jika Anda memiliki sejumlah besar file audio dan ingin mendapatkan streaming data loaders untuk pelatihan berskala besar.
my_dataset_repository/ βββ train-0000.tar βββ train-0001.tar βββ ... βββ train-1023.tar
Untuk membuat arsip WebDataset TAR, buat direktori yang berisi file audio dan file metadata yang akan diarsipkan, lalu buat arsip TAR menggunakan misalnya perintah tar.
Ukuran umum per arsip biasanya sekitar 1GB.
Pastikan setiap pasangan file audio dan metadata memiliki prefiks file yang sama, misalnya:
train-0000/ βββ 000.flac βββ 000.json βββ 001.flac βββ 001.json βββ ... βββ 999.flac βββ 999.json
Perhatikan bahwa untuk kenyamanan pengguna dan untuk memungkinkan Dataset Viewer, setiap dataset yang dihosting di Hub secara otomatis dikonversi ke format Parquet hingga 5GB. Baca lebih lanjut tentang hal ini dalam dokumentasi Parquet format.
Format Parquet
Alih-alih mengunggah file audio dan metadata sebagai file terpisah, Anda dapat menyematkan semuanya di dalam file Parquet. Hal ini berguna jika Anda memiliki sejumlah besar file audio, jika Anda ingin menyematkan beberapa kolom audio, atau jika Anda ingin menyimpan informasi tambahan tentang audio di file yang sama. Parquet juga berguna untuk menyimpan data seperti byte mentah, yang tidak didukung oleh JSON/CSV.
my_dataset_repository/ βββ train.parquet
File Parquet dengan data audio dapat dibuat menggunakan pandas atau pustaka datasets. Untuk membuat file Parquet dengan data audio di pandas, Anda dapat menggunakan pandas-audio-methods dan df.to_parquet(). Di datasets, Anda dapat mengatur tipe kolom menjadi Audio() dan menggunakan metode ds.to_parquet(...) atau ds.push_to_hub(...). Anda dapat menemukan panduan untuk memuat dataset audio di datasets di sini.
Sebagai alternatif, Anda dapat mengatur tipe audio Parquet yang dibuat menggunakan alat lain secara manual. Pertama, pastikan kolom audio Anda bertipe struct, dengan field biner "bytes" untuk data audio dan field string "path" untuk nama atau path file audio. Kemudian, Anda harus menentukan tipe fitur kolom secara langsung dalam YAML di header README, misalnya:
dataset_info:
features:
- name: audio
dtype: audio
- name: caption
dtype: stringPerhatikan bahwa Parquet direkomendasikan untuk file audio kecil (<1MB per file audio) dan grup baris kecil (100 baris per grup baris, yang digunakan oleh datasets untuk audio). Untuk file audio yang lebih besar, disarankan untuk menggunakan format WebDataset, atau membagikan file audio asli (secara opsional dengan file metadata).