An advanced research initiative focused on developing high-fidelity, emotionally expressive Text-to-Speech models for low-resource languages (Sinhala).
PsycheTTS combines the power of Large Language Models (Gemini 2.5 Pro) with efficient neural architectures (Bi-Directional Mamba) to solve the data scarcity problem in Sinhala TTS.
| Module | Description | Status |
|---|---|---|
| Collector | A Flask-based tool to generate & curate emotional audio samples using Gemini API. Features a Manual Helper for precise control. | ✅ Verified Working |
| Research | The core training pipeline implementing the PsycheTTS Architecture (Style Encoder + Mamba + Flow Matching). | 🚧 In Development |
| Portal | Interactive HTML dashboard for visualizing architecture, pipelines, and results. | ✨ Live |
PsycheTTS/
├── collector/ # Data Collection Suite
│ ├── dataset/ # Validated Audio Samples (.wav) & Metadata (.csv)
│ ├── src/web/ # Web Interface (Flask)
│ └── src/cli/ # Command Line Tools
│
├── research/ # Model Training & Experiments
│ ├── psyche_tts_portal.html # Visualization Dashboard
│ ├── train.py # Main Training Loop
│ ├── model.py # Architecture Definitions
│ └── modules.py # Core Building Blocks (Mamba, etc.)
Due to the scarcity of Sinhala voice samples with expected quality, reliability, and consistency, we had to find another solution for the voice dataset. After our research and comparison, we figured out that Gemini has very good emotional and natural-sounding vocal ability in Sinhala TTS generation.

Generate your own emotional dataset using our specialized tool.
# 1. Navigate to the collector directory
cd collector
# 2. Install dependencies (First time only)
pip install -r requirements.txt
# 3. Launch the Server
python src/web/server.pyNote: The server will start at
http://127.0.0.1:8000/manual. Ensure you have yourGEMINI_API_KEYready if using automated features.
Train the model on the collected data.
# 1. Navigate to research directory
cd research
# 2. Install dependencies
pip install -r requirements.txt
# 3. Start Training
python train.pyThis project is open for collaboration, specifically targeting researchers from the University of Sri Jayewardenepura.
- Dataset Contributions: Please ensure all new samples are logged in
collector/dataset/metadata.csv. - Model Improvements: Submit PRs for new modules in
research/modules.py.