Language_translator / untitled4.py
Ank-067's picture
Upload 3 files
16afa32 verified
# -*- 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()