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.

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:

Os endpoints

EndpointAutenticaçãoO que faz
GET /v1/healthNãoVerificação de atividade — status e versão
GET /v1/modelsSimLista ids de modelos e quais estão instalados
POST /v1/transcribeSimEnvia bytes de áudio, recebe texto e segmentos com marcação de tempo
GET /v1/jobs/<id>SimStatus, 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érioScripts 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çãoAlto — Homebrew, modelos, conversãoBaixo — ativar, copiar tokenBaixo — chave de API
Conversão de formatoManual (ffmpeg, WAV de 16 bits)Feita pelo appFeita pelo serviço
Fila de tarefas e progressoVocê constróiJá embutido, síncrono ou assíncronoJá embutido
Funciona offline
Custo recorrenteNenhumUpgrade Pro de compra únicaPor minuto ou por assento
Quem mantémVocêO appO fornecedor
Histórico e buscaVocê constróiJá embutido, por palavra-chave e semânticaHospedado 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.

  1. 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 curl acima 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.
  2. Pasta monitorada — aponte uma Ação de Pasta ou um pequeno loop fswatch para o seu diretório de gravações e dispare a mesma chamada a cada novo arquivo. Defina export=true e a transcrição cai na sua pasta de exportação.
  3. 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.

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.