Diga o que eu disse: ditado sem a reescrita da IA
Ditado com IA reescreve sua fala: perde ressalvas, inverte o sentido. Por que o polimento com LLM parafraseia você e o Keebye continua literal.
Existe uma queixa sobre ditado com IA que soa paradoxal até você viver isso: a transcrição estava boa — o que estragou tudo foi o que aconteceu depois da transcrição. Você disse uma coisa e a ferramenta entregou uma coisa polida, confiante e ligeiramente diferente. Uma ressalva silenciosamente removida. Uma hesitação apagada. Uma frase reestruturada em algo que você nunca diria. E na pior versão do padrão — a que faz as pessoas abandonarem uma ferramenta na hora — o sentido se inverte. "Não faça deploy até os testes passarem" sai do outro lado como uma instrução sobre fazer deploy, sem o não.
Para ditado casual isso é um aborrecimento. Para o jeito como eu de fato uso ditado — alimentando prompts para o Claude Code, o fluxo de Dirigindo o Claude Code com a sua voz — é veneno. Um agente de código toma as suas palavras como especificação. Ele não sabe que a sua ferramenta de ditado parafraseou você. Se a ressalva que tornava a instrução segura foi alisada entre a sua boca e o terminal, o agente vai executar alegremente a versão alisada. Precisão é o ponto inteiro de um prompt, e uma camada de reescrita por IA é uma máquina de remover precisão fazendo o resultado parecer mais deliberado.
Por que ferramentas de ditado com IA reescrevem o que você disse?
A resposta no nível da categoria não é que alguém tenha se proposto a distorcer a fala. É que "limpe esta transcrição" é um recurso genuinamente atraente, e o jeito óbvio de construí-lo é passar a transcrição bruta por um modelo de linguagem.
A fala bruta é bagunçada — vícios de linguagem, falsos começos, palavras repetidas, pontuação faltando. Um LLM encarregado de arrumar isso produz uma saída linda. O problema é que um modelo de linguagem não edita, no sentido em que um revisor humano removendo "hum" edita. Ele regenera. A saída é um texto novo que o modelo considera uma boa versão da sua entrada, e "boa" é onde a sua intenção vaza. Modelos treinados para prestatividade e fluência têm opiniões: hesitações parecem ruído, ressalvas parecem entulho, uma formulação desajeitada mas precisa parece algo a melhorar. Na maior parte do tempo a reescrita é inofensiva. Mas é probabilística, e você não consegue dizer pela saída quais frases foram transcritas e quais foram compostas. O polimento é uniforme; a fidelidade não.
Esse é o problema profundo dos pipelines de polimento com LLM: eles falham em silêncio e com confiança. Um reconhecedor de fala que ouve errado normalmente produz algo visivelmente errado. Uma camada de reescrita que trai você produz algo visivelmente certo — gramatical, plausível, vestindo a sua voz —, que é exatamente por que o "não faça deploy" invertido é enviado em vez de ser pego.
Literal por padrão
A posição do Keebye é simples: o que o modelo de fala para texto ouviu é o que cai no seu cursor. Por padrão, nenhum modelo de linguagem fica entre a transcrição e o seu terminal compondo uma versão melhor de você — o estágio de polimento padrão é uma lista curta de regras determinísticas, e é só isso.
Essa é uma aposta deliberada, e ela vem do caso de uso de vibecoding. Quando o seu ditado é o canal de controle de agentes de código, o trabalho da ferramenta é transporte, não autoria. Você é o autor; o agente é o público; a camada de ditado não deveria ter opiniões. Esse fluxo — falar prompts inteiros em vez de digitá-los — está descrito em ditado por voz para prompts de IA.
Existe um polimento com LLM no Keebye — já chego nele —, mas é opt-in, roda inteiramente na sua máquina e opera sob uma proteção projetada para rejeitar formas comuns de desvio, expansão descontrolada e repetição. Se a saída não passa nessa checagem, o Keebye volta para as regras. O padrão continua sendo regras.
Então o que a limpeza faz de fato?
Literal não precisa significar bruto. O Keebye traz uma passagem de limpeza opcional — enhancement, ligada por padrão e sobrescrevível por app —, mas ela é baseada em regras, não em modelo, e a lista completa do que ela faz cabe em um parágrafo:
Ela remove vícios de linguagem isolados (hum, é, tipo, sabe). Ela colapsa repetições imediatas de palavras — "o o" vira "o". Ela colapsa espaços em branco. Ela coloca a primeira letra em maiúscula e adiciona um ponto final se você não terminou com um. Essa é a lista inteira. As regras são determinísticas e de escopo estreito; elas não reordenam orações, não removem negações nem substituem sinônimos deliberadamente.
Antes de a limpeza rodar, as substituições do seu dicionário se aplicam — trocas definidas por você para o jargão e os nomes próprios que os modelos de fala estropiam, para que "pnpm" e os nomes dos seus módulos cheguem escritos do jeito que o seu código os escreve.
E se até a passagem baseada em regras for mais intervenção do que você quer, desligue o enhancement e o Keebye insere a transcrição bruta do modelo de fala: vícios de linguagem, repetições e tudo mais. Para alguns contextos — citar alguém, ditar em um campo onde o ponto final atrapalha —, a transcrição bruta é a melhor escolha, e a sobrescrita por app permite escolhê-la.
O polimento opt-in, e a proteção de fidelidade em volta dele
Agora o LLM que prometi. Para quem realmente quer uma limpeza mais esperta, o Keebye oferece um modo de polimento opcional (polish_mode definido como local_llm): um modelo Qwen3 pequeno rodando on-device via llama.cpp, acelerado por Metal, sem nada enviado a lugar nenhum. As instruções dele são a versão estreita de polimento — corrigir pontuação e maiúsculas, remover vícios de linguagem, manter as palavras exatas, o idioma e o sentido do usuário, preservar código e nomes de arquivo literalmente. A geração é determinística (amostragem gulosa, mesma entrada → mesma saída) e limitada; se o modelo travar além de um prazo de dois segundos, a saída dele é descartada.
Mas instruções são esperanças, e este artigo existe porque esperanças não são garantias. Então todo resultado polido por LLM passa por uma proteção de fidelidade antes de poder tocar o seu cursor. A saída precisa reter ao menos 50% dos tokens da transcrição original. Ela não pode inchar — qualquer coisa além de aproximadamente o dobro do comprimento original (mais quatro tokens) falha. Repetição descontrolada é detectada. Se o resultado polido falhar em uma dessas checagens, o Keebye o descarta e volta para a limpeza baseada em regras.
Essa proteção pega perda severa de tokens, expansão descontrolada e repetição antes que a saída do modelo possa substituir a transcrição limpa por regras. É uma heurística, não uma prova semântica: uma reescrita curta ou uma negação trocada ainda podem passar pelos limiares. Se uma ressalva não pode se dar ao luxo de desviar, deixe o polimento com IA desligado e revise o texto inserido antes de enviá-lo.
Os limites honestos
Literal significa literal. Se você divaga, a sua divagação cai no cursor — até o polimento opt-in é instruído e protegido em direção à limpeza, não à composição, então o Keebye não vai transformar um pensamento sinuoso em uma instrução nítida. A disciplina de dizer o que você quer dizer continua com você.
A limpeza baseada em regras é intencionalmente burra. Ela remove "hum"; ela não vai corrigir a sua gramática, reestruturar uma frase interminável nem notar que você se contradisse. Qualquer coisa mais esperta reintroduziria os julgamentos que este projeto existe para evitar.
E a fidelidade protege contra reescrita, não contra erro de reconhecimento. Se o modelo de fala ouve "cache" como "cash", esse erro é fielmente preservado — a proteção não faz ideia do que você queria dizer, apenas do que foi transcrito. Ditado literal move a fronteira de confiança para o modelo de fala para texto; ele não a elimina. (Relacionado: se o seu problema é o modelo transcrever no idioma errado inteiro, essa é outra falha com outra solução — fixe o idioma do seu ditado.)
Por fim, o enquadramento da categoria: polimento com IA não é golpe, e muitos usuários genuinamente preferem uma saída que se lê mais fluida do que eles falam. Se esse é o seu caso, outras ferramentas apostam bem nisso, e as nossas comparações dizem isso honestamente — Keebye vs Wispr Flow e Keebye vs Superwhisper incluem uma seção real de "quando a outra ferramenta serve melhor".
Transporte, não autoria
O acordo que o Keebye oferece é estreito de propósito: você fala, e uma transcrição levemente limpa cai onde o seu cursor está. Quando essas palavras são prompts para um agente que vai agir sobre elas literalmente, estreito é um recurso. A coisa mais cara que uma ferramenta de ditado pode fazer com um desenvolvedor não é um erro de digitação. É uma frase fluente que você nunca disse.
O Keebye está em acesso antecipado para macOS. Comece o teste grátis abaixo, dite "Não faça deploy até os testes passarem" e verifique se essa restrição exata sobrevive à limpeza. Esse teste é o produto inteiro.
Teste a instrução que não pode se dar ao luxo de desviar
Comece o teste grátis e dite um prompt com uma ressalva crítica — de preferência um "não" — e depois inspecione o que chegou.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Continue lendo
Ditando prompts para agentes paralelos, lane por lane
Rodar dois ou três agentes de código ao mesmo tempo transforma o prompt no gargalo. Um fluxo por voz para alimentar lanes paralelas sem sair da que você está.
Claude Code por voz: construção em lanes paralelas
Agentes de código de IA fizeram da digitação o gargalo. Um fluxo prático para ditar prompts, revisões e novos rumos em lanes paralelas no macOS.
Ditado que sobrevive ao terminal
Colar ditado falha em silêncio em terminais, SSH, tmux e layouts não QWERTY. Por que a área de transferência falha ali e o que faz o modo de digitação.