A lite weight speech to speech Luganda assistant
# Luganda Speech-to-Speech Lite
A lightweight Luganda speech-to-speech system with support for Apple Silicon GPU acceleration and OpenAI-compatible APIs.
## Features
- Speech-to-Text and Text-to-Speech for Luganda language
- GPU acceleration support for Apple Silicon (M1/M2) via PyTorch MPS
- OpenAI-compatible API endpoints
- Modern React frontend with Shadcn UI
- Docker support with multi-architecture builds
## Models
This project uses the following open-source models:
### Speech-to-Text
- Model: allandclive/whisper-tiny-luganda-v2
- Type: Fine-tuned Whisper model optimized for Luganda speech recognition
### Text-to-Speech
- Text to Mel-Spectrogram: Sunbird/sunbird-lug-tts
- Type: Tacotron2 model trained for Luganda speech synthesis
- Vocoder: speechbrain/tts-hifigan-ljspeech
- Type: HiFiGAN vocoder for high-quality waveform generation
## Prerequisites
- Python 3.9+ (3.10+ recommended for Apple Silicon)
- Node.js 18+
- Docker and Docker Compose (optional)
- FFmpeg
## Installation
### Using Docker (Recommended)
1. Clone the repository:
```bash
git clone
cd luganda-speech-to-speech-lite
```
2. Start the services using Docker Compose:
```bash
# For Apple Silicon users (enables GPU acceleration)
USE_MPS=true docker-compose up --build
# For other platforms
docker-compose up --build
```
The application will be available at:
- Frontend:
localhost
- Backend API:
localhost
- API Documentation:
localhost
### Manual Installation with Python Virtual Environment
1. Create and activate a Python virtual environment:
```bash
# Create a new virtual environment
python -m venv venv
# Activate the virtual environment
# On Windows:
.\venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
```
2. Set up the backend:
```bash
# Install Python dependencies
pip install -r requirements.txt
# Optional: Enable GPU acceleration on Apple Silicon
export USE_MPS=true
# Start the FastAPI server
cd backend
uvicorn main:app --host …