maaz21 commited on
Commit
9b41d6c
·
verified ·
1 Parent(s): b3f5563

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +57 -0
app.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer, pipeline
3
+
4
+ # Set page configuration
5
+ st.set_page_config(page_title="Language Translation App", layout="centered")
6
+
7
+ # Title of the app
8
+ st.title("🌍 Language Translation App")
9
+ st.markdown("""
10
+ **Purpose**: Translate text between multiple languages
11
+ **Use Case**: Help users who want to learn or speak different languages or communicate with others in their preferred language.
12
+ """)
13
+
14
+ # Language mapping to language codes
15
+ language_mapping = {
16
+ "English": "en",
17
+ "French": "fr",
18
+ "German": "de",
19
+ "Hindi": "hi",
20
+ "Spanish": "es",
21
+ "Italian": "it",
22
+ }
23
+
24
+ # Language pair selection
25
+ source_lang = st.selectbox("Select Source Language", list(language_mapping.keys()))
26
+ target_lang = st.selectbox("Select Target Language", list(language_mapping.keys()))
27
+
28
+ # Correctly construct the model name for Hugging Face
29
+ model_name = f"Helsinki-NLP/opus-mt-{language_mapping[source_lang]}-{language_mapping[target_lang]}"
30
+
31
+ # Function to load the translation model
32
+ @st.cache_resource
33
+ def load_pipeline(model_name):
34
+ try:
35
+ model = MarianMTModel.from_pretrained(model_name)
36
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
37
+ return pipeline("translation", model=model, tokenizer=tokenizer)
38
+ except Exception as e:
39
+ st.error(f"Error loading model: {e}")
40
+ return None
41
+
42
+ # Initialize the translator
43
+ translator = load_pipeline(model_name)
44
+
45
+ # Text input field for translation
46
+ text_input = st.text_area("Enter text to translate", height=150)
47
+
48
+ # Translate and display result
49
+ if st.button("Translate"):
50
+ if text_input.strip():
51
+ with st.spinner("Translating..."):
52
+ result = translator(text_input)
53
+ translated_text = result[0]['translation_text']
54
+ st.success("Translation complete!")
55
+ st.text_area("Translated Text", translated_text, height=150)
56
+ else:
57
+ st.warning("Please enter some text to translate.")