Resposta direta — Como automatizar a transcrição de arquivos no Mac? Existem três rotas. Montar um script de shell em torno do whisper.cpp e do ffmpeg, embrulhá-lo num Atalho e mantê-lo você mesmo. Enviar arquivos para uma API de transcrição na nuvem e aceitar que o áudio sai do seu Mac. Ou chamar uma API HTTP local dentro de um app de transcrição, que mantém cada arquivo na máquina e não exige manutenção de scripts.
Se você quer automatizar a transcrição no Mac, a parte difícil raramente é o reconhecimento de fala — os modelos locais já são bons o suficiente há anos. É a canalização: o gatilho, a conversão de formato, a fila, a exportação e aquilo que quebra depois de uma atualização do Homebrew.
Este guia compara as três rotas — scripts DIY, Atalhos do macOS e uma API de transcrição local à sua máquina — com o código que você de fato executaria em cada uma.
O que envolve automatizar a transcrição no Mac?
Três camadas, e apenas uma delas é reconhecimento de fala. Confundi-las é o motivo pelo qual a maioria das tentativas de automação empaca no meio do caminho.
- O gatilho — uma Ação Rápida do Finder, uma pasta monitorada, uma tarefa cron ou um nó em um orquestrador.
- O mecanismo — o modelo que transforma áudio em texto, mais qualquer preparação que ele exija.
- A saída — um arquivo, uma área de transferência, uma linha de banco de dados, uma faixa de legendas, uma nota em Markdown.
Uma API na nuvem reduz as três camadas a uma única chamada HTTP, ao custo de enviar o áudio. Um script DIY dá controle total e as três camadas para manter. Uma API local mantém o mecanismo e o áudio no seu Mac, e ainda assim reduz a chamada a uma única linha.
O Atalhos do macOS consegue transcrever arquivos sozinho?
Não com um mecanismo local. O Atalhos é excelente em gatilhos e canalização — a Apple descreve um atalho como “uma forma rápida de realizar uma ou mais tarefas com seus apps” — mas não traz nenhuma ação de transcrição offline de uso geral que você possa apontar para um MP4 qualquer.
Os projetos da comunidade mostram a solução alternativa. Os repositórios compartilhados de transcrição de áudio com atalhos no mac funcionam todos da mesma forma: o Atalho fornece o gatilho e o caminho do arquivo, depois uma ação Executar Script de Shell entrega o trabalho a um mecanismo externo.
Um deles embrulha um script zsh em torno da ferramenta de linha de comando do MacWhisper, com fallback para o whisper.cpp via Homebrew. Outro importa um .shortcut que chama um script de shell combinando whisper.cpp com ffmpeg. Ambos deixam o mesmo ponto claro: o Atalhos é o gatilho, nunca o mecanismo.
O que envolve a rota DIY com whisper.cpp?
Configuração e manutenção contínua. O mecanismo é gratuito e excelente; a manutenção é o preço, e não é zero.
Uma configuração mínima de script de automação de transcrição no mac se parece com isto:
# 1. Instale o mecanismo e o conversor
brew install ffmpeg
brew install whisper-cpp
# 2. Baixe um arquivo de modelo manualmente (ex.: ggml-large-v3-turbo.bin)
# 3. Converta primeiro — a CLI do whisper.cpp lê apenas WAV de 16 bits
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
# 4. Depois transcreva
whisper-cli -m ~/.cache/whisper.cpp/models/ggml-large-v3-turbo.bin -f output.wav
A etapa 3 não é opcional. O README oficial do whisper.cpp é explícito: “the whisper-cli example currently runs only with 16-bit WAV files, so make sure to convert your input before running the tool”, e publica o comando ffmpeg acima.
Essa restrição é onde a maioria das cadeias de automação whisper.cpp no mac quebra: todo novo formato, entrevista em estéreo e contêiner de vídeo precisa ser convertido antes, e a falha é silenciosa até você ler uma transcrição vazia.
Some as outras peças móveis — arquivos de modelo renomeados, uma atualização do Homebrew, nenhuma fila de tarefas, nenhum progresso, nenhum histórico — e o script de uma tarde vira uma pequena ferramenta interna que agora é sua. Nosso guia de instalação do whisper.cpp cobre essa rota em detalhes.
O que é uma API de transcrição local e por que ela muda o workflow?
Uma API de transcrição local é um servidor HTTP rodando dentro de um app de desktop na sua própria máquina, de modo que outros programas possam enviar a ele um arquivo e receber texto de volta sem que nenhum áudio saia do Mac. Mesma forma de requisição de uma API na nuvem, sem nenhum upload.
O Weesper Transcribe traz uma como recurso Pro opcional. Ela se vincula ao endereço de loopback 127.0.0.1 — inacessível a partir da sua rede — em uma porta configurável (8765 por padrão), vem desligada por padrão, e todo endpoint, exceto a verificação de integridade, exige um token Authorization: Bearer mostrado em Configurações → Automação.
Dois detalhes de design importam para a automação:
- Quem chama envia os bytes do áudio, não um caminho de arquivo. A build da App Store é sandboxed e não consegue ler caminhos arbitrários de outro processo, então os bytes trafegam pelo loopback.
- Síncrono e assíncrono em um único endpoint. Um clipe curto bloqueia até terminar; uma gravação longa retorna um identificador de tarefa imediatamente e você consulta o progresso.
Os endpoints
| Endpoint | Autenticação | O que faz |
|---|---|---|
GET /v1/health | Não | Verificação de atividade — status e versão |
GET /v1/models | Sim | Lista ids de modelos e quais estão instalados |
POST /v1/transcribe | Sim | Envia bytes de áudio, recebe texto e segmentos com marcação de tempo |
GET /v1/jobs/<id> | Sim | Status, progresso, depois texto e caminho de exportação |
As opções viajam como parâmetros de consulta e tudo o que você omitir cai de volta nas configurações salvas do app: model, language, task (transcribe ou translate), format, name, export, async.
Uma chamada, do início ao fim
TOKEN=… # copiado de Configurações → Automação
# Síncrono: transcreve e escreve um SRT na pasta de exportação automática
curl -s -X POST "http://127.0.0.1:8765/v1/transcribe?format=srt&name=meeting" \
-H "Authorization: Bearer $TOKEN" \
--data-binary @meeting.m4a | jq .text
# Assíncrono: arquivo longo, consulta o resultado
JOB=$(curl -s -X POST "http://127.0.0.1:8765/v1/transcribe?async=true&name=lecture" \
-H "Authorization: Bearer $TOKEN" --data-binary @lecture.mp4 | jq -r .job_id)
curl -s "http://127.0.0.1:8765/v1/jobs/$JOB" -H "Authorization: Bearer $TOKEN" | jq
Nenhuma etapa de conversão, nenhum gerenciamento de modelo, nenhuma fila para escrever. A resposta traz texto e segmentos com marcação de tempo, e o app renderiza um arquivo no formato que você pediu — um entre nove, incluindo SRT e VTT quando legendas são o entregável.
Como as três rotas se comparam?
Combine a rota com o que você está otimizando: controle, privacidade ou peças móveis para possuir.
| Critério | Scripts DIY (whisper.cpp) | API local (Weesper Transcribe) | API de transcrição na nuvem |
|---|---|---|---|
| Áudio sai do seu Mac | ❌ Nunca | ❌ Nunca | ✅ Todo arquivo enviado |
| Esforço de configuração | Alto — Homebrew, modelos, conversão | Baixo — ativar, copiar token | Baixo — chave de API |
| Conversão de formato | Manual (ffmpeg, WAV de 16 bits) | Feita pelo app | Feita pelo serviço |
| Fila de tarefas e progresso | Você constrói | Já embutido, síncrono ou assíncrono | Já embutido |
| Funciona offline | ✅ | ✅ | ❌ |
| Custo recorrente | Nenhum | Upgrade Pro de compra única | Por minuto ou por assento |
| Quem mantém | Você | O app | O fornecedor |
| Histórico e busca | Você constrói | Já embutido, por palavra-chave e semântica | Hospedado pelo fornecedor |
Em resumo: o DIY vence em controle e custa só o seu tempo, a nuvem vence em escala e perde em confidencialidade, e uma API local é o meio-termo quando o áudio não pode sair da máquina.
Três receitas de automação que vale a pena copiar
Comece pelo gatilho que você já usa. A etapa de transcrição é uma linha em cada uma.
- Ação Rápida do Finder — construa um Atalho que receba arquivos como entrada, adicione uma ação Executar Script de Shell com a chamada
curlacima e--data-binary @"$1", depois clique com o botão direito em qualquer gravação para transcrevê-la. Mantenha o token no script ou em um item do Keychain, nunca em um parâmetro de URL. - Pasta monitorada — aponte uma Ação de Pasta ou um pequeno loop
fswatchpara o seu diretório de gravações e dispare a mesma chamada a cada novo arquivo. Definaexport=truee a transcrição cai na sua pasta de exportação. - Etapa de orquestrador — no n8n, um nó Execute Command dispara o
curl. Sua documentação é explícita ao dizer que o nó roda comandos “na máquina hospedeira que executa o n8n”, “não está disponível no n8n Cloud” e vem desativado por padrão a partir do n8n 2.0. Uma etapa de transcrição local no n8n precisa, portanto, de uma instância self-hosted no mesmo Mac — que é justamente o propósito de uma API de loopback.
Para um workflow de automação de transcrição em lote, talvez você não precise de orquestrador nenhum: enfileire uma pasta dentro do app e use a API só para o que a sua própria ferramentaria conduzir.
Qual rota você deveria escolher?
Escolha pela restrição que não vai mudar.
- Escolha scripts DIY se você quer controle total sobre o modelo e gosta de manter um pipeline de conversão. O mais barato em dinheiro, o mais caro em atenção.
- Escolha uma API local se o áudio é confidencial — entrevistas com clientes, gravações médicas, trabalho ainda não divulgado — e você quer automação sem manutenção.
- Escolha uma API na nuvem se você transcreve em uma escala que nenhum laptop consegue absorver e o material não é sensível.
Ainda pesando apps em vez de rotas? Nossa comparação entre TranscribeNext e Weesper Transcribe cobre o lado da captura de reuniões dessa decisão.
Perguntas frequentes
Como automatizar a transcrição no Mac sem escrever scripts?
Use um app que exponha uma API de transcrição local e chame-a a partir do que já roda o seu trabalho: um Atalho, uma Ação de Pasta, uma tarefa agendada ou um workflow no n8n. O Weesper Transcribe traz um servidor HTTP opcional vinculado a 127.0.0.1 e protegido por um token bearer. Uma chamada curl envia os bytes do áudio e retorna o texto, além de um arquivo renderizado na sua pasta de exportação automática.
O Atalhos do macOS consegue transcrever um arquivo de áudio sozinho?
Não para arquivos arbitrários com um mecanismo local. O Atalhos é muito bom no gatilho e na canalização: uma Ação Rápida no Finder, uma Ação de Pasta, uma entrada na folha de compartilhamento. A transcrição precisa vir de algum lugar, e é por isso que os atalhos da comunidade no GitHub envolvem uma ação Executar Script de Shell em torno do whisper.cpp ou de uma ferramenta de linha de comando de terceiros.
Quanto custa de verdade a rota de automação DIY com whisper.cpp?
Configuração e manutenção, não dinheiro. Os scripts da comunidade publicados instalam ffmpeg e whisper.cpp via Homebrew, baixam arquivos de modelo manualmente e convertem cada entrada antes, porque a ferramenta de linha de comando do whisper.cpp roda apenas com arquivos WAV de 16 bits. Uma atualização do Homebrew, um arquivo de modelo renomeado ou um formato de entrada não tratado vai quebrar a cadeia silenciosamente.
É seguro deixar uma API de transcrição local ligada?
Depende de como ela está vinculada e autenticada. A API do Weesper Transcribe vem desligada por padrão, escuta apenas em 127.0.0.1, então é inacessível a partir da sua rede, e exige um token bearer em todo endpoint, exceto a verificação de integridade. Requisições que carregam um cabeçalho Origin de navegador são rejeitadas, então uma página web não consegue chamá-la pelas suas costas.
Posso rodar uma API de transcrição local a partir do n8n ou de outra ferramenta de automação?
Sim, quando a ferramenta roda no mesmo Mac. A documentação do n8n afirma que seu nó Execute Command roda comandos de shell na máquina hospedeira que executa o n8n e não está disponível no n8n Cloud — então uma instância self-hosted pode disparar o curl, enquanto uma instância cloud não consegue alcançar 127.0.0.1 no seu laptop.
Conclusão
Automatizar a transcrição no Mac é possível há anos, mas só por meio de scripts que você tinha que construir e manter vivos. Os projetos da comunidade comprovam a demanda e expõem o custo: dependências do Homebrew, arquivos de modelo manuais, uma etapa de conversão antes de cada arquivo.
Uma API de loopback move esse trabalho para dentro do app — a mesma chamada de uma linha de um serviço na nuvem, a mesma superfície de automação para Atalhos, monitores de pasta e orquestradores self-hosted, e o áudio nunca sai da máquina.
Pronto para transformar a transcrição em uma etapa do seu pipeline? Veja como o Weesper Transcribe lida com lotes, exportações e a API de automação local, ou baixe pela Mac App Store — gratuito para baixar, macOS 13 ou posterior, upgrade Pro de compra única, sem assinatura. Dúvidas de configuração são respondidas na documentação de suporte.