Spaces:
Sleeping
Sleeping
File size: 2,478 Bytes
fd89216 10fe3cf ea5da31 10fe3cf ec21afd 09d6a1f 10fe3cf 09d6a1f 10fe3cf 09d6a1f 10fe3cf 09d6a1f 10fe3cf ea5da31 10fe3cf ea5da31 10fe3cf 09d6a1f 10fe3cf e66e316 09d6a1f 10fe3cf b08e390 10fe3cf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
import os
import gradio as gr
from transformers import pipeline
# === Load Hugging Face token (only needed if Space is private) ===
auth_token = os.getenv("HF_API_TOKEN")
# === Choose your model (pick one that works best for you) ===
MODEL_NAME = "Helsinki-NLP/opus-mt-en-bn" # English β Bengali
# MODEL_NAME = "shhossain/opus-mt-en-to-bn" # Alternate
# MODEL_NAME = "facebook/nllb-200-distilled-600M" # Multi-language
# === Load translation pipeline ===
try:
translator = pipeline(
"translation",
model=MODEL_NAME,
token=auth_token # Works for private Spaces
)
except Exception as e:
translator = None
print("β Error loading model:", e)
# === Define translation function ===
def translate_text(text, direction):
if not translator:
return "β οΈ Model not loaded. Check HF_API_TOKEN for private Spaces."
try:
if direction == "English β Bengali":
result = translator(text, src="en", tgt="bn")
elif direction == "Bengali β English":
# For reverse, swap model if needed
rev_translator = pipeline(
"translation",
model="Helsinki-NLP/opus-mt-bn-en",
token=auth_token
)
result = rev_translator(text)
else:
return "β οΈ Unknown direction."
return result[0]['translation_text']
except Exception as e:
return f"β οΈ Translation failed: {str(e)}"
# === Gradio UI ===
with gr.Blocks(title="Private English β Bengali Translator") as demo:
gr.Markdown("## π English β Bengali Translator (Private Space Ready)")
with gr.Row():
with gr.Column():
input_text = gr.Textbox(
label="Enter text",
placeholder="Type here...",
lines=5
)
direction = gr.Radio(
["English β Bengali", "Bengali β English"],
value="English β Bengali",
label="Select Translation Direction"
)
translate_btn = gr.Button("Translate", variant="primary")
with gr.Column():
output_text = gr.Textbox(
label="Translation Result",
lines=5
)
translate_btn.click(
fn=translate_text,
inputs=[input_text, direction],
outputs=[output_text]
)
# === Launch app ===
if __name__ == "__main__":
demo.launch() |