# 🌿 Assistant Vocal Oléicole en Darija
## 🎯 Mission Étudiant
Assistant multimodal qui répond en arabe tunisien aux questions des oléiculteurs, en se basant **strictement** sur :
- Corpus PDF officiel (FAO, EPPO, CIHEAM)
- Classifieur de maladies de feuille d'olivier
- **Anti-hallucination** : Refuse de répondre si l'information n'est pas dans le corpus
## ✅ Fonctionnalités Implémentées
### 📱 Application Mobile PWA
- **📸 Capture photo** : Classification maladies olivier (CNN 6 classes)
- **🎤 Voice Recognition** : Whisper transcription darija tunisien
- **🔍 Recherche RAG** : Corpus arabe + LLM sécurisé
- **🔊 Synthèse vocale** : Réponses en darija
- **🛡️ Garde-fou** : Refus hors-corpus
### đź§ Technologies
- **Backend** : FastAPI + Python 3.13
- **Vision** : ResNet34 CNN (79.47% accuracy)
- **ASR** : Whisper-small (modèle arabe optimisé)
- **RAG** : LLM Flan-T5 + corpus arabe
- **TTS** : Synthèse vocale arabe
- **Frontend** : PWA HTML5 + JavaScript
## 🏗️ Architecture Actuelle
```
├── backend/ # API FastAPI
│ ├── api/ # Endpoints REST
│ │ ├── vision_api.py # CNN classification (6 classes)
│ │ ├── asr_api.py # Whisper transcription
│ │ ├── llm_rag_final.py # RAG + LLM sécurisé
│ │ └── tts_api.py # Synthèse vocale
│ ├── models/ # Modèles entraînés
│ └── main.py # Point d'entrée API
├── mobile_app/ # PWA HTML5
│ ├── index.html # Interface mobile
│ ├── style.css # Design responsive
│ └── script.js # Logique frontend
├── data/ # Données
│ ├── corpus/ # Corpus arabe
│ │ └── chunks/ # Chunks traités
│ └── models/ # CNN entraîné
└── scripts/ # Utilitaires
├── create_arabic_corpus.py
├── download_complete_corpus.py
└── jury_validation_test.py
```
## 🚀 Installation et Démarrage
### Prérequis
- Python 3.13+
- Navigateur moderne (Chrome/Firefox)
### Installation
`` …