AfriVoice Triage agentic voice assistant for African healthcare (MLC Africa × Intron Challenge
# AfriVoice Triage — Agentic Voice AI for African Healthcare
**An agentic voice pipeline, not a transcription demo:** patients speak in any mix of English, Swahili, Yoruba, Hausa, Igbo, Pidgin, Shona, or Kinyarwanda — Sahara transcribes the code-switched speech, a LangGraph agent classifies intent and urgency (with a multilingual emergency safety net), and responds with voice plus a structured triage handoff card.
**Submission for:** MLC (Africa) × Intron Agentic Voice AI Challenge 2026
🎬 Demo video · 🌐 Live app · 📊 Benchmark report · 🧪 Live benchmark runner
### Headline benchmark result — real AfriSwitch N=120 (WER, lower is better)
| Model | WER | Mean latency |
|---|---|---|
| **Intron Sahara v2** | **0.603** | 7.4 s |
| Whisper large-v3 | 0.692 | 79.6 s |
| wav2vec2 XLS-R-53 | 0.853 | 3.1 s |
> All 3 models evaluated on the **same 120 real in-the-wild code-switched utterances** (20 per language × 6 languages, official AfriSwitch test split). Sahara leads overall and on Hausa, Swahili, Yoruba; Whisper leads on Pidgin, Igbo, Shona. Full methodology: docs/METHODOLOGY.md · Full report with pros/cons: docs/BENCHMARK.md.
Synthetic pilot (N=6, Sahara-TTS-generated audio — circularity disclosed): Sahara 0.347 · Whisper 0.450 · XLS-R 0.604. On Hausa–English speech, Whisper large-v3 **silently deleted the entire Hausa segment** of an urgent-care utterance — in triage, a silent deletion is worse than a wrong word. Sahara kept both language spans.
## 🚀 Quick Start
1. Clone the repo
2. Install dependencies: `npm install`
3. Set up environment variables: Copy `.env.local.example` to `.env.local` and add your Sahara API keys
4. Run development server: `npm run dev`
5. Open
localhost
## 🎬 Demo Video
- **`public/demo-video/afrivoice-demo-final.mp4`** (86s, narrated + subtitles) — **the submission video**. A **real screen recording of the live production app**, not a mock: consent modal → a **real voice message** (code-switched Swahili–English, transcribed …