Engenharia

Reconhecimento de voz multimodal: construindo um ouvinte que vê o que você vê

Por que ASR só com áudio ainda falha em fluxos reais, e como o Loqua usa contexto local da tela para desfazer ambiguidades de intenção.

Resumo

Reconhecimento de voz multimodal é a camada que faltava entre transcrição e ditado útil. O Loqua é uma ferramenta de digitação por voz nativa para Mac que combina áudio com contexto local da tela, metadados do app ativo e o entorno do cursor. Isso permite que o mesmo som vire o identificador, a instrução ou o texto formatado correto no aplicativo de destino.

O reconhecimento de fala baseado apenas em áudio ficou bom o bastante para que suas falhas restantes sejam fáceis de subestimar. Benchmarks com fala limpa escondem o problema real de produto: usuários ditam dentro de apps, perto de código visível, misturam idiomas e usam referências parciais como "esta função" ou "o bullet acima".

Onde o ASR ainda falha

O exemplo clássico são homófonos. "From foo import bar" e from foo import bar soam parecidos, mas pertencem a mundos diferentes. O mesmo vale para "cache the auth client" e "cash the auth client" se o modelo não sabe que o cursor está em um arquivo TypeScript. Só o áudio não infere o destino de forma confiável.

Identificadores de código tornam isso mais nítido. O usuário pode dizer "fetch profile", mas a função visível é fetchProfile. Um modelo de transcrição ouve palavras; um modelo de ditado deve preservar o identificador. O reconhecimento de voz multimodal trata o texto visível como evidência, não como decoração.

Dêixis é a terceira aresta. Quando alguém diz "substitua isto por uma guard clause", o texto falado é tecnicamente um pedido completo, mas seu significado depende inteiramente do que "isto" aponta. Sem consciência da seleção ou uma referência estável do cursor, o sistema precisa adivinhar, e qualquer palpite errado custa mais tempo do que redigitar. ASR só com áudio não resolve dêixis; ele só transcreve o demonstrativo e torce para uma ferramenta downstream entender.

  • Homófonos: inglês comum versus sintaxe de código.
  • Entidades: nomes de pacotes, classes, caminhos de arquivo e flags de comando.
  • Dêixis: "isto", "aquilo", "acima", "a parte selecionada".
  • Formato: prosa, bullet, comentário de código, mensagem de commit ou prompt.

A arquitetura do ouvinte multimodal

O ouvinte do Loqua tem três entradas locais: recursos de áudio em streaming, contexto derivado da tela e metadados do app. O caminho de áudio propõe o que foi dito. O caminho de contexto resume onde o texto vai entrar: app, tipo de campo, texto selecionado, tokens próximos e pistas estruturais visíveis. O caminho do app acrescenta restrições, como se quebras de linha, Markdown ou sintaxe de código fazem sentido.

O ouvinte não precisa entender a tela inteira como um humano entenderia. Ele precisa da evidência mínima útil para o ditado. No VS Code, isso pode significar identificadores visíveis, modo de linguagem e código selecionado. No Slack, pode ser o tópico da thread e o tom recente. No Notes, pode ser o nível de título e o contexto de lista.

O que deliberadamente não tentamos fazer

Algumas capacidades ficam fora do escopo de propósito. O ouvinte não faz OCR em capturas de tela de conteúdo remoto, não resume janelas nas quais o usuário não está digitando ativamente e não cria um histórico visual persistente. Ele também não tenta inferir intenção detalhada a partir de imagens: um gráfico, um frame de vídeo ou uma tela de design não é interpretado; apenas o texto ao redor é usado. Cada remoção é uma escolha deliberada de produto que troca capacidade por previsibilidade e por um limite de privacidade mais limpo.

É por isso que chamamos isso de ditado audiovisual apenas no sentido restrito de produto: áudio mais contexto visual para escrever. O objetivo não é raciocínio visual geral. O objetivo é ter menos palavras erradas no cursor.

Como o contexto da tela resolve ambiguidades

Ditado com contexto de tela muda a saída ao restringir as possibilidades. Se o cursor está dentro de um arquivo Python e a linha visível já contém from fastapi import, a palavra falada "router" tem mais chance de ser um símbolo do que um substantivo genérico. Se o cursor está no Gmail, a mesma frase deve virar uma sentença.

Você diz
"add a guard before fetch profile if auth client is missing"
O Loqua escreve (no VS Code)
if (!authClient) return null;
const profile = await fetchProfile(authClient);
Você diz
"can you take a look at the PR I just pushed and let me know if the retry logic looks right"
O Loqua escreve (no Slack)
Could you take a look at the PR I just pushed? Want to make sure the retry logic looks right.

O ouvinte também lida com edição consciente da seleção. Se há texto selecionado, o ditado é interpretado como uma instrução sobre esse texto, a menos que o usuário peça explicitamente para inserir uma nova prosa. Essa única distinção remove uma classe inteira de duplicações acidentais.

Conflitos de contexto são tratados confiando primeiro na evidência mais forte. O app ativo é o sinal mais confiável porque é estruturalmente garantido pelo sistema operacional. O texto selecionado vem em seguida. Tokens visíveis próximos são o sinal mais fraco, porque podem estar desatualizados ou ser acidentais. Quando dois sinais discordam, o ouvinte prefere o mais rígido e reduz a confiança, em vez de escolher um e se comprometer.

Privacidade: o contexto da tela fica local

Reconhecimento de fala sensível ao contexto tem custo de privacidade se for implementado sem cuidado. A regra do Loqua é que o contexto de tela necessário ao ouvinte fica local por padrão. O resumo de contexto é calculado no dispositivo; ele é usado para moldar a fala atual; ele não é retido como um log geral da tela.

