|
|
import os |
|
|
import gradio as gr |
|
|
import spaces |
|
|
from transformers import pipeline |
|
|
|
|
|
MODEL_NAME = "palli23/whisper-small-sam_spjall" |
|
|
|
|
|
@spaces.GPU(duration=60) |
|
|
def transcribe_3min(audio_path): |
|
|
if not audio_path: |
|
|
return "Hladdu upp hljóðskrá" |
|
|
|
|
|
|
|
|
pipe = pipeline( |
|
|
"automatic-speech-recognition", |
|
|
model=MODEL_NAME, |
|
|
device=0, |
|
|
token=os.getenv("HF_TOKEN") |
|
|
) |
|
|
|
|
|
result = pipe( |
|
|
audio_path, |
|
|
chunk_length_s=30, |
|
|
stride_length_s=(6, 0), |
|
|
return_timestamps=False, |
|
|
batch_size=8 |
|
|
) |
|
|
|
|
|
return result["text"] |
|
|
|
|
|
|
|
|
with gr.Blocks(title="Íslenskt ASR – 3 mín") as demo: |
|
|
gr.Markdown("# Íslenskt ASR – 3 mínútur") |
|
|
gr.Markdown("**Whisper · Very low WER · 0.5-5minute audio transcribe á ZeroGPU**") |
|
|
|
|
|
audio = gr.Audio(type="filepath", label="Hladdu upp .mp3 / .wav (allt að 3 mín)") |
|
|
btn = gr.Button("Transcribe", variant="primary", size="lg") |
|
|
out = gr.Textbox(lines=30, label="Útskrift") |
|
|
|
|
|
btn.click(transcribe_3min, inputs=audio, outputs=out) |
|
|
|
|
|
demo.launch(auth=("beta", "beta2025")) |