CarPeAs's picture
actualización con 4to modelo medium
6c6f5a6 verified
from transformers import pipeline
import gradio as gr
import numpy as np
import librosa
import time
# Utilizamos los tres modelos entrenados
pipe_model_1 = pipeline("automatic-speech-recognition", model="IABDs8a/AfinandoElEntrenamiento")
pipe_model_2 = pipeline("automatic-speech-recognition", model="IABDs8a/whisper-base-full")
pipe_model_3 = pipeline("automatic-speech-recognition", model="IABDs8a/whisper-medium-asfe")
pipe_model_4 = pipeline("automatic-speech-recognition", model="IABDs8a/whisper-tiny-top3")
def transcribe(audio, model_choice):
inicio = time.time()
if model_choice == "AfinandoElEntrenamiento":
pipe = pipe_model_1
elif model_choice == "Whisper Base Full":
pipe = pipe_model_2
elif model_choice == "Whisper Medium Asfe":
pipe = pipe_model_3
else:
pipe = pipe_model_4
# Leer el archivo de audio
y, sr = librosa.load(audio, sr=16000)
# Convertir a mono si es necesario
if y.ndim > 1:
y = librosa.to_mono(y)
# Pasamos el array de muestras a tipo NumPy de 32 bits
y = y.astype(np.float32)
# Normalizar el audio
y /= np.max(np.abs(y))
# Realizar la transcripción
result = pipe({"sampling_rate": sr, "raw": y})
fin = time.time()
return result["text"], fin - inicio
# Interfaz de Gradio
demo = gr.Interface(
fn=transcribe,
inputs=[
gr.Audio(type="filepath", label="Sube un archivo de audio o graba desde el micrófono"),
gr.Dropdown(choices=["AfinandoElEntrenamiento", "Whisper Base Full","Whisper Medium Asfe","Whisper Tiny Top 3"], label="Selecciona el modelo", value="Whisper Base Full")
],
outputs=[
gr.Text(label="Salida"),
gr.Number(label="Tiempo")
],
title="Transcripción de Audio con LARA",
description="Sube un archivo de audio o graba desde el micrófono para obtener su transcripción utilizando los modelos Whisper entrenados.",
)
demo.launch()