Concretamente, o que chega ao ouvinte no dispositivo é um pacote curto e efêmero de contexto: identificador do app ativo, linguagem e tipo de campo, intervalo de seleção e algumas centenas de caracteres de texto visível próximo. O que nunca sai do dispositivo por padrão é o conteúdo amplo da janela, outras abas, outros apps ou qualquer histórico persistente desses dados. Recursos opcionais em nuvem, quando ativados pelo usuário, recebem o áudio ou texto ditado dentro dos limites já descritos em nossa nota de privacidade híbrida; eles nunca recebem o pacote bruto de contexto.

Esse limite importa porque um ouvinte que vê o que você vê pode observar código, mensagens ou rascunhos. Tratamos isso como dado sensível. A arquitetura de privacidade é coberta em mais detalhe em nossa nota de privacidade híbrida, mas a versão curta é clara: o caminho de contexto de tela é local-first, e recursos opcionais em nuvem não recebem conteúdo bruto da tela ao redor.

Contexto de pesquisa aberta

O pano de fundo de pesquisa inclui modelagem áudio-linguagem, projeção visão-linguagem e ajuste multimodal por instruções. Bons pontos de partida incluem Whisper para ASR robusto, LLaVA para padrões de ajuste visual por instruções e ImageBind para alinhamento entre modalidades.

Esses papers são contexto de literatura. A stack de reconhecimento de voz multimodal do Loqua é trabalho original ajustado para a superfície de ditado no Mac: contexto local, streaming de baixa latência e saída consciente do app. Tomamos emprestado o vocabulário do campo, não uma cadeia de dependências.

Roadmap

O próximo passo é relatar melhor a incerteza. Se o contexto sugere dois identificadores possíveis, o sistema deve preservar a ambiguidade em vez de inventar confiança. Também queremos adaptadores de app mais refinados para terminais, planilhas, painéis de chat em IDEs e ferramentas de design, onde a forma da saída útil muda drasticamente.

O adaptador de terminal é o trabalho de curto prazo mais concreto. Um terminal é estruturalmente uma única linha no cursor, mas contextualmente é um longo histórico de comandos e saídas anteriores que deve informar o que o usuário está prestes a digitar. Um adaptador de planilha tem a forma oposta: uma janela de contexto visível minúscula, com significado rígido de colunas. Os dois adaptadores reutilizam a mesma arquitetura de ouvinte; a diferença está no que conta como evidência e de onde o renderizador de texto tira suas pistas de formatação.

A direção de longo prazo não é "o modelo vê tudo". É mais estreita e mais segura: o ouvinte vê contexto local suficiente para escrever o que você quis dizer, onde você quis dizer, com menos limpeza depois. Essa é a promessa de produto do reconhecimento de voz multimodal.

Perguntas frequentes

O que é reconhecimento de voz multimodal?
Reconhecimento de voz multimodal combina áudio com outro sinal, como contexto de tela ou metadados do app, para inferir a saída escrita pretendida. No Loqua, isso significa que o sistema não apenas transcreve a fala; ele também considera onde o cursor está e qual texto aparece por perto.
Por que ASR só com áudio falha em código?
Código contém identificadores, nomes de pacotes, caixa, pontuação e sintaxe que podem não ser óbvios apenas pelo som. Um modelo pode ouvir 'fetch profile' corretamente e ainda perder que o identificador visível é fetchProfile. O contexto de tela dá ao reconhecedor evidências que o áudio não tem.
O Loqua grava minha tela?
Não no sentido de produto descrito aqui. O Loqua lê o contexto local necessário para o evento de ditado atual, como app ativo, texto selecionado e texto visível próximo. Ele não foi projetado como um gravador contínuo de tela, e o caminho de contexto fica local por padrão.
Como isso é diferente de um dicionário pessoal?
Um dicionário pessoal mapeia frases conhecidas para grafias preferidas. O contexto multimodal pode resolver frases que o usuário nunca cadastrou, olhando para a evidência visível. Se um identificador aparece perto do cursor, o Loqua pode preservá-lo sem exigir uma entrada manual no dicionário.
O contexto de tela pode errar?
Sim. Se o contexto visível estiver desatualizado, ambíguo ou irrelevante, o ouvinte pode se ajustar demais a ele. O desafio de produto é calibração: usar contexto quando ele é forte, preservar a fala bruta quando houver incerteza e evitar uma reescrita confiante a partir de evidência fraca.
Reconhecimento de voz multimodal é só para desenvolvedores?
Não. Desenvolvedores sentem a dor primeiro porque código é denso em identificadores. A mesma ideia ajuda em e-mail, notas, planilhas, ferramentas de projeto e chat. O app de destino muda o que a frase falada deve virar, mesmo quando as palavras são comuns.
O que exatamente existe no pacote de contexto que o ouvinte recebe?
Um payload efêmero: identificador do app ativo, tipo de campo e modo de linguagem, intervalo de seleção atual e uma pequena janela de texto visível próximo — normalmente algumas centenas de caracteres. Ele é criado por fala, usado durante o ditado e não é persistido como log geral da tela.

Experimente a Loqua hoje

Comece de graça. Nativo para Mac. Criado por pesquisadores de algoritmos que usam o produto todos os dias.

Baixar para Mac

Mais no Blog da Loqua

Engenharia
Digitação por voz omni-modal: entendimento multimodal, MoE e saída de texto em streaming
Como fazer
Como ditar código no Mac: guia completo para Cursor, VS Code e Claude Code
Comparativo
Loqua vs Typeless: uma alternativa ao Typeless nativa para Mac, com contexto, código e profundidade