Como usar a Audio API

Envie um áudio e receba o texto em JSON. A request fica aberta até o Whisper terminar (síncrono — use timeout ≥ 3 minutos).

Base https://audio-api.autoenvia.com.br Health GET /api/health Transcrever POST /api/transcribe

1 Base URL

Use sempre esta URL em produção (já está na raiz, sem /audio-api):

Base URL
https://audio-api.autoenvia.com.br
EndpointURL completa
Health https://audio-api.autoenvia.com.br/api/health
Transcrever https://audio-api.autoenvia.com.br/api/transcribe
Admin / tokens https://audio-api.autoenvia.com.br/admin/tokens
Timeout do cliente Configure pelo menos 180000 ms (3 min). Timeout curto parece “erro”, mas o servidor ainda pode estar transcrevendo.

2 Autenticação

POST /api/transcribe exige Bearer token. Crie o token em Admin → Tokens (o valor aparece uma vez na criação).

Header
Authorization: Bearer SEU_TOKEN
  • GET /api/health — público, sem token
  • Token inválido → 401
  • Token inativo / IP bloqueado → 403

3 Health check

Teste se a API está no ar:

GET
https://audio-api.autoenvia.com.br/api/health
Resposta 200
{
  "success": true,
  "status": "ok"
}

4 Transcrever áudio

POST https://audio-api.autoenvia.com.br/api/transcribe com multipart/form-data.

CampoObrigatórioDescrição
audioSimArquivo (.ogg, .opus, .mp3, .wav, .m4a)
languageNãoEx.: pt, en, auto
promptNãoContexto inicial (até 500 caracteres)
enhanceNãotrue/false — melhorar áudio (WhatsApp)
trimNãotrue/false — cortar silêncio
Limites Máximo 25 MB por arquivo · rate limit padrão 30 requests / 60 s por token.

5 Respostas

Sucesso (200)

JSON
{
  "success": true,
  "transcription": "texto reconhecido...",
  "duration_ms": 15230,
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "meta": {
    "model": "small-q5_1",
    "language": "pt",
    "enhanced": true,
    "trimmed": true,
    "engine": "server",
    "vad": true
  }
}

Erros comuns

HTTPQuando
400Sem arquivo, extensão inválida ou opções inválidas
401Bearer ausente ou token inválido
403IP bloqueado ou token inativo
413Arquivo maior que o limite
429Rate limit
500Falha no FFmpeg / Whisper

6 Exemplos cURL (copiar e colar)

Troque só SEU_TOKEN e o caminho do áudio.

Health

PowerShell
curl.exe https://audio-api.autoenvia.com.br/api/health
Bash
curl https://audio-api.autoenvia.com.br/api/health

Transcrever (mínimo)

PowerShell
curl.exe -X POST https://audio-api.autoenvia.com.br/api/transcribe `
  -H "Authorization: Bearer SEU_TOKEN" `
  -F "audio=@C:\caminho\audio.ogg"
Bash
curl -X POST https://audio-api.autoenvia.com.br/api/transcribe \
  -H "Authorization: Bearer SEU_TOKEN" \
  -F "audio=@/caminho/audio.ogg"

Transcrever com opções

PowerShell
curl.exe -X POST https://audio-api.autoenvia.com.br/api/transcribe `
  -H "Authorization: Bearer SEU_TOKEN" `
  -F "audio=@C:\caminho\audio.ogg" `
  -F "language=pt" `
  -F "prompt=Conversa em português" `
  -F "enhance=true" `
  -F "trim=true"
Bash
curl -X POST https://audio-api.autoenvia.com.br/api/transcribe \
  -H "Authorization: Bearer SEU_TOKEN" \
  -F "audio=@/caminho/audio.ogg" \
  -F "language=pt" \
  -F "prompt=Conversa em português" \
  -F "enhance=true" \
  -F "trim=true"

7 Testar no Postman

  1. HealthGET https://audio-api.autoenvia.com.br/api/health (sem Auth) → Send.
  2. TranscreverPOST https://audio-api.autoenvia.com.br/api/transcribe
  3. Authorization → Type: Bearer Token → cole o token do admin.
  4. Bodyform-data → chave audio, tipo File, escolha o áudio.
  5. (Opcional) Adicione Text: language=pt, enhance=true, trim=true.
  6. Settings → Request timeout ≥ 180000 → Send.
Dica Não defina Content-Type manualmente — o Postman monta o boundary do multipart sozinho.