AI-powered Somali subtitle generator
# SomaliScribe AI
An AI-powered web app that generates Somali subtitles from audio and video files. Upload media, edit subtitles in the browser, and export SRT, VTT, or a video with burned-in captions.
## Features
- **Web interface**: Dark-themed UI (SomaliScribe AI) with Home, Upload, Editor, and History
- **User management**: Register, login, guest mode, role-based access (User, Admin)
- **Media upload**: Audio (MP3, WAV, M4A, FLAC, OGG, AAC) and video (MP4, MKV, AVI). File size limit 100MB. Upload progress indicator
- **Somali ASR**: Automatic speech recognition using Google Speech Recognition (so-SO) with dataset fallback (6,751 Somali audio entries)
- **Subtitle generation**: Time-aligned segments; supports SRT and VTT
- **Subtitle editor**: Edit text, adjust timestamps, merge/split segments, live caption preview with customizable font and colors
- **Export & download**: Download SRT or VTT; burn subtitles into video (or generate a video from audio + subtitles)
- **History**: Per-user job history with links to edit, export, and burn-in
- **Admin panel**: Manage users, files, and view transcription statistics
## Dataset Structure
```
dataset/
├── metadata.csv # Audio entries with transcriptions
├── train.csv
├── validation.csv
├── test.csv
└── wavs/ # Audio files (.wav)
```
## Installation
1. **Python**: 3.7 or higher
2. **Create and activate a virtual environment** (recommended):
```bash
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/macOS
```
3. **Install dependencies**:
```bash
pip install -r requirements.txt
```
4. **PostgreSQL**: Install PostgreSQL (v16+) and create the database:
```bash
psql -U postgres
CREATE DATABASE somali_subtitles;
\q
```
By default the app connects to `postgresql://postgres:postgres@localhost:5432/somali_subtitles`.
Override with the `DATABASE_URI` environment variable:
```bash
set DATABASE_URI=postgresql://user:pass@host:5432/dbname
```
5. **ffmpeg** (for …