Controle de Voz Local no Home Assistant — Seleção, Implantação e Dados Medidos
Comandos de voz em chinês e inglês. A integração oficial Xiaomi Home para Home Assistant é licenciada apenas para uso não comercial e não vem pré-instalada; não a utilize em projetos comerciais.
O que esta solução faz
Traga as luzes, cortinas, ar-condicionado e sensores Zigbee de uma casa para o Home Assistant e controle tudo com uma frase. Diga "ligar a luz da sala" e o Home Assistant executa localmente e responde que a luz está ligada. O reconhecimento e a síntese de fala rodam em um reComputer J40 local, então o áudio falado não é enviado para um serviço de fala em nuvem. Serve para salas e quartos, e para integradores de casas inteligentes que entregam sistemas nas casas dos clientes.
- Pacote de implantação (Docker Compose e modelo de configuração do Home Assistant): github.com/suharvest/sensecraft-solutions
- Código-fonte do mecanismo de voz: github.com/Seeed-Solution/openvoicestream
- Seleção e implantação: página de design de referência
Nenhum áudio para a nuvem
Entender o comando e falar a resposta acontecem ambos no reComputer J40; o Home Assistant executa localmente.
Texto 0,12 s após a fala
Mediana em 5 comandos em chinês e inglês; veja "Desempenho e dados medidos".
Integração nativa com Home Assistant
O serviço de voz entra no assistente de voz do Home Assistant por meio da integração Wyoming Protocol, sem alterações no Home Assistant.
Dispositivos Zigbee diretamente
Conecte um Connect ZBT-2 e sensores e interruptores Zigbee entram no Home Assistant sem gateways de marca.
Em um dispositivo real
Uma interação no assistente de voz do Home Assistant: o "ligar a luz da sala" falado (em chinês) é reconhecido pelo serviço de voz local, o Home Assistant executa e responde que a luz está ligada, e o cartão da luz da sala à direita acende.


