Logo Lanfrica

MoazReda/franco-translator-app

Domaine:

natural language processing

Type de record:

softwaremodel
Créateur:
Moa
Hôte:
On-device Egyptian Franco-to-Arabic translator (Flutter + ONNX) # Franco → Arabic Translator A mobile app that transliterates **Egyptian Franco-Arabic** (Arabic written in Latin letters and numbers, e.g. `3ayez` → `عايز`) into Arabic script — running a custom neural model **fully on-device and offline**. The translation model was trained from scratch. This repo is the Flutter app that deploys it. The model, training pipeline, and evaluation live in a separate repo: **franco-arabic-translator**. ## Demo `ezayak ya sa7by` → `ازيك يا صاحبي` ## How it works The app runs the model on the phone with no server and no internet connection: Franco text → tokenizer (Dart) → [sos, ids..., eos] (int64) → ONNX Runtime → tokens (greedy decode) → detokenizer (Dart) → Arabic text The greedy decoding loop is baked into the exported ONNX graph, so a full translation is a single inference call from Dart. ## The model - **Architecture:** character-level seq2seq — bidirectional GRU encoder + Bahdanau attention + GRU decoder (~1.7M parameters) - **Framework:** trained in PyTorch, exported to ONNX for mobile - **Performance:** CER 0.207 on a diverse human-written test set - **Size:** ~7 MB (fp32), bundled directly in the app ## Tech stack - **Flutter** (Dart) — cross-platform UI, Android-first - **flutter_onnxruntime** — on-device inference - **ONNX Runtime** — runs the exported PyTorch model ## Running locally ```bash git clone git@github.com:MoazReda/franco-translator-app.git cd franco-translator-app flutter pub get flutter run ``` Requires Flutter (3.47+) and an Android device or emulator. ## Roadmap - [x] On-device franco → Arabic translation - [ ] Android Process Text action — translate selected text in any app (WhatsApp, Instagram…) without opening the app - [ ] Translation history, dark mode, alternative translations ## Author **Moaz Elkhashab** — GitHub