vivekchaurasia commited on
Commit
11fea22
·
verified ·
1 Parent(s): a86e080

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from fairseq.models.transformer import TransformerModel
3
+ import time
4
+
5
+ @st.cache_resource
6
+ def load_model():
7
+ # Load English-to-Indic model
8
+ en2indic = TransformerModel.from_pretrained(
9
+ 'ai4bharat/indictrans2-en-indic-1B',
10
+ checkpoint_file='model.pt',
11
+ bpe='sentencepiece',
12
+ sentencepiece_model='ai4bharat/indictrans2-en-indic-1B/en-indic.model',
13
+ device='cpu'
14
+ )
15
+
16
+ # Load Indic-to-English model
17
+ indic2en = TransformerModel.from_pretrained(
18
+ 'ai4bharat/indictrans2-indic-en-1B',
19
+ checkpoint_file='model.pt',
20
+ bpe='sentencepiece',
21
+ sentencepiece_model='ai4bharat/indictrans2-indic-en-1B/indic-en.model',
22
+ device='cpu'
23
+ )
24
+
25
+ return en2indic, indic2en
26
+
27
+ en2indic, indic2en = load_model()
28
+
29
+ st.title("IndicTrans2 Translator")
30
+ src_lang = st.selectbox("Source Language", ["English", "Hindi", "Tamil", "Telugu", "Malayalam"])
31
+ tgt_lang = st.selectbox("Target Language", ["English", "Hindi", "Tamil", "Telugu", "Malayalam"])
32
+ input_text = st.text_area("Enter text to translate")
33
+
34
+ if st.button("Translate"):
35
+ start_time = time.time()
36
+
37
+ # Language code mapping
38
+ lang_codes = {
39
+ "English": "eng_Latn",
40
+ "Hindi": "hin_Deva",
41
+ "Tamil": "tam_Taml",
42
+ "Telugu": "tel_Telu",
43
+ "Malayalam": "mal_Mlym"
44
+ }
45
+
46
+ if src_lang == "English":
47
+ translation = en2indic.translate(input_text, lang_pair=(lang_codes[src_lang], lang_codes[tgt_lang]))
48
+ else:
49
+ translation = indic2en.translate(input_text, lang_pair=(lang_codes[src_lang], lang_codes[tgt_lang]))
50
+
51
+ st.text_area("Translation", translation[0], height=200)
52
+ st.write(f"Translation time: {time.time() - start_time:.2f} seconds")