Erwin Jacimino 2 timmar sedan
förälder
incheckning
f37a94f857
1 ändrade filer med 98 tillägg och 0 borttagningar
  1. 98 0
      README.md

+ 98 - 0
README.md

@@ -0,0 +1,98 @@
+# Transcriptor API
+
+API de transcripción de audio y video con identificación de hablantes (diarización).
+
+## Descripción
+
+Transcriptor es un servicio que convierte archivos de audio y video a texto utilizando Whisper (a través de `faster-whisper`) e identifica quién habla en cada momento mediante PyAnnote para diarización de hablantes.
+
+## Requisitos
+
+- Python 3.11+
+- FFmpeg (para conversión de formatos)
+- GPU CUDA (recomendado para transcripción)
+
+## Instalación
+
+```bash
+pip install -r requirements.txt
+```
+
+## Configuración
+
+Crear un archivo `.env` en la raíz del proyecto:
+
+```env
+# Variables de entorno opcionales
+```
+
+## Ejecución
+
+```bash
+uvicorn main:app --host 0.0.0.0 --port 8010 --reload
+```
+
+Accede a la interfaz web en: `http://localhost:8010/`
+
+## Endpoints principales
+
+### Autenticación
+
+| Método | Endpoint | Descripción |
+|--------|----------|-------------|
+| `GET` | `/auth/verify` | Verificar credenciales |
+| `POST` | `/auth/login` | Iniciar sesión |
+| `POST` | `/auth/logout` | Cerrar sesión |
+| `POST` | `/auth/change-password` | Cambiar contraseña |
+
+### Transcripción
+
+| Método | Endpoint | Descripción |
+|--------|----------|-------------|
+| `POST` | `/transcribe` | Enviar archivo para transcripción |
+| `GET` | `/jobs/{job_id}` | Consultar estado de un trabajo |
+| `GET` | `/jobs` | Listar trabajos del usuario |
+| `GET` | `/jobs/{job_id}/download/{fmt}` | Descargar resultado |
+| `DELETE` | `/jobs/{job_id}` | Eliminar un trabajo |
+
+### Admin
+
+| Método | Endpoint | Descripción |
+|--------|----------|-------------|
+| `GET` | `/admin/users` | Listar usuarios |
+| `POST` | `/admin/users` | Crear usuario |
+| `DELETE` | `/admin/users/{user_id}` | Eliminar usuario |
+| `POST` | `/admin/users/{user_id}/api-key` | Generar clave API |
+| `GET` | `/admin/metrics` | Métricas del sistema |
+| `GET` | `/admin/jobs` | Ver todos los trabajos |
+
+## Modelos disponibles
+
+| Modelo | Descripción |
+|--------|-------------|
+| `large-v3` | Mayor precisión (predeterminado) |
+| `large-v2` | Alta precisión |
+| `medium` | Balance precisión/velocidad |
+| `small` | Rápido |
+| `base` | Más rápido |
+
+## Formatos de salida
+
+- `srt` — Subtítulos con marcas de tiempo y hablantes
+- `txt` — Texto plano con etiquetas de hablante
+- `srt_nh` — Subtítulos sin identificación de hablante
+- `txt_nh` — Texto plano sin hablantes
+
+Los formatos sin hablante (`_nh`) omiten el paso de diarización y son más rápidos.
+
+## Idiomas soportados
+
+`es`, `en`, `pt`, `fr`, `de`, `it`, `ja`, `zh`, `auto`
+
+## Arquitectura
+
+- **FastAPI** — Framework web
+- **faster-whisper** — Transcripción con Whisper
+- **PyAnnote** — Diarización de hablantes
+- **FFmpeg** — Conversión de audio/video a WAV 16kHz
+- **SQLite/JSON** — Almacenamiento de usuarios y trabajos (en archivo)