import gradio as gr from transformers import pipeline # Load model once model = pipeline("text2text-generation", model = "crossroderick/dalat5") def transliterate(text: str) -> str: """ Prediction function. """ if text.strip() == "": return "" input_text = f"Cyrillic2Latin: {text.strip()}" output = model(input_text, max_length = 128, do_sample = False)[0]["generated_text"] return output.strip() # HTML code for the description description_html = """

Қазақша (KZ)


DalaT5 - кириллицада жазылған табиғи қазақ тілін еркін латын графикасына ауыстыру үшін дайындалған T5 негізіндегі модель, Қазақстанның 2021 жылғы ресми әліпби реформасына негізделген.
Бұл модель құрмет пен қызығушылықтың мәдени қимылы ретінде ұсынылады. Ол қазіргі қазақ тілін бүгінгі адамдар қалай жазады, солай қабылдайды - және оның болашағының тілінде жауап береді.

English (EN)


DalaT5 is a T5-based model trained to convert natural Kazakh written in Cyrillic into fluent Latin script, based on the official 2021 alphabet reform of Kazakhstan.
This model is offered as a cultural gesture of respect and curiosity. It accepts modern Kazakh as people write it today - and answers in the language of its future.

🧠 Model page | 🔤 Kazakhstan 2021 alphabet reform


Егер сіз үлес қосқыңыз, бірлесіп жұмыс жасағыңыз немесе жай ғана пікір бөліскіңіз келсе – байланысыңыз / If you'd like to contribute, collaborate, or just share feedback – feel free to connect with Rodrigo Pereira Cruz. 🇧🇷🇰🇿

""" # Custom CSS description_css = """ .flip-card { position: relative; display: flex; justify-content: center; align-items: center; background-color: transparent; width: 100%; max-width: 900px; height: 250px; margin: 0 auto 2rem auto; overflow: hidden; } .flip-card-inner { position: relative; width: 95%; height: 99%; transition: transform 0.8s; display: flex; justify-content: center; align-items: center; transform-style: preserve-3d; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 15px; z-index: 1; } .flip-card .flip-card-inner .EN, .flip-card .flip-card-inner .KZ { position: absolute; top: 10px; right: 10px; background: none; border: 1px solid white; padding: 6px; border-radius: 5px; font-weight: bold; cursor: pointer; transition: 0.5s; z-index: 3; } .flip-card .flip-card-inner .EN:hover, .flip-card .flip-card-inner .KZ:hover { box-shadow: 5px 5px white; top: 13px; right: 13px; } .flip-card-inner.flipped { transform: rotateY(180deg); } .flip-card-front, .flip-card-back { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; background-color: transparent; color: inherit; font-size: 16px; display: flex; flex-direction: column; justify-content: center; align-items: center; } .flip-card-front p, .flip-card-back p{ display: flex; justify-content: center; align-items: center; flex-direction: column; } .flip-card-front p span, .flip-card-back p span { width: 95%; margin: 0 10px; } .flip-card-back { transform: rotateY(180deg); } a { color: inherit; text-decoration: underline; } .lg.primary { background: #00AFC3; } """ # Interface with gr.Blocks(css = description_css) as demo: gr.HTML("

🇰🇿 DalaT5

Қазақша кириллица → латын графикасының транслитераторы

Kazakh Cyrillic → Latin Script Transliterator

") gr.Image( value = "./img/line_sep.png", show_label = False, width = 800, height = 40, show_download_button = False, show_fullscreen_button = False, show_share_button = False ) gr.HTML(description_html) gr.Interface( fn = transliterate, inputs = gr.Textbox( label = "Қазақ тілінде теріңіз (кириллица) / Type in Kazakh (Cyrillic script)", placeholder = "Мен қазақ тілінде сөйлеймін.", lines = 6 ), outputs = gr.Textbox( label = "Латын графикасының шығуы / Latin script output", ), theme = "default", flagging_mode = "never" ) if __name__ == "__main__": demo.queue(default_concurrency_limit = 2) demo.launch()