Spaces:
Sleeping
Sleeping
File size: 1,645 Bytes
5bc7b63 7afb5e2 5bc7b63 |
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 |
from transformers import pipeline
import gradio as gr
import numpy as np
import librosa
# 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-tiny-top3")
def transcribe(audio, model_choice):
if model_choice == "AfinandoElEntrenamiento":
pipe = pipe_model_1
elif model_choice == "Whisper Base Full":
pipe = pipe_model_2
else:
pipe = pipe_model_3
# 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})
return result["text"]
# 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 Tiny Top 3"], label="Selecciona el modelo", value="Whisper Base Full")
],
outputs="text",
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(share=True) |