As luzes, cortinas, ar-condicionado e sensores nas capturas de tela são dispositivos de demonstração simulados; a entrada de voz foi sintetizada pelo mesmo reComputer J40, não gravada de uma pessoa.
Hardware necessário
Quatro elementos no local: o host do Home Assistant, o host de voz, um coordenador Zigbee e um terminal de voz.
| Dispositivo | Função | Observações |
|---|---|---|
| Host ARM64 Linux (SO 64 bits, 8 GB de RAM) | Executa o Home Assistant | Um por casa |
reComputer J40 Series (J4012, Orin NX 16GB) | Reconhecimento e síntese de fala locais | Faz o download dos modelos de voz na primeira inicialização; mantenha pelo menos 30 GB de disco livre |
| Home Assistant Connect ZBT-2 | Integra dispositivos Zigbee | Conecta a uma porta USB do host do Home Assistant |
| Home Assistant Voice Preview Edition | Terminal de voz no cômodo: escuta e reproduz respostas | Um por cômodo |
| Sensores Zigbee SONOFF SNZB (opcional) | Temperatura, umidade e outros estados | Entram via ZBT-2 |
O host do Home Assistant, o reComputer J40 e os terminais de voz compartilham a mesma LAN. Para o app Casa da Apple, o iPhone deve estar na mesma LAN que o host do Home Assistant.
Implantando no local
1. Posicione os dispositivos
O reComputer J40 executa apenas o serviço de voz, então ele pode ficar em um rack ou armário de rede e se comunicar com o Home Assistant pela LAN; coloque um terminal de voz em cada cômodo onde as pessoas falam.
2. Instale o software: três etapas
As etapas por dispositivo estão na página de design de referência; aqui está o resumo.
- Host do Home Assistant: implante o Home Assistant com as frases de comando em chinês, inglês e japonês incluídas e o modelo de cômodos/dispositivos.
- Host de voz: implante o serviço de voz no reComputer J40; ele baixa os modelos na primeira inicialização, depois o reconhecimento e a síntese rodam no dispositivo.
- Conecte e verifique: adicione a integração Wyoming Protocol no Home Assistant apontando para as duas portas do reComputer J40, selecione-a como fala-para-texto e texto-para-fala do assistente, depois diga "ligar a luz da sala" para um terminal de voz e confirme que a luz acende.
Interfaces
O serviço de voz é oferecido ao Home Assistant via Wyoming Protocol; toda a outra automação permanece no Home Assistant.
- Home Assistant: adicione a integração Wyoming Protocol;
seeed-local-voiceaparece como fala-para-texto e texto-para-fala no assistente de voz. - Apple Home / Siri: a ponte HomeKit do Home Assistant sincroniza os dispositivos com o iPhone.
- Seu próprio sistema: leia e escreva estados de dispositivos pela própria API do Home Assistant.
| Porta | Máquina | Conteúdo |
|---|---|---|
| HTTP 8123 | Host do Home Assistant | Interface web e API do Home Assistant |
| TCP 10300 | reComputer J40 | Serviço de fala-para-texto (Wyoming) |
| TCP 10200 | reComputer J40 | Serviço de texto-para-fala (Wyoming) |
Desempenho e dados medidos
Fim a fim: da fala à ação
O Home Assistant rodou em um host ARM64 Linux com 8 GB de RAM e o serviço de voz em um reComputer J40 Series (Orin NX 16GB); a entrada foi fala sintetizada enviada ao assistente de voz do Home Assistant.
| Métrica | Resultado |
|---|---|
| Comandos de luz em chinês e inglês | 5/5 executados, todos tratados localmente pelo Home Assistant (medido) |
| Fim da fala até texto reconhecido | mediana 0,12 s, faixa 0,11–0,95 s (medido) |
Reproduzir: sensecraft-solutions/solutions/home_assistant_whole_home (pacote de implantação)
Serviço de voz isolado
Mesmo reComputer J40 Series, serviço de voz chamado diretamente, fala sintetizada mono 16 kHz como entrada.
| Texto | Primeiro áudio de resposta | Reconhecido | Transcrição após o fim da fala |
|---|---|---|---|
| 打开客厅灯 (turn on the living room light) | 0.122 s (medido) | 打开客厅灯。 | 0.383 s (medido) |
| 关闭卧室的灯 (turn off the bedroom light) | 0.049 s (medido) | 关闭卧室的灯。 | 0.421 s (medido) |
| Turn on the living room light | 0.115 s (medido) | Turn on the living room light. | 0.579 s (medido) |
Pelo caminho Wyoming, duas amostras foram transcritas em 0,13 s (medido).
Reproduzir: sensecraft-solutions/solutions/home_assistant_whole_home/assets/docker/docker-compose.jetson-voice.yml
Modelos e runtimes
| Dispositivo | Reconhecimento de fala | Síntese de fala | Runtime |
|---|---|---|---|
| reComputer J40 Series | Qwen3-ASR | Matcha-TTS | TensorRT-Edge-LLM / TensorRT |
Configurações que afetam os resultados:
- Idioma do assistente: chinês ou inglês, cada um com suas frases de comando incluídas.
- Nomes de dispositivos e cômodos: os comandos correspondem aos nomes no Home Assistant, então "luz da sala" deve corresponder ao nome da entidade.
Degradações conhecidas
- Divergência de alias e formulação de entidade: A correspondência de intenções depende dos nomes e aliases das entidades. Se uma frase falada divergir significativamente do alias de entidade configurado no Home Assistant, o texto pode ser transcrito corretamente sem disparar uma automação.
- Intenções compostas e sequenciais: O pipeline é ajustado para controle residencial com uma única intenção; solicitações compostas (por exemplo, "ligar o ar-condicionado e fechar as persianas até a metade") devem ser emitidas como comandos separados.
- Concorrência de voz em múltiplos clientes: Um único host J4012 atende confortavelmente de 1 a 3 endpoints de satélites de voz; entradas de fala longas e simultâneas de vários cômodos podem causar um leve aumento no tempo até o primeiro token.
Fontes de dados e recursos
- As capturas de tela vêm do Home Assistant 2026.9.3 (Licença Apache 2.0, home-assistant.io) com dispositivos simulados.
- A entrada de voz foi gerada pela mesma síntese de fala do reComputer J40; não foram usadas gravações humanas nem áudio de terceiros.