hina117 commited on
Commit
ad45495
·
verified ·
1 Parent(s): be1807f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -0
app.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # File: language_translation_app.py
2
+
3
+ import streamlit as st
4
+ from transformers import MarianMTModel, MarianTokenizer
5
+
6
+ # Function to load the model and tokenizer
7
+ @st.cache_resource
8
+ def load_model_and_tokenizer(model_name):
9
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
10
+ model = MarianMTModel.from_pretrained(model_name)
11
+ return tokenizer, model
12
+
13
+ # Function to perform translation
14
+ def translate_text(input_text, src_lang, tgt_lang):
15
+ model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}"
16
+ try:
17
+ tokenizer, model = load_model_and_tokenizer(model_name)
18
+ inputs = tokenizer(input_text, return_tensors="pt", padding=True)
19
+ outputs = model.generate(**inputs)
20
+ translated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
21
+ return translated_text
22
+ except Exception as e:
23
+ return f"Error: Unable to translate. Details: {e}"
24
+
25
+ # Language options supported by Helsinki-NLP
26
+ language_pairs = {
27
+ "English": "en",
28
+ "French": "fr",
29
+ "German": "de",
30
+ "Spanish": "es",
31
+ "Chinese": "zh",
32
+ "Hindi": "hi",
33
+ "Urdu": "ur",
34
+ "Arabic": "ar",
35
+ "Russian": "ru",
36
+ "Italian": "it",
37
+ # Add more as required
38
+ }
39
+
40
+ # Streamlit App
41
+ def main():
42
+ st.title("Language Translation App")
43
+ st.write("Translate text between multiple languages instantly.")
44
+
45
+ # Input and Output language selection
46
+ input_language = st.selectbox("Select Input Language", language_pairs.keys())
47
+ output_language = st.selectbox("Select Output Language", language_pairs.keys())
48
+
49
+ # User input for the text
50
+ input_text = st.text_area("Enter text to translate", height=200)
51
+
52
+ if st.button("Translate"):
53
+ if input_text.strip():
54
+ src_lang = language_pairs[input_language]
55
+ tgt_lang = language_pairs[output_language]
56
+ translated_text = translate_text(input_text, src_lang, tgt_lang)
57
+ st.subheader("Translated Text")
58
+ st.write(translated_text)
59
+ else:
60
+ st.warning("Please enter text to translate.")
61
+
62
+ if __name__ == "__main__":
63
+ main()