File size: 3,298 Bytes
615b306
f034653
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
## 🔁 PROJET EN COURS DE DEVELOPPEMENT

Ce pipeline permet de traiter automatiquement les interactions des clients d’un centre d’appel en **Darija**, que ce soit en **texte (lettres latines)** ou en **audio (voix parlée)**. Il combine des modèles de reconnaissance vocale, de traduction, de classification, de génération intelligente de réponse, et de recherche d'information.

---

### 1. **Entrée utilisateur**

- Le client peut envoyer :
    - Un **message texte** en Darija (lettres latines)
    - Un **message vocal** en Darija parlé

---

### 2. **Transcription audio (le cas échéant)**

- Si le message est un **audio**, il est transcrit automatiquement en texte Darija grâce au modèle :
    - **`asr-wav2vec2-dvoice-darija`**
    - Architecture : `wav2vec 2.0 + CTC/Attention`
    - Performance :
        - **WER (Word Error Rate)** : 18.28% (paaaas maaaal)
        - **CER (Character Error Rate)** : 5.85%(granularité mzyana des caracteres)

---

### 3. **Traduction Darija → Anglais**

- Le texte en Darija (issu d’un audio ou d’un message texte) est **traduit en anglais** via :
    - **`lachkarsalim/LatinDarija_English-v2`**

---

### 4. **Classification du besoin client (Zero-Shot)== je peux laisser tomber cette partie**

- Le texte traduit en anglais est classifié selon une liste de catégories métiers :
    - Exemples de catégories :
        - Billing Problem
        - Technical Support
        - Refund Request
        - Subscription Cancellation
    - Modèle utilisé : **`typeform/distilbert-base-uncased-mnli` or better**
    - Type : zero-shot classification → pas besoin d’entraîner le modèle sur nos propres données

---

### 5. **Recherche d'information (RAG – Retrieval-Augmented Generation)**

- En fonction du label prédit, le système effectue une **recherche d'information intelligente** dans :
    - une **base documentaire FAQ**
    - des **guides internes**
    - ou des **scripts de support technique**
- Le contenu extrait sert à **nourrir** le modèle génératif dans l’étape suivante
- Faut chercher comment collecter ses bases données/ synthéthique

---

### 6. **Génération de la réponse intelligente**

- La réponse est **générée de façon contextualisée** par un LLM (type GPT ……) :
    - Comprend la situation client
    - Pose éventuellement des **questions supplémentaires**
    - Donne des **instructions précises** (ex : réinitialiser le modem, vérifier la box…)
    - Avantage : la réponse est **adaptée et non mécanique**

---

### 7. **Traduction de la réponse (Anglais → Darija)**

- La réponse finale est **traduite en Darija lettres latines** pour que le client la comprenne facilement.
- Ou bien la réponse aura un fallback en francais ou en arabe normale

---

### 8. **Sortie finale**

- Le client reçoit une réponse :
    - claire
    - personnalisée
    - dans sa **langue et alphabet**

---

### 🔧 Technologies utilisées

| Étape | Modèle / Composant |
| --- | --- |
| ASR Darija | `asr-wav2vec2-dvoice-darija` |
| Traduction | `lachkarsalim/LatinDarija_English-v2` |
| Classification | `typeform/distilbert-base-uncased-mnli` |
| RAG | Base documentaire + vecteurs |
| Génération | GPT-like LLM |
| Déploiement | FastAPI + Docker/Hugging Face Spaces |