testingfaces commited on
Commit
8ea1310
·
verified ·
1 Parent(s): 09691d2

Update translator.py

Browse files
Files changed (1) hide show
  1. translator.py +12 -30
translator.py CHANGED
@@ -1,40 +1,22 @@
1
- import logging
2
  from transformers import pipeline
3
 
4
- logger = logging.getLogger(__name__)
5
-
6
  class Translator:
7
  def __init__(self):
8
- self.model_en_mul = "Helsinki-NLP/opus-mt-en-mul"
9
- self.model_mul_en = "Helsinki-NLP/opus-mt-mul-en"
10
- self.engines = {"to_indian": None, "to_english": None}
11
- print("[System] Translator initialized. Engines will load on first use to save RAM.")
12
 
13
  def translate(self, text, target_lang):
14
  if not text or not text.strip(): return ""
15
 
16
- lang_codes = {
17
- "English": ">>eng<<", "Hindi": ">>hin<<", "Telugu": ">>tel<<",
18
- "Tamil": ">>tam<<", "Bengali": ">>ben<<", "Marathi": ">>mar<<",
19
- "Gujarati": ">>guj<<", "Kannada": ">>kan<<", "Malayalam": ">>mal<<",
20
- "Punjabi": ">>pan<<", "Urdu": ">>urd<<", "Odia": ">>ori<<",
21
- "Assamese": ">>asm<<", "Spanish": ">>spa<<", "French": ">>fra<<"
22
- }
23
-
24
  try:
25
- if target_lang == "English":
26
- if self.engines["to_english"] is None:
27
- print("[Status] Loading Engine: Indian -> English (Hold on...)")
28
- self.engines["to_english"] = pipeline("text2text-generation", model=self.model_mul_en)
29
- res = self.engines["to_english"](text)
30
- return res[0]['generated_text']
31
- else:
32
- if self.engines["to_indian"] is None:
33
- print("[Status] Loading Engine: English -> Indian (Hold on...)")
34
- self.engines["to_indian"] = pipeline("text2text-generation", model=self.model_en_mul)
35
- prefix = lang_codes.get(target_lang, ">>hin<<")
36
- res = self.engines["to_indian"](f"{prefix} {text}")
37
- return res[0]['generated_text']
38
  except Exception as e:
39
- print(f"[Critical Error] Translation failed: {e}")
40
- return f"[Error: {str(e)}]"
 
 
1
  from transformers import pipeline
2
 
 
 
3
  class Translator:
4
  def __init__(self):
5
+ # This is the model that gave you the "perfect" results earlier
6
+ self.model_name = "Helsinki-NLP/opus-mt-mul-en"
7
+ self.translator = None
 
8
 
9
  def translate(self, text, target_lang):
10
  if not text or not text.strip(): return ""
11
 
12
+ # If the user wants English, use the high-quality model
 
 
 
 
 
 
 
13
  try:
14
+ if self.translator is None:
15
+ print("[Status] Loading High-Accuracy English Model...")
16
+ self.translator = pipeline("text2text-generation", model=self.model_name)
17
+
18
+ # Simple, direct translation for better grammar
19
+ res = self.translator(text)
20
+ return res[0]['generated_text']
 
 
 
 
 
 
21
  except Exception as e:
22
+ return f"[Translation error: {str(e)}]"