|
|
import whisper |
|
|
import gradio as gr |
|
|
|
|
|
|
|
|
model = whisper.load_model("small") |
|
|
|
|
|
|
|
|
models = { |
|
|
"tiny": None, |
|
|
"base": None, |
|
|
"small": model, |
|
|
"medium": None, |
|
|
"large": None |
|
|
} |
|
|
|
|
|
def load_model(selected_model): |
|
|
if models[selected_model] is None: |
|
|
models[selected_model] = whisper.load_model(selected_model) |
|
|
return models[selected_model] |
|
|
|
|
|
def transcribe(audio, model_name): |
|
|
model = load_model(model_name) |
|
|
result = model.transcribe(audio) |
|
|
return result["text"] |
|
|
|
|
|
gr.Interface( |
|
|
fn=transcribe, |
|
|
inputs=[ |
|
|
gr.Audio(type="filepath", label="Upload Audio"), |
|
|
gr.Dropdown(["tiny", "base", "small", "medium", "large"], value="small", label="Choose Whisper Model") |
|
|
], |
|
|
outputs="text", |
|
|
title="Whisper Multilingual STT (All Models)", |
|
|
description="Upload an audio file and choose which Whisper model to use for transcription. Supports multiple languages including Korean, Urdu, Arabic, etc." |
|
|
).launch() |
|
|
|