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) | |