Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, pipeline | |
| # Define available languages with their corresponding model suffixes | |
| languages = { | |
| "english": "en", | |
| "spanish": "es", | |
| "french": "fr", | |
| "german": "de", | |
| "chinese": "zh", | |
| "japanese": "ja", | |
| "korean": "ko", | |
| "italian": "it", | |
| "portuguese": "pt", | |
| "russian": "ru", | |
| "hindi": "hi", | |
| "arabic": "ar", | |
| "dutch": "nl", | |
| "turkish": "tr", | |
| "greek": "el", | |
| "urdu": "ur" | |
| } | |
| # Define the translation function | |
| def translate_text(text, target_language): | |
| # Get the correct model name based on the target language | |
| target_language_code = languages.get(target_language.lower()) | |
| if target_language_code: | |
| model_name = f"Helsinki-NLP/opus-mt-en-{target_language_code}" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForSeq2SeqLM.from_pretrained(model_name) | |
| translator = pipeline("translation", model=model, tokenizer=tokenizer) | |
| translation = translator(text)[0]['translation_text'] | |
| return translation | |
| else: | |
| return "Error: Language not supported or incorrect." | |
| # Set up the Gradio interface with a submit button and side-by-side layout | |
| with gr.Blocks() as iface: | |
| gr.Markdown("# Text Translator") | |
| gr.Markdown("Translate text into multiple languages using Hugging Face models.") | |
| # Create a row for input and output | |
| with gr.Row(): | |
| # Input components on the left | |
| with gr.Column(scale=1): # This column is smaller | |
| text_input = gr.Textbox(label="Enter text to translate") | |
| language_dropdown = gr.Dropdown(list(languages.keys()), label="Target Language", type="value") | |
| # Output components on the right | |
| with gr.Column(scale=1): # This column is also smaller | |
| translation_output = gr.Textbox(label="Translation", interactive=False) | |
| # Button to submit the translation | |
| submit_button = gr.Button("Translate") | |
| # When button is clicked, trigger the translation | |
| submit_button.click(fn=translate_text, inputs=[text_input, language_dropdown], outputs=translation_output) | |
| iface.launch() | |