π£οΈ KinyaTutor is a voice-powered Kinyarwanda learning assistant that lets users speak, listen, and interact with AI in kinyarwanda language using speech recognition, NLP, and text-to-speech.
# π·πΌ KinyaTutor: Kinyarwanda Voice Assistant
KinyaTutor is an interactive voice assistant that helps users learn and practice Kinyarwanda. It simulates how intelligent robots can communicate in local languages, empowering them to assist Rwandan communities.
## π± Application Interface
*The KinyaTutor interface showing the voice recording feature and interactive question-answer system.*
## β¨ Features
- **Speech Recognition (ASR)**: Transcribes Kinyarwanda speech to text using KinyaWhisper
- **Natural Language Processing (NLP)**: Matches questions to appropriate answers
- **Text-to-Speech (TTS)**: Speaks answers back in Kinyarwanda
- **Interactive UI**: Quiz mode and conversational mode
- **Audio Visualization**: Visual feedback for audio processing
## π Project Structure
```
KinyaTutor/
βββ Backend/ # FastAPI backend
β βββ app/
β β βββ main.py # Main API endpoints
β β βββ utils.py # Utility functions
β βββ reference_audio.wav # Reference audio for TTS
β βββ requirements.txt # Python dependencies
βββ Frontend/ # Next.js frontend
β βββ components/ # React components
β βββ lib/ # Utility functions and API client
β βββ pages/ # Next.js pages
β βββ public/ # Static assets
β βββ styles/ # CSS styles
βββ README.md # Project documentation
```
## βοΈ Technologies Used
- **Backend**:
- FastAPI: Modern, fast web framework for building APIs
- KinyaWhisper: ASR model fine-tuned for Kinyarwanda
- Coqui TTS: Text-to-speech synthesis
- Difflib: For fuzzy matching questions
- **Frontend**:
- Next.js: React framework for production
- Tailwind CSS: Utility-first CSS framework
- Web Speech API: For browser-based speech recognition
- Web Audio API: For audio visualization
## π Setup and Installation
### Backend
1. Clone the repository:
```bash
git clone
github.com
cd KinyaTutor/Backend
` β¦