# Kinyarwanda Voice Assistant
A voice interface application that processes Kinyarwanda speech, understands questions using NLP, and responds with natural voice output.
## Features
- Speech Recognition (ASR) using KinyaWhisper (mbazaNLP/Whisper-Small-Kinyarwanda)
- Natural Language Processing (NLP) with FastText vector embedding support
- Text-to-Speech (TTS) synthesis for natural-sounding responses
- Interactive web interface with real-time voice processing
- Knowledge base of common Kinyarwanda phrases and information
- Expandable conversation capabilities
## Project Structure
```
├── src/ # Source code
│ ├── asr.py # Speech recognition module (KinyaWhisper)
│ ├── nlp.py # NLP matching module with FastText support
│ ├── tts.py # Text-to-speech synthesis module
│ └── app.py # Main application with Gradio interface
├── data/ # Data files
│ ├── qa_pairs.json # Knowledge base in Kinyarwanda
│ └── transcriptions.json # Processing records
├── audio_samples/ # Processed audio
│ ├── input/ # Processed speech inputs
│ └── output/ # Generated voice responses
├── setup.sh # Full setup script
├── setup_minimal.sh # Minimal setup script
├── setup_asr.sh # ASR model setup script
├── setup_fasttext.sh # FastText model setup script
├── run_demo.py # Demo application
├── requirements.txt # Dependencies
└── README.md # Project documentation
```
## Key Components
### 1. Core Processing Modules
The application is built on four specialized components:
- **Speech Recognition**: Converts Kinyarwanda speech to text using advanced acoustic models
- **Language Understanding**: Processes text inputs and identifies user intent
- **Knowledge Matching**: Maps user questions to appropriate answers
- **Speech Synthesis**: Converts text responses to natural-sounding speech
### 2. Voice Processing
The system de …