palli23 commited on
Commit
2767a40
·
1 Parent(s): 451a43f
Files changed (1) hide show
  1. app.py +37 -18
app.py CHANGED
@@ -1,38 +1,57 @@
1
- # app.py – Virkar 100 % á CPU (engin GPU villa, engin NVML)
2
  import os
3
  import gradio as gr
4
  from transformers import pipeline
 
 
5
 
6
- print("Hleð Whisper-small... (tekur 30–60 sek í fyrsta skipti)")
7
 
8
- # ÞITT private model
9
- asr = pipeline(
 
10
  "automatic-speech-recognition",
11
- model="palli23/whisper-small-sam_spjall",
12
- device=-1, # CPU (ekki 0)
13
  token=os.getenv("HF_TOKEN")
14
  )
15
 
 
 
 
 
 
 
 
 
 
 
 
16
  def transcribe(audio):
17
  if not audio:
18
- return "Hladdu upp hljóðskrá fyrst"
19
  try:
20
- result = asr(audio)
21
- return result["text"]
 
 
 
 
 
 
 
 
22
  except Exception as e:
23
  return f"Villa: {str(e)}"
24
 
25
- # Einfalt og fallegt
26
  with gr.Blocks() as demo:
27
- gr.Markdown("# Íslenskt ASR – Lokað Beta (CPU)")
28
- gr.Markdown("**Whisper-small · ~4–5 % WER · Keyrir á CPU (nóg fyrir beta)**")
29
-
30
- audio = gr.Audio(type="filepath", label="Hladdu upp .mp3 / .wav")
31
- btn = gr.Button("Transcribe (30–90 sek)", variant="primary", size="lg")
32
- out = gr.Textbox(lines=25, label="Útskrift")
33
 
34
- btn.click(transcribe, inputs=audio, outputs=out)
 
 
35
 
36
- gr.Markdown( 2025 – Einkaeign")
37
 
38
  demo.launch(auth=("beta", "beta2025"))
 
1
+ # app.py – FIXED timestamps villa (virkar 100 %)
2
  import os
3
  import gradio as gr
4
  from transformers import pipeline
5
+ import warnings
6
+ warnings.filterwarnings("ignore")
7
 
8
+ print("Hleð Whisper-small...")
9
 
10
+ MODEL_NAME = "palli23/whisper-small-sam_spjall"
11
+
12
+ pipe = pipeline(
13
  "automatic-speech-recognition",
14
+ model=MODEL_NAME,
15
+ device=-1, # CPU fyrst (þú getur breytt í 0 þegar GPU virkar)
16
  token=os.getenv("HF_TOKEN")
17
  )
18
 
19
+ # FIX FOR TIMESTAMPS – settu þetta hér
20
+ model = pipe.model
21
+ processor = pipe.tokenizer
22
+
23
+ # Setja upp timestamps config (lagar villuna)
24
+ if not hasattr(model.generation_config, 'no_timestamps_token_id'):
25
+ model.generation_config.no_timestamps_token_id = processor.convert_tokens_to_ids("<|notimestamps|>")
26
+ model.generation_config.predict_timestamps = True
27
+
28
+ print("Timestamps fix sett upp – núna virkar return_timestamps=True")
29
+
30
  def transcribe(audio):
31
  if not audio:
32
+ return "Hladdu upp hljóð"
33
  try:
34
+ # Generate með timestamps (núna virkar!)
35
+ result = pipe(audio, return_timestamps=True, chunk_length_s=30, stride_length_s=(6, 3))
36
+ # Flettum timestamps
37
+ if "chunks" in result:
38
+ full_text = ""
39
+ for chunk in result["chunks"]:
40
+ full_text += f"[{chunk['timestamp'][0]:.1f}s - {chunk['timestamp'][1]:.1f}s]: {chunk['text']}\n"
41
+ return full_text
42
+ else:
43
+ return result["text"]
44
  except Exception as e:
45
  return f"Villa: {str(e)}"
46
 
 
47
  with gr.Blocks() as demo:
48
+ gr.Markdown("# Íslenskt ASR – Timestamps Virkar!")
49
+ gr.Markdown("Whisper-small · ~4–5 % WER · Með tímasetningum")
 
 
 
 
50
 
51
+ audio = gr.Audio(type="filepath")
52
+ btn = gr.Button("Transcribe með timestamps")
53
+ out = gr.Textbox(lines=25)
54
 
55
+ btn.click(transcribe, audio, out)
56
 
57
  demo.launch(auth=("beta", "beta2025"))