palli23 commited on
Commit
9840418
·
1 Parent(s): c3300d7

fix transcribe bug

Browse files
Files changed (1) hide show
  1. app.py +31 -40
app.py CHANGED
@@ -1,53 +1,44 @@
1
- # app.py – ZeroGPU SAFE 3 mín hljóð án "GPU task aborted"
2
  import os
3
  import gradio as gr
4
  import spaces
5
  from transformers import pipeline
6
- import numpy as np
7
- import librosa
8
 
9
  MODEL_NAME = "palli23/whisper-small-sam_spjall"
10
 
11
- @spaces.GPU(duration=60) # MEST 60 sek ZeroGPU leyfir
12
- def transcribe_safe(audio_path):
 
 
 
 
 
 
 
 
 
 
 
13
  if not audio_path:
14
- return "Hladdu upp hljóðskrá"
15
-
16
- # Hlaða hljóð og klippa í 20 sek chunkar (mjög öruggt)
17
- audio, sr = librosa.load(audio_path, sr=16000)
18
- chunk_len = 16000 * 20 # 20 sek
19
- stride = 16000 * 2 # 2 sek overlap
20
- chunks = []
21
- for i in range(0, len(audio), chunk_len - stride):
22
- chunk = audio[i:i + chunk_len]
23
- if len(chunk) < 16000: # undir 1 sek → hætta
24
- break
25
- chunks.append(chunk)
26
 
27
- # Hlaða ASR á GPU (cached)
28
- pipe = pipeline(
29
- "automatic-speech-recognition",
30
- model=MODEL_NAME,
31
- device=0,
32
- token=os.getenv("HF_TOKEN")
33
  )
34
-
35
- full_text = ""
36
- for idx, chunk in enumerate(chunks):
37
- result = pipe(chunk, batch_size=8)
38
- full_text += result["text"] + " "
39
-
40
- return full_text.strip() or "Ekkert heyrt"
41
 
42
- # Gradiofallegt og tilbúið fyrir 3 mín
43
- with gr.Blocks(title="Íslenskt ASR – 3 mín ZeroGPU") as demo:
44
- gr.Markdown("# Íslenskt ASR 3 mín hljóð")
45
- gr.Markdown("**~4 % WER · 25–45 sek · ZeroGPU (PRO)**")
46
-
47
- audio = gr.Audio(type="filepath", label="Hladdu upp .mp3 / .wav (allt að 3 mín)")
48
- btn = gr.Button("Transcribe (25–45 sek)", variant="primary", size="lg")
49
- out = gr.Textbox(lines=30, label="Útskrift")
50
 
51
- btn.click(transcribe_safe, inputs=audio, outputs=out)
 
 
 
 
52
 
53
- demo.launch(auth=("beta", "beta2025"))
 
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 3–4 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()