Una implementación local de la API de Whisper para transcripción de audio usando FastAPI.
- Transcripción de audio usando el modelo Whisper de OpenAI
- Soporte para múltiples idiomas con detección automática
- Preprocesamiento de audio para mejorar la calidad de transcripción
- API RESTful con autenticación por token
- Soporte para Windows y Linux
- Python 3.8 o superior
- FFmpeg (requerido para procesar archivos de audio)
- Torch (CPU o GPU)
- 2GB de espacio en disco para los modelos
-
Instalar Python 3.8 o superior desde python.org
-
Instalar FFmpeg:
- Descargar FFmpeg desde ffmpeg.org
- Extraer el archivo zip
- Agregar la carpeta
binal PATH del sistema
-
Clonar el repositorio:
git clone https://github.com/tu-usuario/whisper-local.git cd whisper-local -
Ejecutar el script de configuración:
setup.bat
-
Instalar dependencias del sistema:
sudo apt update sudo apt install python3-pip python3-venv ffmpeg
-
Clonar el repositorio y configurar:
git clone https://github.com/tu-usuario/whisper-local.git cd whisper-local ./setup.sh
-
Copiar
.env.examplea.env:cp .env.example .env
-
Editar
.envcon tus configuraciones:API_KEY=tu-api-key HOST=0.0.0.0 PORT=8000 WHISPER_MODEL=small # opciones: tiny, base, small, medium, large
-
Iniciar el servidor:
python api_server.py
-
Hacer una petición de transcripción:
curl -X POST "http://localhost:8000/transcribe/" \ -H "Authorization: Bearer tu-api-key" \ -H "accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "file=@tu-archivo.wav" \ -F "language=es" # opcional
tiny: Más rápido, menos preciso (~1GB RAM)base: Balance entre velocidad y precisión (~1GB RAM)small: Mejor precisión, más lento (~2GB RAM)medium: Alta precisión, muy lento (~5GB RAM)large: Máxima precisión, extremadamente lento (~10GB RAM)
-
Error "FFmpeg not found":
- Verificar que FFmpeg está en el PATH
- Reiniciar la terminal después de agregar FFmpeg al PATH
-
Error de CUDA:
- Por defecto se usa CPU
- Para GPU, instalar CUDA Toolkit y cuDNN
- Actualizar torch con soporte CUDA:
pip install torch --index-url https://download.pytorch.org/whl/cu118
-
Error de tipos de datos:
- Asegurarse de tener instalado scipy:
pip install scipy - Los archivos de audio deben estar en formato WAV o MP3
- Asegurarse de tener instalado scipy:
-
Error de permisos FFmpeg:
sudo chmod +x /usr/bin/ffmpeg
-
Error de memoria:
- Usar un modelo más pequeño en
.env - Cerrar aplicaciones innecesarias
- Usar un modelo más pequeño en
-
El preprocesamiento de audio incluye:
- Normalización de amplitud
- Filtrado de frecuencias para voz (300-3000 Hz)
- Reducción de ruido básica
-
Parámetros de transcripción optimizados:
temperature=0: Más determinísticobest_of=5: Mejores resultadosbeam_size=5: Mejor decodificacióncondition_on_previous_text=True: Usa contexto
- Fork el repositorio
- Crear una rama para tu feature
- Commit tus cambios
- Push a la rama
- Crear un Pull Request
MIT