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.

Teodor Deleanu10 de julho de 20268 min de leitura

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 trial

Early 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