Elanas commited on
Commit
068bb17
·
verified ·
1 Parent(s): ed138a3

Delete app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -108
app.py DELETED
@@ -1,108 +0,0 @@
1
- import gradio as gr
2
- import json
3
- import os
4
- import shutil
5
- from kalbetojai_analize import analizuoti_kalbetojus
6
- from kalbos_nustatymas import transcribe_text, transcribe_text_wav2vec
7
- from ataskaita import sugeneruoti_ataskaita
8
-
9
- # ⚖️ Demo failų keliai
10
- DEMO_KALBETOJAI_PATH = "demo/demo_3kalbetojai.wav"
11
- DEMO_SLAPTAZODIS_PATH = "demo/slaptazodis.wav"
12
-
13
- # 🔐 Funkcija kalbėtojų analizei ir segmentų atvaizdavimui
14
- def analizuoti_ir_issaugoti(wav_failas, modelis):
15
- if wav_failas is None:
16
- return "⚠️ Prašome įkelti pagrindinį .wav failą."
17
-
18
- laikinas_kelias = "ivestis.wav"
19
- shutil.copy(wav_failas, laikinas_kelias) # Pakeista iš os.rename į saugų kopijavimą
20
-
21
- _, _, segmentai = analizuoti_kalbetojus(modelis, failas=laikinas_kelias)
22
-
23
- os.makedirs("rezultatai", exist_ok=True)
24
- failas = os.path.join("rezultatai", f"{modelis.lower()}.json")
25
- json.dump({
26
- "modelis": modelis,
27
- "segmentai": segmentai
28
- }, open(failas, "w", encoding="utf-8"), ensure_ascii=False, indent=2)
29
-
30
- tekstas = ""
31
- for s in segmentai:
32
- tekstas += f"🧑 Kalbėtojas {s['kalbetojas']} – {s['kalba']}\n"
33
- tekstas += f"💬 '{s['tekstas']}'\n"
34
- tekstas += f"⏱️ Trukmė: {s['trukme']} s\n\n"
35
-
36
- return tekstas
37
-
38
- # 🔐 Funkcija slaptažodžiui tikrinti iš įkelto WAV
39
- def tikrinti_slaptazodi(audio, slaptazodis, modelis):
40
- if audio is None or not slaptazodis:
41
- return "⚠️ Prašome įkelti slaptažodžio įrašą ir įvesti tekstą."
42
-
43
- slaptazodis = slaptazodis.strip().lower()
44
- if modelis == "Whisper":
45
- tekstas = transcribe_text(audio).lower().strip()
46
- elif modelis == "Wav2Vec2":
47
- tekstas = transcribe_text_wav2vec(audio, kalba="lt").lower().strip()
48
- else:
49
- return "❌ Nepalaikomas modelis."
50
-
51
- if slaptazodis in tekstas:
52
- return f"✅ Slaptažodis atpažintas! ({tekstas})"
53
- else:
54
- return f"❌ Slaptažodis neatpažintas. Gauta: ({tekstas})"
55
-
56
- # 🚀 Mygtukų funkcijos demo failams
57
- def naudoti_demo_kalbetojai():
58
- return DEMO_KALBETOJAI_PATH
59
-
60
- def naudoti_demo_slaptazodis():
61
- return DEMO_SLAPTAZODIS_PATH
62
-
63
- # 📥 Nauja funkcija: grąžinti json failą parsisiuntimui
64
- def gauti_json_faila(modelis):
65
- failo_kelias = os.path.join("rezultatai", f"{modelis.lower()}.json")
66
- if os.path.exists(failo_kelias):
67
- return failo_kelias
68
- else:
69
- return None
70
-
71
- # 💻 GUI komponentai
72
- with gr.Blocks() as demo:
73
- gr.Markdown("## 🎤 Kalbėtojų analizė + slaptažodžio tikrinimas + ataskaita")
74
-
75
- with gr.Tab("1. 📦 Kalbėtojų analizė"):
76
- with gr.Row():
77
- kalbetojai_audio = gr.Audio(type="filepath", label="🔊 Įkelkite .wav su 3 kalbėtojais")
78
- model_selector1 = gr.Radio(["Whisper", "Wav2Vec2"], value="Whisper", label="📊 Modelis")
79
- demo_kalb_btn = gr.Button("🎧 Naudoti pavyzdinį kalbėtojų failą")
80
- analizės_output = gr.Textbox(label="📜 Rezultatai", lines=20)
81
- analizės_btn = gr.Button("▶️ Analizuoti kalbėtojus")
82
- demo_kalb_btn.click(fn=naudoti_demo_kalbetojai, outputs=kalbetojai_audio)
83
- analizės_btn.click(fn=analizuoti_ir_issaugoti, inputs=[kalbetojai_audio, model_selector1], outputs=analizės_output)
84
-
85
- with gr.Tab("2. 🔐 Slaptažodžio tikrinimas"):
86
- with gr.Row():
87
- slapt_audio = gr.Audio(type="filepath", label="🔊 Įkelkite .wav su išsakytu slaptažodžiu")
88
- slapt_input = gr.Textbox(label="🔐 Įveskite slaptažodį")
89
- model_selector2 = gr.Radio(["Whisper", "Wav2Vec2"], value="Whisper", label="📊 Modelis")
90
- demo_slapt_btn = gr.Button("🔹 Naudoti pavyzdinį slaptažodžio failą")
91
- slapt_output = gr.Textbox(label="📋 Tikrinimo rezultatas", lines=4)
92
- slapt_btn = gr.Button("✅ Tikrinti slaptažodį")
93
- demo_slapt_btn.click(fn=naudoti_demo_slaptazodis, outputs=slapt_audio)
94
- slapt_btn.click(fn=tikrinti_slaptazodi, inputs=[slapt_audio, slapt_input, model_selector2], outputs=slapt_output)
95
-
96
- with gr.Tab("3. 📊 Ataskaita ir Atsisiuntimas"):
97
- with gr.Row():
98
- report_output = gr.Textbox(label="📈 Bendra ataskaita", lines=30)
99
- report_btn = gr.Button("📊 Peržiūrėti ataskaitą")
100
- report_btn.click(fn=sugeneruoti_ataskaita, outputs=report_output)
101
-
102
- with gr.Row():
103
- atsisiusti_modeli = gr.Radio(["Whisper", "Wav2Vec2"], value="Whisper", label="📁 Pasirinkite modelį JSON atsisiuntimui")
104
- atsisiuntimo_btn = gr.Button("📥 Atsisiųsti JSON")
105
- failas_output = gr.File(label="⬇️ Parsisiųsti JSON failą")
106
- atsisiuntimo_btn.click(fn=gauti_json_faila, inputs=[atsisiusti_modeli], outputs=failas_output)
107
-
108
- demo.launch()