KoTAN / app.py
jisukim8873's picture
translation
0a7cea6
raw
history blame
1.93 kB
import os
import gradio as gr
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
en2ko = "KoJLabs/nllb-finetuned-en2ko"
ko2en = "KoJLabs/nllb-finetuned-ko2en"
style = "KoJLabs/bart-speech-style-converter"
en2ko_model = AutoModelForSeq2SeqLM.from_pretrained(en2ko)
ko2en_model = AutoModelForSeq2SeqLM.from_pretrained(ko2en)
style_model = AutoModelForSeq2SeqLM.from_pretrained(style)
en2ko_tokenizer = AutoTokenizer.from_pretrained(en2ko)
ko2en_tokenizer = AutoTokenizer.from_pretrained(ko2en)
style_tokenizer = AutoTokenizer.from_pretrained(style)
def translate(source, target, text):
formats = {"English":"eng_Latn", "Korean":"kor_Hang"}
src = formats[source]
tgt = formats[target]
if src == "eng_Latn":
translator = pipeline(
'translation',
model=en2ko_model,
tokenizer=ko2en_tokenizer,
src_lang=src,
tgt_lang=tgt,
)
if src == "kor_Hang":
translator = pipeline(
'translation',
model=ko2en_model,
tokenizer=en2ko_tokenizer,
src_lang=src,
tgt_lang=tgt
)
output = translator(text)
translated_text = output[0]['translation_text']
return translated_text
title = 'KoTAN Translator & Speech-style converter'
lang = ['English','Korean']
translator_app = gr.Interface(
fn=translate,
inputs=[gr.inputs.Dropdown(choices=lang, label='Source Language'), gr.inputs.Dropdown(choices=lang, label='Target Language'), gr.inputs.Textbox(lines=5, label='Text to Translate')],
outputs=[gr.outputs.Textbox(label='Translated Text')],
title=title,
description = 'KoTAN: Korean Translation and Augmentation with fine-tuned NLLB. If you want to download as pip package, please visit our github. (https://github.com/KoJLabs/KoTAN)',
article='Jisu, Kim. Juhwan, Lee',
enable_queue=True,
)
translator_app.launch()