CoolFace
Apppublic

HumorHarmony/Darija

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes
app.py83 linesDownload Raw Back to root
1# ============================================2# INSTALL GRADIO3# ============================================4!pip install gradio -q5 6import gradio as gr7 8# ============================================9# GRADIO INTERFACE10# ============================================11 12def translate_interface(darija_text, target_language):13    """14    Interface function for Gradio15    """16    if not darija_text.strip():17        return "⚠️ Please enter some Darija text!"18    19    try:20        # Step 1: Darija → English21        inputs_d2e = tokenizer_d2e(darija_text, return_tensors="pt", padding=True)22        if torch.cuda.is_available():23            inputs_d2e = {k: v.to('cuda') for k, v in inputs_d2e.items()}24        25        outputs_d2e = model_d2e.generate(26            **inputs_d2e,27            forced_bos_token_id=tokenizer_d2e.lang_code_to_id["en_XX"],28            max_length=128,29            num_beams=530        )31        english_text = tokenizer_d2e.decode(outputs_d2e[0], skip_special_tokens=True)32        33        # Step 2: English → Arabic (if selected)34        if target_language == "Arabic":35            inputs_e2ar = tokenizer_e2ar(english_text, return_tensors="pt", padding=True)36            if torch.cuda.is_available():37                inputs_e2ar = {k: v.to('cuda') for k, v in inputs_e2ar.items()}38            39            outputs_e2ar = model_e2ar.generate(**inputs_e2ar, max_length=128, num_beams=5)40            arabic_text = tokenizer_e2ar.decode(outputs_e2ar[0], skip_special_tokens=True)41            42            return f"🇬🇧 English: {english_text}\n\n🇸🇦 Arabic: {arabic_text}"43        else:44            return f"🇬🇧 English: {english_text}"45    46    except Exception as e:47        return f"❌ Error: {str(e)}"48 49 50# ============================================51# CREATE GRADIO APP52# ============================================53 54demo = gr.Interface(55    fn=translate_interface,56    inputs=[57        gr.Textbox(58            label="Enter Darija Text", 59            placeholder="واش نتا مزيان؟",60            lines=3,61            rtl=True  # Right-to-left for Arabic script62        ),63        gr.Radio(64            choices=["English", "Arabic"], 65            label="Target Language",66            value="English"67        )68    ],69    outputs=gr.Textbox(label="Translation", lines=5),70    title="🇲🇦 Darija Translator",71    description="Translate Moroccan Darija to English or Arabic",72    examples=[73        ["واش نتا مزيان؟", "English"],74        ["أنا جيت من الدار", "Arabic"],75        ["شحال الساعة دابا؟", "English"],76        ["بغيت نمشي للسوق", "Arabic"],77        ["الطقس اليوم بارد بزاف", "English"]78    ],79    theme="soft"80)81 82# Launch the app83demo.launch(share=True)  # share=True creates public link