huzaifanafees commited on
Commit
0b203dd
·
1 Parent(s): 26b116b

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +78 -0
app.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import h5py
3
+ from config import config
4
+ import tensorflow as tf
5
+ from transformer import Transformer
6
+ from translator import Translator
7
+ from load_model import load_transformer, load_sp_model, load_emb
8
+
9
+ import gradio as gr
10
+ from gradio.mix import Parallel, Series
11
+
12
+ import warnings
13
+ warnings.filterwarnings("ignore")
14
+
15
+ os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
16
+ tf.get_logger().setLevel('ERROR')
17
+
18
+ # load the embedding matrix
19
+ eng_emb_path = 'Embedding_matrix/en_embedding_matrix.h5'
20
+ ur_emb_path = 'Embedding_matrix/ur_embedding_matrix.h5'
21
+
22
+ eng_embedding_matrix = load_emb(eng_emb_path)
23
+ urdu_embedding_matrix = load_emb(ur_emb_path)
24
+
25
+ # load tokenizers
26
+ spm_path_en = 'Tokenizer/mix_en_spm.model'
27
+ spm_path_ur = 'Tokenizer/mix_ur_spm_rev.model'
28
+ sp_model_en, sp_model_ur = load_sp_model(path_en,path_ur)
29
+
30
+ # load the transformer models
31
+ E2U_model = load_transformer('T_mix_E2U_weights/T_mix_E2U.tf', config)
32
+ U2E_model = load_transformer('T_mix_U2E_weights/T_mix_U2E.tf', config)
33
+
34
+ E2U_translator = Translator(sp_model_ur, sp_model_en, transformer_model)
35
+ U2E_translator = Translator(sp_model_en, sp_model_ur, transformer_model)
36
+
37
+ def translate(inp, direction):
38
+ if direction == 'en->ur':
39
+ # Translate from English to Urdu
40
+ translated_text = E2U_translator(inp)
41
+ else direction == 'ur->en':
42
+ # Translate from Urdu to English
43
+ translated_text = U2E_translator(inp)
44
+
45
+ return translated_text
46
+
47
+
48
+ description = """
49
+ <p>
50
+ <center>
51
+ This app is built as part of an MS project, the app leverages advanced Transformer models and custom-trained tokenizers to deliver accurate and context-aware translations
52
+ </center>
53
+ </p>
54
+ """
55
+ article = "<p style='text-align: center'><a href='https://www.linkedin.com/in/syedhuzaifanafees/' target='_blank'>by Syed Huzaifa Nafees</a> | <a href='https://www.linkedin.com/in/shaider/' target='_blank'>Supervisor: Dr. Sajjad Haider</a> | Contact: <a href='mailto:huzaifahtu@gmail.com' target='_blank'>Huzaifa</a></p></center></p>"
56
+ examples = [
57
+ ["This is a cool application", "en->ur"],
58
+ ["آج اچھا دن ہے", "ur->en"]
59
+ ]
60
+ iface = gr.Interface(
61
+ fn=translate,
62
+
63
+ title="English-Urdu Translation",
64
+ description=description,
65
+ article=article,
66
+ examples=examples,
67
+ inputs=[
68
+ gr.inputs.Textbox(lines=5, placeholder="Enter text (maximum 35 words)", label="Input"),
69
+ gr.inputs.Radio(
70
+ choices=[
71
+ 'en->ur',
72
+ 'ur->en'],
73
+ default='en->ur',
74
+ label='Direction'),
75
+ ],
76
+ outputs="text")
77
+
78
+ iface.launch(enable_queue=True)