Pular para o conteúdo

Reconhecimento de fala

O Guida inclui um mecanismo de fala para texto (STT) de alto desempenho e totalmente local, baseado nos modelos Whisper da OpenAI. Ao integrar whisper.cpp diretamente ao aplicativo, o Guida deixa de ser apenas um renderizador web passivo e se torna um ouvinte ativo.

Combinado com seus LLMs locais, o Whisper funciona como uma ponte vocal para o sistema: você pode comandar o navegador, extrair dados e disparar fluxos de trabalho com linguagem natural em vez de clicar em botões.

Sua voz e seus comandos nunca saem da sua máquina. Tanto a transcrição via Whisper quanto o raciocínio via Ollama ou LlamaSharp acontecem inteiramente no seu hardware local. Não há APIs de nuvem, assinaturas nem telemetria gravando seu áudio.

O mecanismo de fala do Guida é deliberadamente otimizado para rodar na CPU usando instruções AVX2/AVX-512. Essa escolha mantém o STT fora da GPU e preserva sua VRAM para executar LLMs grandes em paralelo.

O controle de recursos garante que o mecanismo use apenas núcleos físicos da CPU, evitando sobrecarga de hyperthreading e mantendo a interface do navegador responsiva durante a transcrição.

Para começar com fluxos por voz, configure o mecanismo em Settings > Speech Recognition:

  1. Model Path: configure o caminho do modelo Whisper GGML preferido. Modelos quantizados base.en ou small.en são altamente recomendados pelo equilíbrio entre velocidade e precisão.
  2. Load model on startup: ajuste esta opção para equilibrar uso de RAM e disponibilidade imediata. Se desativada, o modelo será carregado sob demanda na primeira transcrição solicitada por script ou interface.
  3. Microphone Sovereignty: você não é mais obrigado a usar o dispositivo de áudio “Default” do Windows. Escolha explicitamente o hardware de entrada no menu suspenso, por exemplo separando um headset de alta qualidade do microfone embutido do notebook.

O Guida inclui controles de hardware e feedback visual em tempo real para que você não precise adivinhar se o navegador está ouvindo:

  • Dynamic Voice Button: o botão ”🎙 Voice” da barra principal é sensível ao estado. Ele mostra “Loading…” quando o modelo de IA está indo para RAM, “Load Voice” quando está dormindo e fica vermelho de alto contraste quando o microfone está gravando.
  • Visual Pulse: o botão de voz inclui um medidor VU integrado, uma barra verde sutil que reage à sua voz em tempo real e confirma que o hardware está funcionando.
  • Smart Silence Detection: o Guida monitora níveis de áudio. Se você gravar uma sessão vazia por engano, por exemplo com o microfone fisicamente mudo, o Guida detecta antes de enviar dados vazios para a IA e mostra uma notificação útil.
  • Mic Test Sandbox: um botão “Test” na janela Settings permite verificar seus níveis de microfone com segurança sem disparar um fluxo de IA.

O namespace g.stt permite que desenvolvedores criem fluxos guiados por voz por código.

Grava áudio do microfone selecionado por uma duração específica e transcreve diretamente para uma variável de script.

async function main() {
g.log("Ouvindo por 5 segundos...");
try {
// Gravar por 5000 milissegundos
const transcript = await g.stt.listen(5000);
g.log("Você disse: " + transcript);
if (transcript.toLowerCase().includes("resuma")) {
// Disparar um LLM local para resumir a página
const content = await g.dom.extractContent("body");
const summary = await g.llm.promptLocalLlm("llama3.2", "Resuma: " + content);
g.log("Resumo: " + summary);
}
} catch (e) {
g.log("Erro STT: " + e.message);
}
}

Processa arquivos de áudio .wav existentes no disco para extração de dados.

async function main() {
try {
const transcript = await g.stt.transcribeFile("C:\\temp\\meeting_notes.wav");
g.log("Transcrição concluída. Tamanho: " + transcript.length);
} catch (e) {
g.log("Falha ao transcrever arquivo: " + e.message);
}
}