1 pontos por GN⁺ 2026-03-18 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Um relato organizado passo a passo de como se construiu um assistente de voz totalmente local baseado em Home Assistant, abandonando o Google Home
  • Uso de llama.cpp e de uma arquitetura local-first para alcançar respostas rápidas e privacidade, sem dependência da nuvem
  • Testes com várias combinações de GPU, modelos, STT e TTS, comparando desempenho e qualidade para chegar à configuração ideal
  • Implementação de funções do dia a dia, como clima, busca e reprodução de música, por meio de design de prompts e scripts de automação
  • Como resultado, foi concluído um ambiente de assistente de voz local confiável, com privacidade garantida

Configuração de hardware

  • O Home Assistant roda em um UnRaid NAS, e o servidor de voz usa um Beelink MiniPC com suporte a USB4 e um gabinete eGPU
    • Foram testados vários modelos de GPU, como RTX 3050~3090 e RX 7900XTX
    • A RTX 3090 e a RX 7900XTX entregaram respostas em 1~2 segundos, enquanto a RTX 3050 ficou em cerca de 3 segundos
  • O hardware de voz é composto por HA Voice Preview Satellite, 2 unidades do Satellite1 Small Squircle Enclosure e Pixel 7a

Modelos e desempenho

  • Foram testados vários modelos, como GGML GPT-OSS:20B, Unsloth Qwen3 series e GLM 4.7 Flash (30B)
  • Todos os modelos oferecem suporte básico a tool calling
  • Os critérios de avaliação incluíram controle de vários dispositivos, compreensão de contexto, tratamento de comandos mal reconhecidos e capacidade de ignorar entradas incorretas

Software do servidor de voz

  • llama.cpp é recomendado como executor de modelos
  • Entrada de voz (STT)
    • Wyoming ONNX ASR (Nvidia Parakeet V2, branch OpenVINO): tempo de inferência na CPU de cerca de 0,3 segundo
    • Rhasspy Faster Whisper: relativamente mais lento com base em ONNX na CPU
  • Saída de voz (TTS)
    • Kokoro TTS: permite várias combinações de vozes e lida bem com texto
    • Piper (CPU): oferece suporte a várias vozes, mas tem pontos fracos com números e endereços
  • Integração de LLM no Home Assistant
    • LLM Conversation: melhora a qualidade básica da conversa
    • LLM Intents: fornece ferramentas como busca na web, busca de locais e previsão do tempo

Transição do Google Assistant para um assistente local

  • Como o Google Assistant foi gradualmente perdendo precisão de resposta e funcionalidades, surgiu a necessidade de substituí-lo
  • Questões de privacidade e a impossibilidade de controle em caso de falhas na nuvem também foram fatores centrais da migração

Tentativas iniciais e melhorias nos modelos

  • No início, foi usado o modelo padrão do Ollama, mas as falhas em tool calling eram frequentes
  • O desempenho melhorou significativamente com o uso de modelos GGUF de alta precisão do HuggingFace
  • Para evitar cortes na saída de voz causados por instabilidade no Wi‑Fi, foram configurados streaming e uma rede IoT dedicada

Expansão de recursos e design de prompts para LLM

  • O assistente de voz foi configurado para executar clima, horário de funcionamento, conhecimento geral e reprodução de música
  • A integração com llm-intents ampliou os recursos, mas os resultados iniciais foram limitados
  • O design de prompts teve papel central
    • A adição de seções # por serviço e listas de instruções detalhadas aumentou a precisão do tool calling do LLM
    • A remoção de exclamações e emojis desnecessários garantiu um formato de resposta amigável para TTS
    • O ChatGPT foi usado para aprimorar os prompts de forma iterativa

Resolução de problemas com automação

  • Como o recurso de reprodução de música não podia ser executado diretamente pelo LLM, ele foi complementado com scripts de automação do Home Assistant
    • O comando “Play {music}” serve como gatilho para reproduzir música no media_player correspondente ao dispositivo satellite solicitado
    • O comando “Stop playing” permite interromper a reprodução
  • Em atualizações posteriores, o LLM passou a realizar busca e reprodução de música de forma natural, mas a automação continua sendo uma abordagem útil

Treinamento de wake word personalizada

  • Em vez da wake word padrão, foi usado “Hey Robot”
  • O treinamento foi feito por cerca de 30 minutos com microWakeWord-Trainer-Nvidia-Docker
  • A taxa de falsos positivos ficou no nível do Google Home, com possibilidade de melhoria por meio de função de mudo automático

Resultado final

  • Embora seja um pouco complexo para o usuário médio, foi concluído um ambiente de assistente de voz local com ajustes finos
  • Ele oferece proteção de privacidade, controle estável e ajuste de desempenho personalizado
  • Como assistente de voz totalmente independente da nuvem, conseguiu reunir confiabilidade e diversão

Ainda não há comentários.

Ainda não há comentários.