GitHunt
MA

marco0antonio0/transcribe-api

API FastAPI para transcrição de áudio com Whisper, pronta para rodar via Docker.

Transcribe Audio API

Transcribe Audio API

API FastAPI para transcrição de áudio com Whisper, pronta para rodar via Docker.

FastAPI Python Requests Whisper

Requisitos

  • Docker
  • Docker Compose (opcional, para docker-compose.yml)

Execução com Docker Compose (recomendado)

  1. Ajuste a chave da API no docker-compose.yml (ou defina no seu ambiente).
  2. Suba o serviço:
docker compose up --build -d

A API ficará disponível em http://localhost:8022.

Para parar e remover os containers:

docker compose down

Swagger (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-audio

Variáveis de ambiente

  • API_KEY: se definido, exige o header X-API-Key nas rotas protegidas.
  • CORS_ALLOW_ORIGINS: lista separada por vírgulas de origens permitidas (padrão *).
  • UVICORN_RELOAD: 1, true ou yes habilita reload (útil em dev).
  • TORCH_DISABLE_DNNL, OMP_NUM_THREADS, MKL_NUM_THREADS: otimizações para CPU.

Endpoints

  • GET /health
  • POST /transcrever (multipart/form-data com campo file)
  • 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"
  }'