syedwaqarumer commited on
Commit
24458a9
·
verified ·
1 Parent(s): 7ec7fa0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -0
app.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+
4
+ # Define a dictionary with language codes (MarianMT uses ISO 639-1 codes)
5
+ lang_dict = {
6
+ 'English': 'en',
7
+ 'French': 'fr',
8
+ 'German': 'de',
9
+ 'Spanish': 'es',
10
+ 'Italian': 'it',
11
+ 'Russian': 'ru',
12
+ 'Chinese': 'zh',
13
+ 'Arabic': 'ar',
14
+ 'Japanese': 'ja',
15
+ 'Korean': 'ko',
16
+ 'Urdu': 'ur',
17
+ 'Hindi': 'hi'
18
+ }
19
+
20
+ # Function to load model and tokenizer for translation
21
+ def load_model(src_lang, tgt_lang):
22
+ model_name = f'Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}'
23
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
24
+ model = MarianMTModel.from_pretrained(model_name)
25
+ return model, tokenizer
26
+
27
+ # Function to translate text
28
+ def translate_text(model, tokenizer, text):
29
+ inputs = tokenizer(text, return_tensors="pt", padding=True)
30
+ translated = model.generate(**inputs)
31
+ translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
32
+ return translated_text
33
+
34
+ # Streamlit App
35
+
36
+ st.title('Language Translator')
37
+
38
+ # User selects input and output languages
39
+ st.subheader('Select Input and Output Languages')
40
+ src_lang = st.selectbox('Input Language', list(lang_dict.keys()))
41
+ tgt_lang = st.selectbox('Output Language', list(lang_dict.keys()))
42
+
43
+ # Get input text from the user
44
+ st.subheader(f'Translate from {src_lang} to {tgt_lang}')
45
+ input_text = st.text_area('Enter your text here', placeholder=f'Enter text in {src_lang}...')
46
+
47
+ # Translate button
48
+ if st.button('Translate'):
49
+ if input_text.strip() == "":
50
+ st.warning('Please enter some text to translate.')
51
+ else:
52
+ # Load the translation model
53
+ model, tokenizer = load_model(lang_dict[src_lang], lang_dict[tgt_lang])
54
+
55
+ # Translate text
56
+ translated_text = translate_text(model, tokenizer, input_text)
57
+
58
+ # Show the translated text
59
+ st.subheader(f'Translated Text ({tgt_lang}):')
60
+ st.write(translated_text)