Spaces:
Runtime error
Runtime error
File size: 2,455 Bytes
374f519 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import gradio as gr
import torch
from transformers import pipeline
import numpy as np
import time
# Definir los modelos
modelos = {
"base": pipeline("automatic-speech-recognition", model="aitor-medrano/lara-base-pushed"),
"small_1": pipeline("automatic-speech-recognition", model="aitor-medrano/whisper-small-lara"),
"small_2": pipeline("automatic-speech-recognition", model="aitor-medrano/whisper-small-lara")
}
def greet(grabacion):
inicio = time.perf_counter()
sr, y = grabacion
# Normalizar el array de muestras
y = (y / np.max(np.abs(y))).astype(np.float32)
resultados = []
tiempos = []
for nombre_modelo, modelo in modelos.items():
inicio_modelo = time.perf_counter()
texto_resultado = modelo({"sampling_rate": sr, "raw": y})["text"]
fin_modelo = time.perf_counter()
resultados.append(f"{nombre_modelo}: {texto_resultado}")
tiempos.append(fin_modelo - inicio_modelo)
tiempo_total = time.perf_counter() - inicio
return (*resultados, *tiempos, tiempo_total)
# Crear la interfaz mejorada
with gr.Blocks() as demo:
gr.Markdown("# Evaluación de Modelos de Reconocimiento Automático de Voz")
with gr.Tab("Ingreso de Audio"):
gr.Audio(label="Graba tu audio", source="microphone", type="numpy", elem_id="audio_input")
with gr.Tab("Resultados y Tiempos"):
with gr.Column():
with gr.Row():
gr.Textbox(label="Resultado Modelo 1", interactive=False, elem_id="resultado1")
gr.Number(label="Tiempo Modelo 1 (s)", interactive=False, elem_id="tiempo1")
with gr.Row():
gr.Textbox(label="Resultado Modelo 2", interactive=False, elem_id="resultado2")
gr.Number(label="Tiempo Modelo 2 (s)", interactive=False, elem_id="tiempo2")
with gr.Row():
gr.Textbox(label="Resultado Modelo 3", interactive=False, elem_id="resultado3")
gr.Number(label="Tiempo Modelo 3 (s)", interactive=False, elem_id="tiempo3")
with gr.Row():
gr.Number(label="Tiempo Total (s)", interactive=False, elem_id="tiempo_total")
demo.add_component(gr.Button("Procesar", variant="primary", elem_id="process_button"))
demo.load(greet, inputs="audio_input", outputs=["resultado1", "resultado2", "resultado3", "tiempo1", "tiempo2", "tiempo3", "tiempo_total"], elem_id="process_button")
demo.launch()
|