Spaces:
Runtime error
Runtime error
File size: 3,321 Bytes
04bace6 52c2287 04bace6 52c2287 04bace6 52c2287 04bace6 52c2287 4b8348c 52c2287 | 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 | ---
title: CodeAlpha Language Translator
emoji: 🌐
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 8501
pinned: false
---
# 🌐 CodeAlpha_LanguageTranslator
Outil de traduction de texte réalisé dans le cadre du stage **Artificial Intelligence @ CodeAlpha** — Task 1.
## 🧠 Approche technique
Contrairement à une simple intégration d'API de traduction (Google Translate API, Microsoft Translator), ce projet
utilise un **véritable modèle de deep learning chargé et exécuté localement** via la librairie Hugging Face
`transformers` :
- **Modèle :** [`facebook/nllb-200-distilled-600M`](https://huggingface.co/facebook/nllb-200-distilled-600M)
(Meta AI — *No Language Left Behind*)
- **Architecture :** Transformer Seq2Seq (encoder-decoder), pré-entraîné
- **Particularité :** un seul modèle gère la traduction entre **~200 langues**, contrairement aux modèles
Helsinki-NLP/opus-mt qui nécessitent un modèle différent par paire de langues
- **Inférence :** chargement direct via `AutoTokenizer` + `AutoModelForSeq2SeqLM`, puis génération avec `model.generate(...)`, en local, sans dépendre d'une API tierce payante
Ce choix technique est plus proche de l'esprit "AI model development" du stage, car il implique le chargement,
la manipulation et l'inférence d'un vrai modèle de NLP, plutôt qu'un simple appel HTTP à un service externe.
## 🚀 Fonctionnalités
- Interface utilisateur simple (Streamlit) pour saisir du texte
- Sélection de la langue source (avec option de **détection automatique** via `langdetect`) et de la langue cible
(14 langues)
- Traduction via un modèle NLLB-200 chargé localement (`transformers`)
- Affichage clair du texte traduit
- 🔊 Bonus : synthèse vocale (text-to-speech) de la traduction via `gTTS`
- 📋 Bonus : bouton pour copier le texte traduit
## 🛠️ Installation
```bash
git clone https://github.com/<ton-username>/CodeAlpha_LanguageTranslator.git
cd CodeAlpha_LanguageTranslator
pip install -r requirements.txt
```
> ⚠️ Le premier lancement télécharge le modèle NLLB-200 (~2.4 Go) depuis Hugging Face. Une connexion internet
> est nécessaire uniquement lors de ce premier téléchargement — les lancements suivants utilisent le modèle
> mis en cache localement.
## ▶️ Lancer l'application
```bash
streamlit run app.py
```
L'application s'ouvre automatiquement dans le navigateur à l'adresse `http://localhost:8501`.
## 📦 Technologies utilisées
- [Streamlit](https://streamlit.io/) — interface utilisateur web
- [Hugging Face Transformers](https://huggingface.co/docs/transformers) — chargement et inférence du modèle NLLB-200
- [PyTorch](https://pytorch.org/) — backend de calcul pour le modèle
- [gTTS](https://github.com/pndurang/gTTS) — synthèse vocale (Google Text-to-Speech)
- [langdetect](https://github.com/Mimino666/langdetect) — détection automatique de la langue source
## 📸 Utilisation
1. L'utilisateur entre un texte
2. Il choisit la langue source (ou laisse la détection automatique) et la langue cible
3. Il clique sur "Traduire" — le modèle NLLB-200 effectue l'inférence localement
4. Le texte traduit s'affiche, avec options d'écoute et de copie
## 🎓 Stage
Projet réalisé dans le cadre du **CodeAlpha Artificial Intelligence Internship**.
|