huzaifanafees's picture
Update app.py
1ed6d3d
raw
history blame
2.36 kB
import os
import h5py
from config import config
import tensorflow as tf
from transformer import Transformer
from translator import Translator
from load_model import load_transformer, load_sp_model, load_emb
import gradio as gr
# load the embedding matrix
eng_emb_path = 'Embedding_matrix/en_embedding_matrix.h5'
ur_emb_path = 'Embedding_matrix/ur_embedding_matrix.h5'
eng_embedding_matrix = load_emb(eng_emb_path)
urdu_embedding_matrix = load_emb(ur_emb_path)
# load tokenizers
spm_path_en = 'Tokenizer/mix_en_spm.model'
spm_path_ur = 'Tokenizer/mix_ur_spm_rev.model'
sp_model_en, sp_model_ur = load_sp_model(spm_path_en,spm_path_ur)
# load the transformer models
E2U_model = load_transformer(eng_embedding_matrix,urdu_embedding_matrix,'T_mix_E2U_weights/T_mix_E2U.tf', config)
U2E_model = load_transformer(urdu_embedding_matrix,eng_embedding_matrix,'T_mix_U2E_weights/T_mix_U2E.tf', config)
U2E_translator = Translator(sp_model_ur, sp_model_en, U2E_model)
E2U_translator = Translator(sp_model_en, sp_model_ur, E2U_model)
def translate(inp, direction):
if direction == 'en->ur':
# Translate from English to Urdu
translated_text = E2U_translator(inp)
else:
# Translate from Urdu to English
translated_text = U2E_translator(inp)
return translated_text
description = """
<p>
<center>
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
</center>
</p>
"""
article = "<p style='text-align: center'>Created by: <a href='https://www.linkedin.com/in/syedhuzaifanafees/' target='_blank'>Syed Huzaifa Nafees</a> | Supervisor: <a href='https://www.linkedin.com/in/shaider/' target='_blank'>Dr. Sajjad Haider</a> | Contact: <a href='mailto:huzaifahtu@gmail.com' target='_blank'>Huzaifa</a></p></center></p>"
examples = [
["the weather is good today", "en->ur"],
["آج اچھا دن ہے", "ur->en"]
]
iface = gr.Interface(
fn=translate,
title="English-Urdu Translation",
description=description,
article=article,
examples=examples,
inputs=[gr.Textbox(lines=5, placeholder="Enter text (maximum 35 words)", label="Input"),
gr.Radio(choices=['en->ur','ur->en'], value='en->ur', label='Select the direction of translation'),],
outputs="text")
iface.launch()