SandaAbhishekSagar commited on
Commit
ccc8077
·
1 Parent(s): d69d539

revamped code

Browse files
Files changed (2) hide show
  1. app.py +32 -24
  2. translate.py +1 -48
app.py CHANGED
@@ -58,34 +58,42 @@
58
  # if __name__ == "__main__":
59
  # interface.launch(share=True)
60
 
 
61
  import gradio as gr
62
  from translate import translate_text, SUPPORTED_LANGUAGES
 
63
 
64
- def chatbot(input_text, src_lang_name):
65
- src_lang_code = SUPPORTED_LANGUAGES[src_lang_name]
66
- translated_text = translate_text(input_text, src_lang=src_lang_code)
67
- return translated_text
68
-
69
- # Gradio Interface
70
- with gr.Blocks() as app:
71
- gr.Markdown("## LinguaVision - Multilingual Translation Chatbot")
72
 
73
- with gr.Row():
74
- language_dropdown = gr.Dropdown(
75
- choices=list(SUPPORTED_LANGUAGES.keys()),
76
- label="Select Input Language",
77
- value="Auto Detect"
78
- )
79
- input_box = gr.Textbox(label="Enter Text")
80
 
81
- output_box = gr.Textbox(label="Translated Text")
82
- translate_button = gr.Button("Translate")
83
 
84
- translate_button.click(
85
- chatbot,
86
- inputs=[input_box, language_dropdown],
87
- outputs=output_box
88
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
- # Run the app
91
- app.launch()
 
58
  # if __name__ == "__main__":
59
  # interface.launch(share=True)
60
 
61
+
62
  import gradio as gr
63
  from translate import translate_text, SUPPORTED_LANGUAGES
64
+ from image_generator import generate_image
65
 
66
+ def chatbot(input_text, src_lang):
67
+ """Process user input, translate it, and generate an image."""
68
+ # Get the language code from the selected language
69
+ src_lang_code = SUPPORTED_LANGUAGES[src_lang]
 
 
 
 
70
 
71
+ # Translate input to English
72
+ translated_text = translate_text(input_text, src_lang_code, tgt_lang_code="en_XX")
 
 
 
 
 
73
 
74
+ # Generate an image based on the translated text
75
+ image_path = generate_image(f"A scene depicting: {translated_text}")
76
 
77
+ return translated_text, image_path
78
+
79
+ # Gradio Interface
80
+ interface = gr.Interface(
81
+ fn=chatbot,
82
+ inputs=[
83
+ gr.Textbox(label="Enter text"),
84
+ gr.Dropdown(
85
+ label="Select Input Language",
86
+ choices=list(SUPPORTED_LANGUAGES.keys()),
87
+ value="English",
88
+ ),
89
+ ],
90
+ outputs=[
91
+ gr.Textbox(label="Translated Text"),
92
+ gr.Image(label="Generated Image"),
93
+ ],
94
+ title="LinguaVision - Multilingual Chatbot with Image Generation",
95
+ description="Enter text and select the input language to translate it into English and generate an image based on the text.\n NOTE: This tool takes approximately 20 minutes to execute.",
96
+ )
97
 
98
+ if __name__ == "__main__":
99
+ interface.launch()
translate.py CHANGED
@@ -13,20 +13,6 @@
13
  # print("Translated Text:", translate_text(input_text, src_lang="es", tgt_lang="en"))
14
 
15
 
16
- # from transformers import MarianMTModel, MarianTokenizer
17
-
18
- # # Preload the translation model globally
19
- # model_name = "facebook/mbart-large-50-many-to-many-mmt"
20
- # tokenizer = MarianTokenizer.from_pretrained(model_name)
21
- # translation_model = MarianMTModel.from_pretrained(model_name)
22
-
23
- # def translate_text(text, src_lang="auto", tgt_lang="en"):
24
- # """Translate text from any language to English."""
25
- # inputs = tokenizer(text, return_tensors="pt", padding=True)
26
- # translated = translation_model.generate(**inputs)
27
- # return tokenizer.decode(translated[0], skip_special_tokens=True)
28
-
29
- import spaces
30
  from transformers import MarianMTModel, MarianTokenizer
31
 
32
  # Preload the translation model globally
@@ -34,41 +20,8 @@ model_name = "Helsinki-NLP/opus-mt-mul-en"
34
  tokenizer = MarianTokenizer.from_pretrained(model_name)
35
  translation_model = MarianMTModel.from_pretrained(model_name)
36
 
37
- # Supported languages for the dropdown
38
- SUPPORTED_LANGUAGES = {
39
- "Auto Detect": "auto",
40
- "English": "en",
41
- "Spanish": "es",
42
- "French": "fr",
43
- "German": "de",
44
- "Italian": "it",
45
- "Japanese": "ja",
46
- "Chinese": "zh",
47
- "Korean": "ko",
48
- "Hindi": "hi",
49
- "Arabic": "ar",
50
- "Russian": "ru",
51
- "Portuguese": "pt",
52
- "Dutch": "nl",
53
- "Bengali": "bn",
54
- "Turkish": "tr",
55
- "Vietnamese": "vi",
56
- "Indonesian": "id",
57
- "Malay": "ms",
58
- }
59
- @spaces.GPU
60
  def translate_text(text, src_lang="auto", tgt_lang="en"):
61
- """Translate text from the selected source language to English."""
62
- # Add language prefix for the source language
63
- if src_lang != "auto":
64
- text = f">>{src_lang}<< {text}"
65
-
66
- # Tokenize the input text
67
  inputs = tokenizer(text, return_tensors="pt", padding=True)
68
-
69
- # Perform translation
70
  translated = translation_model.generate(**inputs)
71
-
72
- # Decode and return the translated text
73
  return tokenizer.decode(translated[0], skip_special_tokens=True)
74
-
 
13
  # print("Translated Text:", translate_text(input_text, src_lang="es", tgt_lang="en"))
14
 
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  from transformers import MarianMTModel, MarianTokenizer
17
 
18
  # Preload the translation model globally
 
20
  tokenizer = MarianTokenizer.from_pretrained(model_name)
21
  translation_model = MarianMTModel.from_pretrained(model_name)
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  def translate_text(text, src_lang="auto", tgt_lang="en"):
24
+ """Translate text from any language to English."""
 
 
 
 
 
25
  inputs = tokenizer(text, return_tensors="pt", padding=True)
 
 
26
  translated = translation_model.generate(**inputs)
 
 
27
  return tokenizer.decode(translated[0], skip_special_tokens=True)