Datasets documentation

Ses veri seti oluşturun

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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.

  • AudioFolder oluş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.parquet

AudioFolder

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.mp3

Veri 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.mp3

Tüm ses dosyaları tek bir dizinde yer alıyorsa veya aynı dizin yapısı seviyesinde değillerse, label sütunu otomatik olarak eklenmez. Bu sütuna ihtiyacınız varsa, drop_labels=False değ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.mp3

Ses 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.zip

metadata.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 files

veya 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