Application web de reconnaissance de la Langue des Signes Marocaine vers texte et voix en Darija
# OpenSign Darija
OpenSign Darija is a local research prototype for anonymous Moroccan Sign Language
isolated-word recognition. The current product is intentionally narrow: one browser
camera loop, one protected local ONNX model package, Arabic/Darija display, and
known-result speech.
It is not a certified interpreter and is not production-ready.
## User flow
```text
Activate camera
→ browser MediaPipe
→ automatic sign start/end detection
→ 60 × 75 × 3 landmark sequence
→ public FastAPI API through /api
→ internal ONNX inference
→ Arabic/Darija result or UNKNOWN
→ automatic speech for known results only
→ cooldown
→ wait for the next sign
```
There are no login screens, admin panels, public dataset imports, manual capture
controls, model selectors, PostgreSQL, Redis, or MinIO in the active runtime.
## Privacy model
Camera pixels stay in the browser. The browser sends only finite normalized landmarks,
presence masks, segmentation metadata, and aggregate quality values to the public API.
The browser must never send raw video, images, screenshots, canvas exports, base64 camera
payloads, microphone audio, or arbitrary text-to-speech input. It calls only same-origin
`/api` routes; inference and speech services are private Docker-network services.
## Active vocabulary and limits
The active model recognizes only three unambiguous lexical labels:
- `اب` — `أَبٌ`
- `احب` — `أَحَبَّ`
- `سوق` — `سُوقٌ`
UNKNOWN rejection is calibrated but limited. The held-out active test set has only three
known examples and OOV false acceptance remains high, so the model is a local baseline,
not a safety guarantee.
## Repository structure
```text
.agent/ Codex continuity notes for this workspace
.github/ CI workflows and community files
apps/web/ React/Vite browser recognition app
artifacts/ Local generated reports and protected model packages
docs/ Architecture, operations, datasets, model cards, tests, reports
infrastructure/ Nginx pub …