LançamentoAnálise · No radarHabr AI→ original

App AI Assistant lanca assistente de voz para PC 100% local

No Windows, o App AI Assistant monta um fluxo de voz totalmente local: o Vosk detecta a fala e as interrupcoes, o Faster-Whisper refina a transcricao, o Gemma 3 gera a resposta e o Silero a transforma em voz. Os componentes se comunicam por HTTP e WebSocket, permitindo conectar separadamente o reconhecimento, a sintese e o LLM a aplicativos proprios. O codigo esta disponivel sob a licenca MIT, enquanto o instalador prepara o ambiente e verifica os arquivos baixados.

Processado por IA de Habr AI; editado por Hamidun News
App AI Assistant lanca assistente de voz para PC 100% local
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
Dado-chave #1O assistente funciona sem APIs de nuvem, assinaturas ou envio das conversas para fora do computador.
Dado-chave #2Os servicos separados de STT, TTS e LLM podem ser acessados por clientes HTTP convencionais.
Dado-chave #3No momento, apenas o Windows 10/11 e compativel, e e necessario usar fones de ouvido para conversar.

Um assistente de voz local muitas vezes funciona bem apenas no diagrama. Na pratica, o desenvolvedor recebe um emaranhado de reconhecimento de fala, modelo local, sintese de voz, filas de audio e logica de interrupcao. O App AI Assistant tenta transformar esse emaranhado em um produto funcional para desktop: o usuario fala, o sistema reconhece a frase, uma instancia local do Gemma 3 prepara a resposta, o Silero comeca a reproduzi-la em partes e, quando o usuario fala novamente, a reproducao e interrompida.

O projeto funciona sem APIs de nuvem e foi publicado sob a licenca MIT. Isso o torna util nao apenas como um "Jarvis" pronto, mas tambem como exemplo de engenharia: as partes individuais podem ser executadas de forma independente e conectadas a aplicativos escritos em Python, C#, Java, JavaScript ou Go.

Como funciona o fluxo de voz

O autor dividiu o sistema em um orquestrador grafico e tres servicos: srv_stt para reconhecimento, srv_llm para geracao de respostas e srv_tts para sintese de voz. Eles trocam dados por HTTP e WebSocket. Essa abordagem permite trocar a interface ou usar apenas o componente necessario sem reescrever todo o assistente.

O reconhecimento usa uma combinacao de Vosk e Faster-Whisper. O Vosk detecta rapidamente o inicio de uma nova fala e ajuda a implementar o barge-in, ou seja, a interrupcao do assistente por voz. Em seguida, o Faster-Whisper produz uma transcricao final mais precisa. O Gemma 3 gera a resposta por meio do llama-cpp-python, enquanto o Silero transforma o texto em fala. Antes da sintese, uma camada separada normaliza numeros e abreviacoes, que os mecanismos de voz frequentemente pronunciam de forma incorreta.

Em um exemplo simples, o processo funciona assim. O usuario pede para abrir uma pasta de trabalho. O modulo de reconhecimento envia o texto ao orquestrador, o modelo seleciona um cenario configurado e o assistente executa o script Python correspondente. Se o usuario disser outro comando logo em seguida, o Vosk detecta a fala, a reproducao e interrompida e um novo ciclo comeca. Um breve resumo das conversas anteriores pode ser preservado entre as sessoes.

Por que os servicos foram separados

Cada componente esta disponivel como um servidor HTTP independente. O desenvolvedor de um aplicativo em C# pode iniciar apenas srv_stt e srv_tts para adicionar uma interface de voz. Um aplicativo Java pode acessar srv_llm como uma API local. Isso e mais pratico do que uma integracao monolitica, na qual a troca do modelo ou do mecanismo de reconhecimento afeta todo o produto.

O autor preparou um assistente de instalacao separado. Ele baixa versoes portateis do Python e do Git, verifica os arquivos por SHA-256, cria ambientes virtuais, instala as dependencias e gera arquivos executaveis com o PyInstaller. O Docker nao e usado de forma deliberada: o publico-alvo e formado por proprietarios de computadores Windows comuns, para os quais WSL2, virtualizacao e Docker Desktop seriam uma barreira adicional.

O pacote tambem inclui o infrastructure2, um conjunto compartilhado de modulos para logs, clientes HTTP, configuracoes, gerenciamento de processos, transmissao de dados por streaming e criacao de executaveis. Ele nao e uma parte obrigatoria do assistente de voz, mas o repositorio mostra como o autor reduz a duplicacao entre varios projetos Python.

Limitacoes e conclusao pratica

Por enquanto, o projeto foi desenvolvido apenas para Windows 10 e 11. O suporte a modelos esta vinculado ao modelo-base do Gemma, e o cancelamento de eco ainda nao foi concluido. Por isso, o som dos alto-falantes pode voltar a ser captado pelo microfone e interpretado como uma nova fala; o autor recomenda usar fones de ouvido. O repositorio infrastructure2 tambem continua pouco documentado.

Os desenvolvedores devem encarar o App AI Assistant nao como um substituto universal para assistentes de nuvem, mas como uma plataforma pronta para testar uma interface de voz local. Seus pontos fortes sao um fluxo transparente feito com componentes acessiveis e a possibilidade de aproveitar apenas STT, TTS ou LLM. Antes da implementacao, e importante verificar a latencia e o consumo de memoria no computador de destino, analisar os comandos de voz permitidos e isolar a execucao dos scripts do usuario. A operacao local impede que as conversas sejam enviadas para a nuvem, mas, por si so, nao torna segura a execucao de comandos.

História

Perguntas frequentes sobre a notícia

Como funciona o fluxo de voz?

O autor dividiu o sistema em um orquestrador grafico e tres servicos: srv_stt para reconhecimento, srv_llm para geracao de respostas e srv_tts para sintese de voz. Eles trocam dados por HTTP e WebSocket. Essa abordagem permite trocar a interface ou usar apenas o componente necessario sem reescrever todo o assistente. O reconhecimento usa uma combinacao de Vosk e Faster-Whisper. O Vosk detecta rapidamente o inicio de uma nova fala e ajuda a implementar o barge-in, ou seja, a interrupcao do assistente por voz.

Por que os servicos foram separados?

Cada componente esta disponivel como um servidor HTTP independente. O desenvolvedor de um aplicativo em C# pode iniciar apenas srv_stt e srv_tts para adicionar uma interface de voz. Um aplicativo Java pode acessar srv_llm como uma API local. Isso e mais pratico do que uma integracao monolitica, na qual a troca do modelo ou do mecanismo de reconhecimento afeta todo o produto. O autor preparou um assistente de instalacao separado.

O que se sabe sobre Limitacoes e conclusao pratica?

Por enquanto, o projeto foi desenvolvido apenas para Windows 10 e 11. O suporte a modelos esta vinculado ao modelo-base do Gemma, e o cancelamento de eco ainda nao foi concluido. Por isso, o som dos alto-falantes pode voltar a ser captado pelo microfone e interpretado como uma nova fala; o autor recomenda usar fones de ouvido. O repositorio infrastructure2 tambem continua pouco documentado.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…