palli23 commited on
Commit
e37e472
·
1 Parent(s): 3325b0c

rollback 2 days

Browse files
Files changed (1) hide show
  1. app.py +39 -20
app.py CHANGED
@@ -1,52 +1,71 @@
 
1
  import os
2
- os.environ["OMP_NUM_THREADS"] = "1" # Fixes libgomp + asyncio FD errors
3
- os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:128" # Prevents VRAM crash
4
 
5
  import gradio as gr
6
  import spaces
7
  from transformers import pipeline
8
 
 
 
 
9
  MODEL_NAME = "palli23/whisper-small-sam_spjall"
10
 
11
- @spaces.GPU(duration=180) # Extra buffer for cold start
12
- def transcribe_3min(audio_path):
13
- if not audio_path:
14
- return "Hladdu upp hljóðskrá"
15
-
16
- pipe = pipeline(
17
  "automatic-speech-recognition",
18
  model=MODEL_NAME,
19
- device=0,
20
- torch_dtype="float16", # Keeps speed + enables real batching
21
- token=os.getenv("HF_TOKEN") # Optional remove if no private model
22
  )
 
 
 
 
 
 
 
 
 
 
23
 
24
  result = pipe(
25
  audio_path,
26
  chunk_length_s=30,
27
  stride_length_s=(6, 0),
 
28
  return_timestamps=False,
29
- batch_size=8
30
  )
31
-
32
  return result["text"]
33
 
34
 
 
 
 
35
  with gr.Blocks(title="Íslenskt ASR – 3 mín") as demo:
36
  gr.Markdown("# Íslenskt ASR – 3 mínútur")
37
- gr.Markdown("**Whisper · Very low WER · 0.5–5 mín hljóð á ZeroGPU**")
38
 
39
- audio = gr.Audio(type="filepath", label="Hladdu upp .mp3 / .wav (allt að 5 mín)")
 
 
 
40
  btn = gr.Button("Transcribe", variant="primary", size="lg")
41
- out = gr.Textbox(lines=30, label="Útskrift")
42
-
43
- btn.click(transcribe_3min, inputs=audio, outputs=out)
44
 
45
 
 
 
 
46
  demo.launch(
47
  auth=("beta", "beta2025"),
48
- ssr_mode=False, # Critical – stops infinite loading loop
49
- show_error=True, # Shows real errors instead of blank screen
50
  server_name="0.0.0.0",
51
  server_port=7860,
52
  quiet=False
 
1
+ # app.py
2
  import os
3
+ os.environ["OMP_NUM_THREADS"] = "1"
4
+ os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:128"
5
 
6
  import gradio as gr
7
  import spaces
8
  from transformers import pipeline
9
 
10
+ # ——————————————————————————————
11
+ # Model loaded ONCE at startup (global)
12
+ # ——————————————————————————————
13
  MODEL_NAME = "palli23/whisper-small-sam_spjall"
14
 
15
+ @spaces.GPU(duration=180)
16
+ def get_pipe():
17
+ return pipeline(
 
 
 
18
  "automatic-speech-recognition",
19
  model=MODEL_NAME,
20
+ torch_dtype="float16",
21
+ device=0, # T4 GPU
22
+ token=os.getenv("HF_TOKEN"), # Remove line if model is public
23
  )
24
+
25
+ pipe = get_pipe() # ← Loaded once when Space starts
26
+
27
+
28
+ # ——————————————————————————————
29
+ # Transcription function (super fast now)
30
+ # ——————————————————————————————
31
+ def transcribe_3min(audio_path):
32
+ if not audio_path:
33
+ return "Hladdu upp hljóðskrá"
34
 
35
  result = pipe(
36
  audio_path,
37
  chunk_length_s=30,
38
  stride_length_s=(6, 0),
39
+ batch_size=8,
40
  return_timestamps=False,
 
41
  )
 
42
  return result["text"]
43
 
44
 
45
+ # ——————————————————————————————
46
+ # Gradio UI
47
+ # ——————————————————————————————
48
  with gr.Blocks(title="Íslenskt ASR – 3 mín") as demo:
49
  gr.Markdown("# Íslenskt ASR – 3 mínútur")
50
+ gr.Markdown("**Whisper · mjög lágur WER · allt að 5 mín hljóð**")
51
 
52
+ audio_in = gr.Audio(
53
+ type="filepath",
54
+ label="Hladdu upp .mp3 / .wav (max 5 mín)"
55
+ )
56
  btn = gr.Button("Transcribe", variant="primary", size="lg")
57
+ output = gr.Textbox(lines=30, label="Útskrift")
58
+
59
+ btn.click(fn=transcribe_3min, inputs=audio_in, outputs=output)
60
 
61
 
62
+ # ——————————————————————————————
63
+ # Stable launch (no more infinite Building)
64
+ # ——————————————————————————————
65
  demo.launch(
66
  auth=("beta", "beta2025"),
67
+ ssr_mode=False,
68
+ show_error=True,
69
  server_name="0.0.0.0",
70
  server_port=7860,
71
  quiet=False