Datasets documentation

Processar dados de áudio

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

Processar dados de áudio

Este guia mostra métodos específicos para processar conjuntos de dados de áudio. Aprenda como:

  • Reamostra a taxa de amostragem.
  • Use map() com conjuntos de dados de áudio.

Para um guia sobre como processar qualquer tipo de conjunto de dados, confira o guia de processo geral.

Cast

A função cast_column() é usada para converter uma coluna para outro recurso a ser decodificado. Ao usar esta função com o recurso Audio, você pode reamostrar a taxa de amostragem:

>>> from datasets import load_dataset, Audio

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

Os arquivos de áudio são decodificados e reamostrados em tempo real, de modo que, na próxima vez que você acessar um exemplo, o arquivo de áudio será reamostrado para 16 kHz:

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

Map

A função map() ajuda a pré-processar todo o seu dataset de uma vez. Dependendo do tipo de modelo com o qual você está trabalhando, será necessário carregar um feature extractor ou um processor.

  • Para modelos de reconhecimento de fala pré-treinados, carregue um extrator de recursos e um tokenizador e combine-os em um 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)
  • Para modelos de reconhecimento de fala ajustados, você só precisa carregar um processor:

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

Ao usar map() com sua função de pré-processamento, inclua a coluna audio para garantir que você esteja realmente reamostrando os dados de áudio:

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