Voice-driven Amharic farming assistant that connects farmers with reliable agricultural knowledge. Uses Whisper for speech-to-text, RAG for contextual answers, and gTTS for natural voice replies. Includes a Streamlit dashboard and containerized microservices for easy deployment and scaling.
# Voice-To-Voice Farmer Advisor System
LINK TO THE DEMO
This project implements a Voice-to-Voice Farmer Advisor System that provides agricultural information to farmers in Amharic via a voice-based interface. The system uses speech-to-text (STT) to understand queries, a logic service with RAG (Retrieval-Augmented Generation) to find relevant information, and text-to-speech (TTS) to deliver responses.
## π Features
- **Amharic Speech-to-Text**: Uses OpenAI's Whisper model for accurate transcription.
- **RAG-Based Logic Service**: Retrieves information from a knowledge base using vector similarity search.
- **Amharic Text-to-Speech**: Generates natural-sounding Amharic speech.
- **Admin Dashboard**: A web interface to view escalation queues and manage the system.
- **Dockerized Deployment**: All services are containerized for easy deployment and management.
## π οΈ Architecture
The system consists of four main services:
1. **Telephony Service**: Handles incoming calls, audio capture, and playback.
2. **STT Service**: Transcribes audio to text.
3. **Logic Service**: Processes text queries, performs RAG, and generates responses.
4. **TTS Service**: Converts text to speech.
5. **Admin Dashboard**: A web interface for system monitoring and management.
## π Project Structure
```
Voice-To-Voice-Farmer-Advisor/
βββ telephony_service/ # SIP/VoIP client and audio processing
βββ stt_service/ # Speech-to-text service
βββ logic_service/ # RAG pipeline and business logic
βββ tts_service/ # Text-to-speech service
βββ admin_dashboard/ # Streamlit-based admin interface
βββ data/ # Data files (knowledge base, embeddings)
βββ .env # Environment variables
βββ docker-compose.yml # Docker orchestration
```
## βοΈ Prerequisites
- Docker
- Docker Compose
## π Quick Start
1. **Clone the repository** (if not already done).
2. **Configure Environment Variables**:
Copy the example environmen β¦