|
import gradio as gr |
|
from core import translate_tamil_to_english, generate_image, generate_creative_text |
|
|
|
def full_pipeline(tamil_text, reference_text=None): |
|
if not tamil_text.strip(): |
|
return "Please enter Tamil text.", None, None, None, None, None, None, None, None |
|
|
|
|
|
en_text, t_time, rouge_score = translate_tamil_to_english(tamil_text, reference_text) |
|
|
|
|
|
image_path, img_time = generate_image(en_text) |
|
|
|
|
|
gen_text, gen_time, tokens, rep = generate_creative_text(en_text) |
|
|
|
return en_text, t_time, rouge_score, image_path, img_time, gen_text, gen_time, tokens, rep |
|
|
|
|
|
demo = gr.Interface( |
|
fn=full_pipeline, |
|
inputs=[ |
|
gr.Textbox(label="✍️ Enter Tamil Text", lines=5, placeholder="எனது கனவு வீட்டை வர்ணிக்க..."), |
|
gr.Textbox(label="📘 (Optional) Reference English Translation", lines=2) |
|
], |
|
outputs=[ |
|
gr.Textbox(label="📝 English Translation"), |
|
gr.Number(label="⏱️ Translation Time (s)"), |
|
gr.Number(label="📊 ROUGE-L Score"), |
|
gr.Image(label="🎨 Generated Image (256x256)"), |
|
gr.Number(label="🖼️ Image Generation Time (s)"), |
|
gr.Textbox(label="💡 Creative English Text"), |
|
gr.Number(label="🕒 Text Generation Time (s)"), |
|
gr.Number(label="🔢 Number of Tokens"), |
|
gr.Number(label="♻️ Repetition Rate") |
|
], |
|
title="🌐 Tamil to English Translator + Image & Text Generator", |
|
description="Translate Tamil to English using MBart50 → Generate AI Image using StabilityAI → Generate Creative Text using GPT-2", |
|
theme="soft", |
|
allow_flagging="never" |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |
|
|