CarPeAs's picture
actualización con 4to modelo medium
6c6f5a6 verified
raw
history blame contribute delete
No virus
1.97 kB
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()