Noveramaaz commited on
Commit
4b8cdaf
·
verified ·
1 Parent(s): 723ba45

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -0
app.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+ from langdetect import detect
4
+ from sacremoses import MosesTokenizer, MosesDetokenizer
5
+
6
+ # Supported languages for translation
7
+ SUPPORTED_LANGUAGES = {
8
+ "en": "English",
9
+ "fr": "French",
10
+ "es": "Spanish",
11
+ "de": "German",
12
+ "it": "Italian"
13
+ }
14
+
15
+ def translate_text(text, target_lang="fr"):
16
+ # Detect input text language
17
+ input_lang = detect(text)
18
+
19
+ # Load pre-trained translation model
20
+ model_name = f'Helsinki-NLP/opus-mt-{input_lang}-{target_lang}'
21
+ model = MarianMTModel.from_pretrained(model_name)
22
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
23
+
24
+ # Tokenize input text
25
+ inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
26
+
27
+ # Translate input text
28
+ translated = model.generate(**inputs)
29
+
30
+ # Decode translated text
31
+ translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
32
+
33
+ return translated_text
34
+
35
+ # Function for translating text using Gradio
36
+ def translate_interface(text, target_language):
37
+ translated_text = translate_text(text, target_language)
38
+ return translated_text
39
+
40
+ # Create Gradio interface
41
+ inputs = gr.Textbox(lines=3, label="Enter the text to translate")
42
+ target_language = gr.Dropdown(choices=list(SUPPORTED_LANGUAGES.keys()), label="Target Language")
43
+ output = gr.Textbox(placeholder="Translated Text", label="Translated Text")
44
+
45
+ gr.Interface(fn=translate_interface, inputs=[inputs, target_language], outputs=output, title="Text Translation", theme="compact").launch(debug = True)