Code-switch aware voice agent for African telecom/fintech customer care, built on Intron's Sahara APIs — handles real Swahili/Kinyarwanda-English speech to resolve balance checks, failed transactions, and escalations end-to-end.
# Code-Switch Voice Care Agent
Built for the MLC (Africa) x Intron Agentic Voice AI Challenge, part of the Sahara CodeSwitch Africa Challenge, at Deep Learning Indaba 2026.
This is a telecom and fintech customer care voice agent that understands real code-switched speech, meaning English mixed with a local African language in the same sentence, and takes action on it. It checks account balances, looks up failed transactions, and escalates to a human agent, all built on Intron's Sahara voice APIs.
The project supports three language pairs today: Swahili and English, Kinyarwanda and English, and Kinyarwanda and French. Adding a new pair only requires a new configuration file, not a code change. See "Adding a new language pair" below.
## Why this domain and this architecture
Fintech, telco, and customer experience is one of the challenge's named categories, and Sahara's own Voice Bots "Conversation Call" product is built for exactly this kind of use case. That let us spend build time on language coverage and benchmark quality instead of custom telephony integration.
The challenge requires every team to benchmark at least three speech models, so that requirement does not distinguish one submission from another on its own. What we lean on instead is that language is a configuration value in this project, not something baked into the code. The agent logic, the tools, and the orchestration never branch on which language is in use.
## Project layout
```
voice_agent/
config/
languages/*.yaml # one file per code-switch pair (sw_en, kin_en, kin_fr)
__init__.py # loads a YAML file into a typed LanguageConfig
stt/sahara_stt.py # Sahara speech-to-text client, batch and streaming, plus mock
tts/sahara_tts.py # Sahara text-to-speech client, plus mock
voicebot/conversation_call.py # Sahara Voice Bots "Conversation Call" client
nlu/agent.py # language-agnostic intent detection and tool-calling agent
tools/ # mo …