KIMOSSINO commited on
Commit
b0e29e7
·
verified ·
1 Parent(s): 20004c1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -6
app.py CHANGED
@@ -1,13 +1,18 @@
1
  import os
 
 
2
  import gradio as gr
3
  import whisper
4
  import torch
5
- from transformers import pipeline
6
 
7
  # تهيئة النماذج
8
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
9
  whisper_model = whisper.load_model("base")
10
 
 
 
 
 
11
  # قاموس للغات المدعومة
12
  SUPPORTED_LANGUAGES = {
13
  "ar": "العربية",
@@ -25,15 +30,40 @@ def transcribe_audio(audio_file, source_lang):
25
  return f"خطأ في التحويل: {str(e)}"
26
 
27
  def translate_text(text, source_lang, target_lang):
28
- """ترجمة النص بين اللغات"""
29
  if source_lang == target_lang:
30
  return text
31
 
32
  try:
33
- translator = pipeline("translation",
34
- model=f"Helsinki-NLP/opus-mt-{source_lang}-{target_lang}")
35
- result = translator(text)[0]['translation_text']
36
- return result
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  except Exception as e:
38
  return f"خطأ في الترجمة: {str(e)}"
39
 
 
1
  import os
2
+ import json
3
+ import requests
4
  import gradio as gr
5
  import whisper
6
  import torch
 
7
 
8
  # تهيئة النماذج
9
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
10
  whisper_model = whisper.load_model("base")
11
 
12
+ # مفتاح API لـ Gemini
13
+ GEMINI_API_KEY = "AIzaSyDrHCW4FxrDt6amCTQvYPTdh2NE06p9YlQ"
14
+ GEMINI_API_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent"
15
+
16
  # قاموس للغات المدعومة
17
  SUPPORTED_LANGUAGES = {
18
  "ar": "العربية",
 
30
  return f"خطأ في التحويل: {str(e)}"
31
 
32
  def translate_text(text, source_lang, target_lang):
33
+ """ترجمة النص باستخدام Gemini API"""
34
  if source_lang == target_lang:
35
  return text
36
 
37
  try:
38
+ # تحضير الطلب للترجمة
39
+ prompt = f"Translate the following text from {SUPPORTED_LANGUAGES[source_lang]} to {SUPPORTED_LANGUAGES[target_lang]}. Only provide the translation without any additional text or explanation:\n\n{text}"
40
+
41
+ payload = {
42
+ "contents": [{
43
+ "parts": [{
44
+ "text": prompt
45
+ }]
46
+ }]
47
+ }
48
+
49
+ # إضافة مفتاح API كمعامل URL
50
+ url = f"{GEMINI_API_URL}?key={GEMINI_API_KEY}"
51
+
52
+ # إرسال الطلب
53
+ response = requests.post(
54
+ url,
55
+ headers={"Content-Type": "application/json"},
56
+ json=payload
57
+ )
58
+
59
+ if response.status_code == 200:
60
+ result = response.json()
61
+ # استخراج النص المترجم من الاستجابة
62
+ translated_text = result['candidates'][0]['content']['parts'][0]['text']
63
+ return translated_text
64
+ else:
65
+ return f"خطأ في الترجمة: {response.status_code} - {response.text}"
66
+
67
  except Exception as e:
68
  return f"خطأ في الترجمة: {str(e)}"
69