ASR_API / app.py
palli23's picture
Update app.py
6f4e144 verified
raw
history blame
2.51 kB
# app.py — Íslenskt ASR – 3 mínútur (public, no login, with contact)
import os
os.environ["OMP_NUM_THREADS"] = "1"
os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:128"
import gradio as gr
import spaces
from transformers import pipeline
# ——————————————————————————————
# Model loaded ONCE at startup (global)
# ——————————————————————————————
MODEL_NAME = "palli23/whisper-small-sam_spjall"
@spaces.GPU(duration=180)
def get_pipe():
return pipeline(
"automatic-speech-recognition",
model=MODEL_NAME,
torch_dtype="float16",
device=0,
token=os.getenv("HF_TOKEN"),
)
pipe = get_pipe()
# ——————————————————————————————
# Transcription function
# ——————————————————————————————
def transcribe_3min(audio_path):
if not audio_path:
return "Hladdu upp hljóðskrá"
result = pipe(
audio_path,
chunk_length_s=30,
stride_length_s=(6, 0),
batch_size=8,
return_timestamps=False,
)
return result["text"]
# ——————————————————————————————
# UI — only added your email, nothing else changed
# ——————————————————————————————
with gr.Blocks() as demo: # ← removed 'theme=' (was causing error)
gr.Markdown("# Íslenskt ASR – 3 mínútur")
gr.Markdown("**Whisper small· mjög lágur WER á prófunarupptökum · allt að 5 mín hljóð**")
gr.Markdown("**Hafa samband:** pallinr1@protonmail.com")
audio_in = gr.Audio(
type="filepath",
label="Hladdu upp .mp3 / .wav (max 5 mín)"
)
btn = gr.Button("Transcribe", variant="primary", size="lg")
output = gr.Textbox(lines=30, label="Útskrift")
btn.click(fn=transcribe_3min, inputs=audio_in, outputs=output)
# ——————————————————————————————
# PUBLIC — NO LOGIN, NO PASSWORD
# ——————————————————————————————
demo.launch(
auth=None, # ← No login
share=True, # ← Public
server_name="0.0.0.0",
server_port=7860,
show_error=True,
quiet=False
)