Spaces:
Sleeping
Sleeping
import torch | |
import streamlit as st | |
from model import init_model, predict | |
from data import Tokenizer, load_config, language_detect | |
MODEL_PATH_TJ_FA = 'tj-fa.pt' | |
MODEL_PATH_FA_TJ = 'fa-tj.pt' | |
config_tj_fa = load_config(MODEL_PATH_TJ_FA) | |
tokenizer_tj_fa = Tokenizer(config_tj_fa) | |
model_tj_fa = init_model(MODEL_PATH_TJ_FA) | |
config_fa_tj = load_config(MODEL_PATH_FA_TJ) | |
tokenizer_fa_tj = Tokenizer(config_fa_tj) | |
model_fa_tj = init_model(MODEL_PATH_FA_TJ) | |
user_input = st.text_area("Enter some text here", value="Он ҷо, ки висоли дӯстон аст,\nВ-оллоҳ, ки миёни хона саҳрост.") | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
# Detect language | |
detected_language = language_detect(user_input, tokenizer_tj_fa, tokenizer_fa_tj) | |
if detected_language == 'tj': | |
model = model_tj_fa | |
tokenizer = tokenizer_tj_fa | |
st.text('Detected language: Tajik (TJ) -> Transliterating to Persian (FA)') | |
else: | |
model = model_fa_tj | |
tokenizer = tokenizer_fa_tj | |
st.text('Detected language: Persian (FA) -> Transliterating to Tajik (TJ)') | |
# Run the model on the user's text and store the output | |
model_output = predict(model, tokenizer, user_input, device) | |
# Display the model's output in a text area box | |
st.text_area('Transliteration:', value=str(model_output), max_chars=None, key=None) | |