Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import pipeline | |
# Create a translation pipeline | |
model_name = "facebook/nllb-200-1.3B" | |
translator = pipeline("translation", model=model_name) | |
# Define available languages | |
languages = { | |
"English": "eng_Latn", | |
"French": "fra_Latn", | |
"Spanish": "spa_Latn", | |
"German": "deu_Latn", | |
"Chinese": "zho_Hans", | |
"Arabic": "ara_Arab", | |
"Russian": "rus_Cyrl", | |
"Hindi": "hin_Deva", | |
"Japanese": "jpn_Jpan" | |
} | |
def translate(text, source_lang, target_lang): | |
if not text: | |
return "" | |
source_code = languages.get(source_lang) | |
target_code = languages.get(target_lang) | |
# NLLB requires specific format for translation | |
translation = translator( | |
text, | |
src_lang=source_code, | |
tgt_lang=target_code, | |
max_length=400 | |
) | |
return translation[0]["translation_text"] | |
# Create the Gradio interface | |
demo = gr.Interface( | |
fn=translate, | |
inputs=[ | |
gr.Textbox(label="Input Text", lines=5), | |
gr.Dropdown(list(languages.keys()), label="Source Language", value="English"), | |
gr.Dropdown(list(languages.keys()), label="Target Language", value="French") | |
], | |
outputs=gr.Textbox(label="Translated Text", lines=5), | |
title="NLLB-200 Multilingual Translation", | |
description="Translate text between multiple languages using Facebook's NLLB-200 model." | |
) | |
if __name__ == "__main__": | |
demo.launch() |