Speech-to-speech translation for Rendille language (East Cushitic) using Whisper ASR + NLLB MT + Coqui TTS
# Rendille β English Machine Translation Model
A production-ready neural machine translation system for Rendille (rel), an East Cushitic language of Kenya (~60K speakers).
## π Project Status
**Current Phase:** Phase 1 β Data Collection & Baseline
- β
Project plan documented in `PROJECT_PLAN.md`
- β
Data collection scripts created
- β³ Awaiting: Rendille Bible corpus download validation
- β³ Next: Baseline NLLB evaluation & tokenizer expansion
## ποΈ Architecture
```
Rendille English NMT Pipeline
βββ Data Layer
β βββ eBible Corpus (BibleNLP) β Verse-aligned parallel Bible
β βββ JW300 Dataset (OPUS) β Potential parallel source
β βββ Synthetic data β Back-translation via Somali/Oromo pivots
βββ Model Layer
β βββ Base: facebook/nllb-200-distilled-1.3B (if Rendille in vocab)
β βββ Extended tokenizer (if Rendille NOT in NLLB) β expand embeddings
βββ Training Layer
β βββ LoRA fine-tuning (rank r=16) β parameter-efficient
β βββ Mixed precision training (fp16/bf16)
β βββ Cross-lingual multi-task (Somali+Oromo+Rendille) optional
βββ Evaluation Layer
βββ BLEU, chrF++ (on held-out Bible books)
βββ COMET (neural metric)
βββ Human evaluation (fluency/adequacy)
```
## π Quick Start
### Prerequisites
- Python 3.11+
- GPU (NVIDIA CUDA) recommended for fine-tuning; CPU okay for inference
- Internet access for downloads (~5β10 GB)
### Installation
```bash
# Clone / enter project
cd ~/rendille-translation
# Install dependencies (prefer editable)
pip install -e .
# Or manually:
pip install torch transformers datasets peft accelerate sacrebleu sentencepiece requests
```
### Step-by-Step Workflow
#### 1. Check NLLB Language Coverage
```bash
python scripts/check_nllb_langs.py
```
- If Rendille is listed β mark `--add-token` = False in training
- If NOT listed β we MUST expand tokenizer + embedding layer
#### 2. Download Rendille Bible Corpus
```bash
python scripts/download_bible.py
```
Expected output:
```
Found Rendille (rel) β ~27,000 verses
Saved rel_vre β¦