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

rollback 2 days

Browse files
Files changed (1) hide show
  1. app.py +32 -23
app.py CHANGED
@@ -1,44 +1,53 @@
1
- app.py – virkar 100% á ZeroGPU (og venjulegum GPU líka)
2
  import os
 
 
 
3
  import gradio as gr
4
  import spaces
5
  from transformers import pipeline
6
 
7
  MODEL_NAME = "palli23/whisper-small-sam_spjall"
8
 
9
- # Látum mótið hlaðast EINUSINNI þegar appið ræsist (ekki í hverju kall)
10
- print("Hleð Whisper módelinu einu sinni...")
11
- pipe = pipeline(
12
- "automatic-speech-recognition",
13
- model=MODEL_NAME,
14
- torch_dtype="auto",
15
- device_map="auto", # þetta er lykillinn fyrir ZeroGPU
16
- token=os.getenv("HF_TOKEN")
17
- )
18
- print("Módel tilbúið!")
19
-
20
- @spaces.GPU(duration=120) # 2 mínútur nægja fyrir 3–4 mín hljóð
21
  def transcribe_3min(audio_path):
22
  if not audio_path:
23
- return "Hladdu upp hljóðskrá fyrst"
 
 
 
 
 
 
 
 
24
 
25
  result = pipe(
26
  audio_path,
27
  chunk_length_s=30,
28
- batch_size=8,
29
  return_timestamps=False,
30
- generate_kwargs={"language": "is", "task": "transcribe"}
31
  )
 
32
  return result["text"]
33
 
 
34
  with gr.Blocks(title="Íslenskt ASR – 3 mín") as demo:
35
- gr.Markdown("# Íslenskt Whisper – 3 mín hljóð á ZeroGPU")
36
- gr.Markdown("Hladdu upp allt 34 mínútna hljóðskrá (mp3/wav). Virkar strax!")
 
 
 
 
37
 
38
- audio_in = gr.Audio(type="filepath", label="Hljóðskrá (max ~4 mín)")
39
- btn = gr.Button("Transcribe", variant="primary")
40
- text_out = gr.Textbox(lines=25, label="Útskrift")
41
 
42
- btn.click(transcribe_3min, inputs=audio_in, outputs=text_out)
43
 
44
- demo.launch()
 
 
 
 
 
 
 
 
 
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.55 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
53
+ )