Translator / app.py
gmustafa413's picture
Update app.py
6858175 verified
import gradio as gr
from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
# Initialize model and tokenizer at startup
model = M2M100ForConditionalGeneration.from_pretrained("facebook/m2m100_418M")
tokenizer = M2M100Tokenizer.from_pretrained("facebook/m2m100_418M")
LANGUAGES = {
"English": "en",
"Spanish": "es",
"French": "fr",
"German": "de",
"Chinese": "zh",
"Hindi": "hi",
"Punjabi": "pa",
"Arabic": "ar",
"Japanese": "ja",
"Urdu": "ur",
}
def translate(text, target_lang):
if not text.strip():
return "Please enter text to translate"
try:
tokenizer.tgt_lang = LANGUAGES[target_lang]
encoded = tokenizer(text, return_tensors="pt")
generated_tokens = model.generate(
**encoded,
forced_bos_token_id=tokenizer.get_lang_id(LANGUAGES[target_lang]),
max_length=400 # Added for safety
)
return tokenizer.decode(generated_tokens[0], skip_special_tokens=True)
except KeyError:
return "Selected language not supported"
except Exception as e:
return f"Error: {str(e)}"
# Create interface with Hugging Face optimized settings
demo = gr.Interface(
fn=translate,
inputs=[
gr.Textbox(label="Input Text", placeholder="Enter text to translate...", lines=3),
gr.Dropdown(list(LANGUAGES.keys())
],
outputs=gr.Textbox(label="Translation", lines=8),
title="๐ŸŒ Universal Translator",
description="Human Language Translator Created By _____________",
allow_flagging="never"
)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)