MA
marco0antonio0/transcribe-api
API FastAPI para transcrição de áudio com Whisper, pronta para rodar via Docker.
Transcribe Audio API
API FastAPI para transcrição de áudio com Whisper, pronta para rodar via Docker.Requisitos
- Docker
- Docker Compose (opcional, para
docker-compose.yml)
Execução com Docker Compose (recomendado)
- Ajuste a chave da API no
docker-compose.yml(ou defina no seu ambiente). - Suba o serviço:
docker compose up --build -dA API ficará disponível em http://localhost:8022.
Para parar e remover os containers:
docker compose downSwagger (OpenAPI): http://localhost:8022/docs
Execução com Docker (manual)
docker build -t transcribe-audio .
docker run --rm -p 8022:8022 \
-e API_KEY="sua-chave-aqui" \
-e TORCH_DISABLE_DNNL=1 \
-e OMP_NUM_THREADS=1 \
-e MKL_NUM_THREADS=1 \
transcribe-audioVariáveis de ambiente
API_KEY: se definido, exige o headerX-API-Keynas rotas protegidas.CORS_ALLOW_ORIGINS: lista separada por vírgulas de origens permitidas (padrão*).UVICORN_RELOAD:1,trueouyeshabilita reload (útil em dev).TORCH_DISABLE_DNNL,OMP_NUM_THREADS,MKL_NUM_THREADS: otimizações para CPU.
Endpoints
GET /healthPOST /transcrever(multipart/form-data com campofile)POST /transcrever_base64(JSON)
Exemplos de uso
Upload de arquivo
curl -X POST http://localhost:8022/transcrever \
-H "X-API-Key: sua-chave-aqui" \
-F "file=@/caminho/para/audio.mp3"Base64
curl -X POST http://localhost:8022/transcrever_base64 \
-H "Content-Type: application/json" \
-H "X-API-Key: sua-chave-aqui" \
-d '{
"audio_base64": "...",
"mime_type": "audio/mpeg",
"filename": "audio.mp3"
}'