Una API robusta para transcripción de audio utilizando Whisper, diseñada para ser fácil de usar y desplegar con Docker.
- Transcripción de audio desde archivos o URLs
- Soporte para múltiples formatos de audio
- Integración con n8n y otras herramientas de automatización
- Logs detallados del proceso de transcripción
- Fácil despliegue con Docker
- API RESTful con endpoints bien documentados
- Node.js
- Express.js
- Python
- OpenAI Whisper
- Docker
- Winston (para logging)
# Descargar la imagen
docker pull skarious/audio-transcription-api:0.0.1
# Ejecutar el contenedor
docker run -p 3000:3000 skarious/audio-transcription-api:0.0.1O usando docker-compose:
version: '3.8'
services:
api:
image: skarious/audio-transcription-api:latest
ports:
- "3000:3000"
volumes:
- ./models:/app/models
- ./uploads:/app/uploads
environment:
- NODE_ENV=production
- PORT=3000POST /api/transcription/url
Content-Type: application/json
{
"url": "https://ejemplo.com/audio.mp3"
}POST /api/transcription/file
Content-Type: multipart/form-data
Form data:
- data: [archivo de audio]Variables de entorno disponibles:
PORT=3000
NODE_ENV=production
LOG_LEVEL=info
DEFAULT_LANGUAGE=es # Idioma por defecto para transcripcionesLa API soporta transcripción en múltiples idiomas:
es: Español (por defecto)en: Ingléspt: Portugués
Puedes configurar el idioma de dos formas:
- Global (por defecto): Configura la variable de entorno
DEFAULT_LANGUAGEen tu archivo.env - Por petición: Especifica el idioma en el cuerpo de la petición
POST /api/transcription/url
Content-Type: application/json
{
"url": "https://ejemplo.com/audio.mp3",
"language": "en" # Opcional: sobrescribe DEFAULT_LANGUAGE
}POST /api/transcription/file
Content-Type: multipart/form-data
Form data:
- data: [archivo de audio]
- language: en # Opcional: sobrescribe DEFAULT_LANGUAGE- Usar el nodo "HTTP Request"
- Configurar:
- Method: POST
- URL: http://tu-servidor:3000/api/transcription/file
- Body Content Type: n8n Binary File
- Binary Data: archivo de audio a transcribir
/app/models: Almacena modelos de Whisper/app/uploads: Archivos temporales de audio
{
"text": "Texto transcrito del audio",
"language": "es",
"success": true
}{
"error": "Descripción del error"
}{
"error": "Idioma no soportado. Idiomas disponibles: es, en, pt"
}- Tamaño máximo de archivo: 50MB
- Formatos soportados: MP3, WAV, M4A, etc.
- Tiempo de procesamiento: Varía según la duración del audio
- No se almacenan archivos de audio permanentemente
- Los archivos temporales se eliminan después de la transcripción
- Logs sin información sensible
La API proporciona logs detallados:
2024-12-20 11:39:50 info: Server running on port 3000
2024-12-20 11:39:51 info: POST /api/transcription/file
2024-12-20 11:39:51 info: Iniciando transcripción de archivo
2024-12-20 11:39:55 info: Transcripción completada exitosamente
- Fork el repositorio
- Crea una rama para tu feature
- Commit tus cambios
- Push a la rama
- Crea un Pull Request
Este proyecto está bajo la licencia Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
Esta licencia permite a otros:
- Compartir — copiar y redistribuir el material en cualquier medio o formato
- Adaptar — remezclar, transformar y construir a partir del material
Bajo los siguientes términos:
- Atribución — Debe dar crédito adecuado, proporcionar un enlace a la licencia e indicar si se realizaron cambios.
- NoComercial — No puede utilizar el material con fines comerciales.
- CompartirIgual — Si remezcla, transforma o crea a partir del material, debe distribuir sus contribuciones bajo la misma licencia que el original.
Ver texto completo de la licencia
Para soporte, abrir un issue en el repositorio o contactar a los mantenedores.