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 including Kinyarwanda | |
| 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", | |
| "Kinyarwanda": "kin_Latn" | |
| } | |
| 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() | |