Saltar a contenido

Entrenamiento

En esta sesión vamos a realizar nuestro primer entrenamiento utilizando Whisper como modelo y los datos capturados para el fine-tuning.

Tenemos disponible en :

  • audioslara/lara: los archivos de audio capturas en formato Ogg
  • audioslara/converted: los audios convertidos a wav.
  • audioslara/dataset: todos los audios etiquetados persistidos mediante la librería datasets en formato Arrow mediante save_to_disk.

Probando Whisper con nuestros datos

El primer paso es probar que nuestro dataset se ha generado correctamente. Para ello, vamos a cargar Whisper, y pasarle un audio de nuestros datos y ver cómo se comporta:

import torch
from transformers import pipeline

device = "cuda:0" if torch.cuda.is_available() else "cpu"
pipe = pipeline(
    "automatic-speech-recognition", model="openai/whisper-base", device=device
)

# Cargamos nuestro dataset
from datasets import load_from_disk

DATASET_PATH = "/home/jupyter-iabd/audioslara/dataset/"
lara_dataset = load_from_disk(DATASET_PATH)

# Remuestreamos los audios a 16000
from datasets import Audio

lara_dataset = lara_dataset.cast_column("audio", Audio(sampling_rate=16000))

# Recuperamos un audio aleatorio
un_audio = lara_dataset.shuffle()[0]
# {'audio': {'path': '6564612039048d0f405c668a_1711368297.wav',
#   'array': array([ 5.09317033e-10, -5.82076609e-11, -7.71251507e-10, ...,
#           3.66814737e-03,  1.89103803e-03, -1.90643012e-03]),
#   'sampling_rate': 16000},
#  'texto': 'LOS MOLINOS DE LA MANCHA SON MUY GRANDES.'}

# Mostramos el reproductor de un audio (en un cuaderno de Jupyter)
from IPython.display import Audio
Audio(un_audio["audio"]["array"],rate=un_audio["audio"]["sampling_rate"])

# Realizamos la inferencia del audio
pipe(un_audio["audio"], max_new_tokens=256)
# {'text': ' La monía ya ha hecho un muy grande.'}

Tareas a realizar

En esta quincena, nos vamos a centrar en realizar el entrenamiento a partir del dataset generado en la sesión anterior, probando con el modelo Whisper con diferentes tamaños, evaluando el tiempo necesario de entrenamiento, así como los tiempos de respuesta en la inferencia de los datos.

Una vez entrenado el modelo, se pide generar un Gradio que permite tanto subir un audio como grabar desde el micrófono, y realizar una inferencia sobre el modelo entrenado por cada equipo.

Plazo de entrega

  • Domingo 12 Mayo - 23:59: Scripts, modelo, métricas de evaluación y prototipo mediante Gradio.