EngrNarmeen commited on
Commit
2370773
·
verified ·
1 Parent(s): c31b70f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -0
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+
4
+ # Function to load the translation model and tokenizer
5
+ @st.cache_resource
6
+ def load_model_and_tokenizer():
7
+ model_name = "Helsinki-NLP/opus-mt-en-ROMANCE" # Example: English to Romance languages (like Spanish, French, etc.)
8
+ model = MarianMTModel.from_pretrained(model_name)
9
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
10
+ return model, tokenizer
11
+
12
+ # Function to translate text
13
+ def translate_text(text, model, tokenizer, src_lang, tgt_lang):
14
+ # Prepare the text for translation
15
+ translation_input = tokenizer(text, return_tensors="pt", padding=True)
16
+
17
+ # Translate text
18
+ translated = model.generate(**translation_input)
19
+
20
+ # Decode the translated text
21
+ translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
22
+ return translated_text
23
+
24
+ # Streamlit UI components
25
+ st.title("Language Translation App")
26
+ st.write("Translate text between multiple languages using the Helsinki-NLP translation models.")
27
+
28
+ # Load model and tokenizer
29
+ model, tokenizer = load_model_and_tokenizer()
30
+
31
+ # Language selection for input and output
32
+ available_languages = ["en", "es", "fr", "de", "it", "pt", "ro", "nl", "pl", "ca"]
33
+ input_lang = st.selectbox("Select input language", available_languages)
34
+ output_lang = st.selectbox("Select output language", available_languages)
35
+
36
+ # Text input
37
+ text_to_translate = st.text_area("Enter text to translate:")
38
+
39
+ # Perform translation if text is entered
40
+ if text_to_translate:
41
+ if input_lang != output_lang:
42
+ translated_text = translate_text(text_to_translate, model, tokenizer, input_lang, output_lang)
43
+ st.write("Translated Text:")
44
+ st.write(translated_text)
45
+ else:
46
+ st.warning("Input and output languages cannot be the same.")