Início → Blog → Como transcrever áudio direto pelo terminal
Como transcrever áudio direto pelo terminal
Às vezes escrever um programa não faz sentido: são uma dúzia de gravações para processar e esquecer. O terminal resolve isso melhor que qualquer aplicação — uma chamada curl transforma o arquivo em texto e um script curto esvazia a pasta inteira.
Um arquivo
curl https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer $VS_KEY" \
-F file=@call.ogg \
-F model=whisper-1
A resposta é JSON. Para ficar só com o texto, passe pelo jq:
curl -s https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer $VS_KEY" \
-F file=@call.ogg -F model=whisper-1 | jq -r .text
Guarde a chave numa variável de ambiente: comandos com a chave escrita ficam no histórico do shell e nos logs.
Outros formatos de resposta
O campo response_format define a saída na própria requisição:
# legendas direto em arquivo
curl -s https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer $VS_KEY" \
-F file=@lecture.ogg -F model=whisper-1 \
-F response_format=srt -o lecture.srt
# texto puro sem envelope JSON
curl -s https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer $VS_KEY" \
-F file=@note.ogg -F model=whisper-1 \
-F response_format=textUma pasta inteira num script
#!/bin/bash
set -euo pipefail
for f in recordings/*.ogg; do
out="${f%.ogg}.txt"
[ -f "$out" ] && continue
echo "processando $f"
curl -s --fail-with-body https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer $VS_KEY" \
-F file=@"$f" -F model=whisper-1 \
| jq -r .text > "$out"
done
A checagem de arquivo existente torna o script repetível: uma execução interrompida continua de onde parou e gravações já processadas não são pagas duas vezes.
Diagnóstico
A opção --fail-with-body faz o curl devolver código diferente de zero e mostrar o corpo do erro — sem ela o script grava silenciosamente a mensagem de erro dentro do arquivo de transcrição. Outros truques úteis:
- Mostrar apenas o código de status: acrescente -o /dev/null -w "%{http_code}\n".
- Inspecionar cabeçalhos de requisição e resposta: opção -v.
- Conferir o formato real antes de enviar: o ffprobe mostra o codec de verdade, não a extensão.
Teste com as suas próprias gravações. O cadastro leva um minuto e os minutos gratuitos bastam para avaliar a qualidade.
Obter uma chave de API grátisPerguntas frequentes
O jq é obrigatório?
Não. Sem ele o arquivo recebe o JSON inteiro. Como alternativa, peça response_format=text e receba texto limpo direto.
Como manter a chave fora do histórico?
Guarde numa variável de ambiente ou num arquivo com permissões restritas carregado pelo shell.
O script para no primeiro erro — como continuar?
Remova o set -e ou envolva a chamada numa checagem de status, juntando os arquivos com falha numa lista para nova tentativa.
Isso funciona no Windows?
Sim, o PowerShell inclui o curl.exe e as opções são idênticas. Para scripts, WSL ou Git Bash é mais confortável.
Leitura relacionada
- Como montar um pipeline de transcrição para um acervo de áudio — Transcrever milhares de gravações sem perder nenhuma: fila de trabalho, concorrência, novas tentativas, retomada após uma queda e controle do valor da fatura.
- Erros da API de transcrição e o que eles realmente significam — Explicação dos códigos de status da API: por que aparecem 401, 400, 413, 429 e 502, como corrigir cada um e quais falhas vale a pena repetir.
- Qual formato de áudio usar para reconhecimento de fala — mp3, wav, ogg, opus, m4a e webm no reconhecimento de fala: o que o bitrate muda, por que mono a 16 kHz basta e como ficar dentro do limite de tamanho.