Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import time | |
| import nltk | |
| from easynmt import EasyNMT | |
| model = EasyNMT('opus-mt') | |
| nltk.download('punkt_tab') | |
| def translate(text: str, source_lang, target_lang): | |
| start_time = time.time() | |
| # TODO: have direct en -> pl | |
| if source_lang == "en" and target_lang == "pl": # temporary workaround because opus-mt does not support english to polish directly | |
| return translate(translate(text, source_lang="en", target_lang="de"), source_lang="de", target_lang="pl") | |
| translation = model.translate(text, target_lang=target_lang, source_lang=source_lang) | |
| end_time = time.time() | |
| duration = end_time - start_time | |
| print(f"Translated {source_lang} -> {target_lang} in {str(round(duration, 2))} seconds:") | |
| print(f"\t{text} [original]") | |
| print(f"\t{translation} [translation]") | |
| print() | |
| return translation | |
| languages = ["en", "fr", "pl", "nl", "de", "es"] | |
| iface = gr.Interface( | |
| fn=translate, | |
| inputs=[ | |
| "text", | |
| gr.Dropdown(languages, label="source language"), | |
| gr.Dropdown(languages, label="target language"), | |
| ], | |
| outputs="text" | |
| ) | |
| iface.launch() | |