Spaces:
Sleeping
Sleeping
| import torch | |
| import gradio as gr | |
| from transformers import pipeline | |
| # Use a pipeline as a high-level helper | |
| from transformers import pipeline | |
| # model_path = ("../Models/models--Helsinki-NLP--opus-mt-en-de/snapshots" | |
| # "/6183067f769a302e3861815543b9f312c71b0ca4") | |
| pipe = pipeline("translation", model="Helsinki-NLP/opus-mt-en-de") | |
| # text_translator = pipeline("translation", model=model_path, tokenizer=model_path) | |
| def translate_text(text, destination_language): | |
| # German uses your preloaded local snapshot | |
| if destination_language == "German": | |
| out = text_translator(text) | |
| return out[0]["translation_text"] | |
| # For other targets we load the correct Marian model on demand (EN -> target) | |
| if destination_language == "French": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-fr") | |
| elif destination_language == "Hindi": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-hi") | |
| elif destination_language == "Romanian": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ro") | |
| elif destination_language == "Spanish": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es") | |
| elif destination_language == "Italian": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-it") | |
| elif destination_language == "Portuguese": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-pt") | |
| elif destination_language == "Russian": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ru") | |
| elif destination_language == "Japanese": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ja") | |
| elif destination_language == "Korean": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ko") | |
| elif destination_language == "Chinese": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-zh") | |
| elif destination_language == "Arabic": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ar") | |
| elif destination_language == "Turkish": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-tr") | |
| elif destination_language == "Dutch": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-nl") | |
| elif destination_language == "Polish": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-pl") | |
| elif destination_language == "Ukrainian": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-uk") | |
| elif destination_language == "Czech": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-cs") | |
| elif destination_language == "Swedish": | |
| p = pipeline("translation", model="Helsinki-NLP/opus-mt-en-sv") | |
| else: | |
| return "Unsupported language. Please choose a listed destination." | |
| out = p(text) # Marian pipeline returns a list of dicts | |
| return out[0]["translation_text"] | |
| gr.close_all() | |
| demo = gr.Interface( | |
| fn=translate_text, | |
| inputs=[ | |
| gr.Textbox(label="Input text to translate", lines=6), | |
| gr.Dropdown( | |
| [ | |
| "German", "French", "Hindi", "Romanian", "Spanish", "Italian", | |
| "Portuguese", "Russian", "Japanese", "Korean", "Chinese", | |
| "Arabic", "Turkish", "Dutch", "Polish", "Ukrainian", "Czech", "Swedish" | |
| ], | |
| label="Select Destination Language" | |
| ) | |
| ], | |
| outputs=[gr.Textbox(label="Translated text", lines=4)], | |
| title="@SahibhimGenAI Project 4: Multi language translator", | |
| description="Translate English text to your selected language (loads the appropriate MarianMT model per language)." | |
| ) | |
| demo.launch() | |