Sensei – Web GUI to manage AI Subtitle Generator & Translator
Il progetto è composto da:
- Frontend (Vue 3 + Vite)
- Backend (FastAPI + SQLAlchemy)
- 🎙️ Generazione automatica dei sottotitoli nella lingua originale del video
- 🌍 Traduzione automatica dei sottotitoli in altre lingue
- ✏️ Editor integrato per modificare testo e timing
- ⚡ Avvio rapido in ambiente di sviluppo
Frontend:
- Vue 3
- Vite
- JavaScript
- npm
Backend:
- FastAPI
- SQLAlchemy
- Pydantic Settings
- Uvicorn
Clona la repository:
git clone https://github.com/eliasoliman/senseiDemo.git
cd senseiDemocd frontend
npm installnpm run devVite avvierà automaticamente il server di sviluppo (solitamente su http://localhost:5173).
API sviluppata con FastAPI, con autenticazione JWT e gestione utenti/progetti. La documentazione Swagger è disponibile su /docs.
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtuvicorn backend.main:app --reloadLe variabili sono lette da .env (opzionale).
Per il frontend (frontend/.env):
VITE_WHISPER_BASE: base URL del servizio WhisperVITE_ENDPOINT_POST: endpoint per creare il progetto di sottotitolazione/traduzioneVITE_ENDPOINT_STATUS: endpoint per lo stato della trascrizione/traduzioneVITE_ENDPOINT_OUT: endpoint per fare retrieving dei sottotitoli trascrittiVITE_ENDPOINT_TRANSLATED: endpoint per fare retrieving dei sottotitoli tradottiVITE_REQUIRE_SOURCE_LANG:true/falsese il provider richiede la lingua sorgenteVITE_WHISPER_TOKEN: token autenticazione WhisperVITE_AUDIO_EXTRACTION_TOKEN: token estrazione audio
Per il backend (backend/.env):
SECRET_KEY: chiave per JWT (default:change-me)ADMIN_EMAIL: email dell'admin bootstrap (default:admin@example.com)ADMIN_PASSWORD: password admin (se vuota viene generata automaticamente)DB_URL: stringa di connessione (default: SQLite in-memory)PASSWORD_LENGTH: lunghezza minima password (default: 8)JWT_ALGORITHM: algoritmo JWT (default:HS256)
- L’utente carica un file video
- Il sistema genera automaticamente i sottotitoli nella lingua originale
- I sottotitoli vengono automaticamente tradotti
- L’utente può modificarli tramite l’editor integrato
- Esportazione dei sottotitoli