Datasets documentation

Proses data audio

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Proses data audio

Panduan ini menunjukkan metode spesifik untuk memproses dataset audio. Pelajari cara:

  • Resample laju sampling.
  • Gunakan map() dengan dataset audio.

Untuk panduan tentang cara memproses dataset apa pun, lihat panduan proses umum.

Cast

Fungsi cast_column() digunakan untuk mengubah tipe kolom menjadi fitur lain yang akan didekodekan. Ketika Anda menggunakan fungsi ini dengan fitur Audio, Anda dapat mengubah laju sampling:

>>> from datasets import load_dataset, Audio

>>> dataset = load_dataset("PolyAI/minds14", "en-US", split="train")
>>> dataset = dataset.cast_column("audio", Audio(sampling_rate=16000))

File audio didekode dan diresample secara langsung, sehingga saat Anda mengakses contoh berikutnya, file audio diresample ke 16kHz:

>>> audio = dataset[0]["audio"]
<datasets.features._torchcodec.AudioDecoder object at 0x11642b6a0>
>>> audio = audio_dataset[0]["audio"]
>>> samples = audio.get_all_samples()
>>> samples.data
tensor([[ 0.0000e+00,  0.0000e+00,  0.0000e+00,  ...,  2.3447e-06,
         -1.9127e-04, -5.3330e-05]]
>>> samples.sample_rate
16000

Peta

Fungsi map() membantu mempreproses seluruh dataset Anda sekaligus. Tergantung pada jenis model yang Anda gunakan, Anda perlu memuat feature extractor atau processor.

  • Untuk model pengenalan ucapan yang telah dilatih sebelumnya, muat ekstraktor fitur dan tokenizer, lalu gabungkan keduanya dalam processor:

    >>> from transformers import AutoTokenizer, AutoFeatureExtractor, AutoProcessor
    
    >>> model_checkpoint = "facebook/wav2vec2-large-xlsr-53"
    # after defining a vocab.json file you can instantiate a tokenizer object:
    >>> tokenizer = AutoTokenizer("./vocab.json", unk_token="[UNK]", pad_token="[PAD]", word_delimiter_token="|")
    >>> feature_extractor = AutoFeatureExtractor.from_pretrained(model_checkpoint)
    >>> processor = AutoProcessor.from_pretrained(feature_extractor=feature_extractor, tokenizer=tokenizer)
  • Untuk model pengenalan ucapan yang telah dihaluskan, Anda hanya perlu memuat processor:

    >>> from transformers import AutoProcessor
    
    >>> processor = AutoProcessor.from_pretrained("facebook/wav2vec2-base-960h")

Saat Anda menggunakan map() dengan fungsi pra-pemrosesan Anda, sertakan kolom audio untuk memastikan Anda benar-benar melakukan resampling data audio:

>>> def prepare_dataset(batch):
...     audio = batch["audio"]
...     batch["input_values"] = processor(audio.get_all_samples().data, sampling_rate=audio["sampling_rate"]).input_values[0]
...     batch["input_length"] = len(batch["input_values"])
...     with processor.as_target_processor():
...         batch["labels"] = processor(batch["sentence"]).input_ids
...     return batch
>>> dataset = dataset.map(prepare_dataset, remove_columns=dataset.column_names)
Update on GitHub