Speakr es una aplicación web de transcripción, resumen y consulta de grabaciones de audio mediante IA. Su arquitectura está basada en Flask (Python) para el backend y Vue.js para el frontend, con compatibilidad con APIs como Whisper y OpenRouter.
✅ Requisitos previos
- Servidor Linux (Ubuntu 20.04/22.04 o similar)
- Acceso SSH con privilegios
sudo
- Python 3.8+ y
venv
git
,curl
,wget
- Claves API válidas para:
- Un servicio de transcripción (OpenAI Whisper, instancia local, etc.)
- Un modelo de lenguaje (OpenRouter, GPT-4o, etc.)
1. Instalar dependencias básicas
sudo apt update && sudo apt install -y git python3 python3-venv python3-pip curl
2. Clonar el repositorio de Speakr
git clone https://github.com/murtaza-nasir/speakr.git
cd speakr
3. Crear entorno virtual Python
python3 -m venv venv
source venv/bin/activate
4. Instalar dependencias de Python
pip install --upgrade pip
pip install -r requirements.txt
5. Crear archivo .env
Copia el archivo de ejemplo:
cp .env.example .env
Edita .env
con tus claves:
nano .env
Valores recomendados:
# API para resumen y chat
OPENROUTER_API_KEY=tu_clave_openrouter
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_MODEL_NAME=openai/gpt-4o-mini
# API para transcripción
TRANSCRIPTION_API_KEY=cant-be-empty
TRANSCRIPTION_BASE_URL=http://127.0.0.1:8787/v1/
WHISPER_MODEL=Systran/faster-distil-whisper-large-v3
# Seguridad de Flask
SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_hex(32))')
ALLOW_REGISTRATION=true
6. Iniciar la base de datos
python reset_db.py
Esto crea instance/transcriptions.db
y estructura inicial.
7. Crear usuario administrador
python create_admin.py
Introduce nombre, email y contraseña.
8. Ejecutar la aplicación
Modo desarrollo (Flask):
flask run --host=0.0.0.0 --port=8899
Modo producción (Gunicorn):
gunicorn --workers 3 --bind 0.0.0.0:8899 --timeout 600 app:app
9. Acceder a la aplicación
Abre en el navegador:
http://TU_IP:8899
🔁 Instalación automatizada (opcional)
Si prefieres un despliegue con systemd
, puedes usar el script de instalación incluido:
chmod +x deployment/setup.sh
sudo bash deployment/setup.sh
Este script:
- Instala en
/opt/transcription-app
- Crea entorno virtual
- Configura el
.env
si existe - Crea el servicio
transcription.service
para systemd
Ver estado del servicio:
sudo systemctl status transcription.service
🔐 Recomendaciones de seguridad
- Usa HTTPS con Nginx como proxy inverso.
- Protege la instancia con fail2ban y un firewall (UFW).
- Cambia
ALLOW_REGISTRATION=false
si solo quieres usuarios controlados.
✅ Comprobación final
Accede al panel de administración:
http://TU_IP:8899/admin
Desde ahí podrás:
- Gestionar usuarios
- Ver estadísticas
- Revisar grabaciones