Spaces:
No application file
No application file
| # -*- coding: utf-8 -*- | |
| """Untitled4.ipynb | |
| Automatically generated by Colab. | |
| Original file is located at | |
| https://colab.research.google.com/drive/1tC3Zqo0dc6hrck0oxp5luNsOywKjdSGc | |
| """ | |
| !pip install transformers gradio | |
| from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
| import gradio as gr | |
| LANGUAGES = { | |
| 'en-fr': 'Helsinki-NLP/opus-mt-en-fr', | |
| 'en-es': 'Helsinki-NLP/opus-mt-en-es', | |
| 'en-de': 'Helsinki-NLP/opus-mt-en-de', | |
| 'fr-en': 'Helsinki-NLP/opus-mt-fr-en', | |
| 'es-en': 'Helsinki-NLP/opus-mt-es-en' | |
| } | |
| def load_model(lang_pair): | |
| model_name = LANGUAGES.get(lang_pair) | |
| if model_name: | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForSeq2SeqLM.from_pretrained(model_name) | |
| return tokenizer, model | |
| else: | |
| return None, None | |
| def translate_text(text, lang_pair='en-fr'): | |
| tokenizer, model = load_model(lang_pair) | |
| if tokenizer and model: | |
| inputs = tokenizer.encode(text, return_tensors="pt", max_length=512, truncation=True) | |
| outputs = model.generate(inputs, max_length=512, num_beams=4, early_stopping=True) | |
| return tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| else: | |
| return "Language pair not supported" | |
| # Gradio interface for language pair selection and translation | |
| def translate_interface(input_text, lang_pair='en-fr'): | |
| return translate_text(input_text, lang_pair) | |
| # Define the Gradio interface | |
| interface = gr.Interface( | |
| fn=translate_interface, | |
| inputs=[gr.Textbox(label="Input Text"), gr.Dropdown(choices=list(LANGUAGES.keys()), label="Select Language Pair")], | |
| outputs="text", | |
| title="Multilingual Translator", | |
| description="Translate text between various languages using Hugging Face models." | |
| ) | |
| if __name__ == "__main__": | |
| interface.launch() |