설명 없음

Erwin Jacimino f37a94f857 add README 2 시간 전
core 7e64f29413 initial commit 17 시간 전
static 7e64f29413 initial commit 17 시간 전
workers 7e64f29413 initial commit 17 시간 전
.gitignore 7e64f29413 initial commit 17 시간 전
README.md f37a94f857 add README 2 시간 전
create_api_key.py 7e64f29413 initial commit 17 시간 전
create_user.py 7e64f29413 initial commit 17 시간 전
main.py 7e64f29413 initial commit 17 시간 전
requirements.txt 7e64f29413 initial commit 17 시간 전

README.md

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

pip install -r requirements.txt

Configuración

Crear un archivo .env en la raíz del proyecto:

# Variables de entorno opcionales

Ejecución

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)