Datasets documentation
Ses veri seti oluşturun
Ses veri seti oluşturun
Bir veri setini ekibinizle veya toplulukta herkesle paylaşmak için Hugging Face Hub üzerinde bir veri seti deposu oluşturabilirsiniz:
from datasets import load_dataset
dataset = load_dataset("<username>/my_dataset")Ses veri seti oluşturma ve paylaşma için birkaç yöntem vardır:
Python'da yerel dosyalardan bir ses veri seti oluşturun ve Dataset.push_to_hub() ile paylaşın. Bu, Python'da yalnızca birkaç adım gerektiren kolay bir yöntemdir.
AudioFolderoluşturucusuyla bir ses veri seti deposu oluşturun. Bu, binlerce ses dosyasıyla hızlıca bir ses veri seti oluşturmak için kod gerektirmeyen bir çözümdür.
Veri setinize erişimi, kullanıcıların önce iletişim bilgilerini paylaşmasını gerektirerek kontrol edebilirsiniz. Bu özelliği Hub'da nasıl etkinleştireceğinize dair daha fazla bilgi için Gated datasets kılavuzuna göz atın.
Yerel dosyalar
Ses dosyalarınızın yollarını kullanarak kendi veri setinizi yükleyebilirsiniz. Ses dosyası yollarından oluşan bir sütunu alıp Audio özelliğine dönüştürmek için cast_column() işlevini kullanın:
>>> 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>Ardından veri setini Dataset.push_to_hub() kullanarak Hugging Face Hub'a yükleyin:
audio_dataset.push_to_hub("<username>/my_dataset")Bu, ses veri setinizi içeren bir veri seti deposu oluşturacaktır:
my_dataset/
├── README.md
└── data/
└── train-00000-of-00001.parquetAudioFolder
AudioFolder, kod yazma gerektirmeden birkaç bin ses dosyası içeren bir ses veri setini hızlıca yüklemek için tasarlanmış bir veri seti oluşturucudur.
💡
AudioFolder'ün veri seti deposu yapınıza dayalı olarak veri seti bölümlerini nasıl oluşturduğunu öğrenmek için Split pattern hierarchy'a göz atın.
AudioFolder, veri setinizin sınıf etiketlerini dizin adına göre otomatik olarak çıkarır. Veri setinizi aşağıdaki gibi bir dizin yapısında saklayın:
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.mp3Veri kümesi AudioFolder yapısını izliyorsa, doğrudan load_dataset() ile yükleyebilirsiniz:
>>> from datasets import load_dataset
>>> dataset = load_dataset("username/dataset_name")Bu, load_dataset() içinde audiofolder parametresini ve data_dir içinde dizini manuel olarak geçmekle eşdeğerdir:
>>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder")Birden fazla bölüme sahip veri setlerini yüklemek için audiofolder kullanabilirsiniz. Bunu yapmak için veri seti dizininizin aşağıdaki yapıya sahip olması gerekir:
folder/train/dog/golden_retriever.mp3
folder/train/cat/maine_coon.mp3
folder/test/dog/german_shepherd.mp3
folder/test/cat/bengal.mp3Tüm ses dosyaları tek bir dizinde yer alıyorsa veya aynı dizin yapısı seviyesinde değillerse,
labelsütunu otomatik olarak eklenmez. Bu sütuna ihtiyacınız varsa,drop_labels=Falsedeğerini açıkça belirleyin.
Veri setiniz hakkında eklemek istediğiniz ek bilgiler varsa, örneğin metin açıklamaları veya sınırlayıcı kutular, bunları klasörünüze metadata.csv dosyası olarak ekleyin. Bu sayede metin açıklama veya nesne algılama gibi farklı bilgisayarlı görme görevleri için veri setlerini hızla oluşturabilirsiniz. Ayrıca bir JSONL dosyası olan metadata.jsonl veya bir Parquet dosyası olan metadata.parquet kullanabilirsiniz.
folder/train/metadata.csv
folder/train/0001.mp3
folder/train/0002.mp3
folder/train/0003.mp3Ses dosyalarınızı ayrıca sıkıştırabilirsiniz; bu durumda her sıkıştırılmış dosya hem ses dosyalarını hem de meta verileri içermelidir
folder/train.zip
folder/test.zip
folder/validation.zipmetadata.csv dosyanız, ses dosyalarını metadata ile ilişkilendiren bir file_name veya *_file_name alanına sahip olmalıdır:
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 filesveya metadata.jsonl kullanarak:
{"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"}Burada file_name, metadata dosyasının yanındaki ses dosyasının adı olmalıdır. Daha genel olarak, metadata dosyasının bulunduğu dizinden ses dosyasına göre göreli yol olmalıdır.
Veri setinizdeki her satırda birden fazla ses dosyasına işaret etmeniz mümkündür; örneğin hem girdi hem de çıktı ses dosyalarıysa:
{"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"}Ses dosyalarının listelerini de tanımlayabilirsiniz. Bu durumda alanın adını file_names veya *_file_names olarak vermeniz gerekir. İşte bir örnek:
{"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
WebDataset formatı TAR arşivlerine dayanır ve büyük ses veri setleri için uygundur. Gerçekten de ses dosyalarınızı TAR arşivlerinde gruplayabilirsiniz (ör. her TAR arşivi başına 1 GB ses dosyası) ve binlerce TAR arşivine sahip olabilirsiniz:
folder/train/00000.tar
folder/train/00001.tar
folder/train/00002.tar
...Arşivlerde, her örnek aynı öneki paylaşan dosyalardan oluşur:
e39871fd9fd74f55.mp3
e39871fd9fd74f55.json
f18b91585c4d3f3e.mp3
f18b91585c4d3f3e.json
ede6e66b2fb59aab.mp3
ede6e66b2fb59aab.json
ed600d57fcee4f94.mp3
ed600d57fcee4f94.json
...Ses dosyalarınızın etiketlerini/açıklamalarını/sınır kutularını örneğin JSON veya metin dosyaları kullanarak ekleyebilirsiniz.
WebDataset'inizi yükleyin ve her dosya uzantısı için bir sütun oluşturulacaktır (burada “mp3” ve “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"}Her örnek için birden fazla ses dosyası da şu şekilde kullanılabilir:
e39871fd9fd74f55.input.mp3
e39871fd9fd74f55.output.mp3
e39871fd9fd74f55.json
f18b91585c4d3f3e.input.mp3
f18b91585c4d3f3e.output.mp3
f18b91585c4d3f3e.json
...WebDataset formatı ve python kütüphanesi hakkında daha fazla ayrıntı için lütfen WebDataset dokümantasyonuna göz atın.
Update on GitHub