Logo Lanfrica

achrafzahid/sowelni

Domaine:

natural language processing

Type de record:

softwaremodel
Créateur:
ach
Hôte:
Real-time Moroccan Darija Speech-to-Text transcriber and LLM assistant. Built with an Angular frontend, FastAPI Python backend, and a fine-tuned Qwen3-ASR model via streaming WebSockets. Fully containerized with Docker. # Sowelni · سولني **A real-time voice assistant that actually understands Moroccan Darija.** *sowelni* (سولني) — Darija for **"ask me."** --- ## Why this exists Moroccan Darija is the first language of roughly 40 million people. It's also one of the most underserved dialects in commercial speech recognition. Google, Amazon, and Microsoft all offer "Arabic" — but they offer it as Modern Standard Arabic with a side of Gulf, and the result on Darija is somewhere between frustrating and unusable. The dialect's French, Amazigh, and Spanish loanwords, its lack of orthographic standardization, and its strong regional variation all break models trained on textbook Arabic. Sowelni closes that gap. It's a complete, locally-runnable voice assistant built on a fine-tuned Qwen3-ASR-0.6B model, wrapped in a streaming WebSocket pipeline, and surfaced through a Moroccan-inflected Angular interface. You speak Darija into your browser, the audio rides a WebSocket to a Python backend running the ASR model on your GPU, the transcript flows through an LLM, and the answer streams back token by token. The full audio path never leaves your machine. --- ## What you get ``` ╭────────────────────╮ ╭─────────────────────────────────╮ │ Browser (Ng 19) │ WebSocket │ Python Backend │ │ │ ◄═══════════► │ │ │ ┌──────────────┐ │ audio chunks │ ┌───────────┐ ┌───────────┐ │ │ │ MediaRecorder │──┼──────────────────►─┤ │ pydub / │──►│ Qwen3-ASR │ │ │ │ + AnalyserNode│ │ │ │ FFmpeg │ │ 0.6B GPU │ │ │ └──────────────┘ │ transcription │ └───────────┘ └─────┬─────┘ │ │ │ ◄────────────────┤ │ │ │ ┌──────────────┐ │ streamed tokens │ ┌───────────┐ │ │ │ │ Chat UI │◄─┼────────────────────┤ │ Gemini / │◄────────┘ │ │ │ (Signals) │ │ │ …