farid678 commited on
Commit
e900cc0
·
verified ·
1 Parent(s): 59b3f90

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -24
app.py CHANGED
@@ -7,34 +7,35 @@ import os
7
  # -----------------------------
8
  # بارگذاری مدل Whisper
9
  # -----------------------------
10
- print("🎧 Loading Whisper model (base)...")
11
- model = whisper.load_model("large-v3") # می‌توانید "small", "medium", یا "large" هم بگذارید
12
 
13
  # -----------------------------
14
  # تابع پردازش ویدیو و تبدیل به متن
15
  # -----------------------------
16
- def transcribe_video(video):
17
- # ذخیره موقت ویدیو
18
- with tempfile.NamedTemporaryFile(delete=False, suffix=".mp4") as tmp_video:
19
- tmp_video.write(video.read())
20
- tmp_video_path = tmp_video.name
21
-
22
- # استخراج صدا با ffmpeg
23
- tmp_audio_path = tempfile.NamedTemporaryFile(delete=False, suffix=".wav").name
24
- subprocess.run(
25
- ["ffmpeg", "-y", "-i", tmp_video_path, "-ar", "16000", "-ac", "1", tmp_audio_path],
26
- stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL
27
- )
28
-
29
- # تبدیل صدا به متن
30
- result = model.transcribe(tmp_audio_path, fp16=False)
31
- text = result["text"].strip()
32
-
33
- # پاک کردن فایل‌های موقت
34
- os.remove(tmp_video_path)
35
- os.remove(tmp_audio_path)
36
-
37
- return text or "متنی شناسایی نشد."
 
38
 
39
  # -----------------------------
40
  # رابط کاربری Gradio
 
7
  # -----------------------------
8
  # بارگذاری مدل Whisper
9
  # -----------------------------
10
+ print("🎧 Loading Whisper model (large-v3)...")
11
+ model = whisper.load_model("large-v3") # می‌توانید small, medium, large هم انتخاب کنید
12
 
13
  # -----------------------------
14
  # تابع پردازش ویدیو و تبدیل به متن
15
  # -----------------------------
16
+ def transcribe_video(video_path): # video_path یک رشته مسیر فایل است
17
+ try:
18
+ # ایجاد فایل صوتی موقت
19
+ tmp_audio_path = tempfile.NamedTemporaryFile(delete=False, suffix=".wav").name
20
+
21
+ # استخراج صدا با ffmpeg
22
+ subprocess.run(
23
+ ["ffmpeg", "-y", "-i", video_path, "-ar", "16000", "-ac", "1", tmp_audio_path],
24
+ stdout=subprocess.DEVNULL,
25
+ stderr=subprocess.DEVNULL
26
+ )
27
+
28
+ # تبدیل صدا به متن
29
+ result = model.transcribe(tmp_audio_path, fp16=False)
30
+ text = result["text"].strip()
31
+
32
+ # پاک کردن فایل صوتی موقت
33
+ os.remove(tmp_audio_path)
34
+
35
+ return text or "متنی شناسایی نشد."
36
+
37
+ except Exception as e:
38
+ return f"⚠️ خطا در پردازش ویدیو: {e}"
39
 
40
  # -----------------------------
41
  # رابط کاربری Gradio