Control de voz local en Home Assistant — Selección, despliegue y datos medidos
Comandos de voz en chino e inglés. La integración oficial de Xiaomi Home para Home Assistant tiene licencia solo para uso no comercial y no viene preinstalada; no la uses en proyectos comerciales.
Qué hace esta solución
Integra las luces, cortinas, aire acondicionado y sensores Zigbee de una casa en Home Assistant y los controla con una sola frase. Di "enciende la luz del salón" y Home Assistant lo ejecuta localmente y responde que la luz está encendida. El reconocimiento y la síntesis de voz se ejecutan en un reComputer J40 local, por lo que el audio hablado no se sube a un servicio de voz en la nube. Es adecuado para salones y dormitorios, y para integradores de domótica que entregan sistemas en casas de clientes.
- Paquete de despliegue (Docker Compose y plantilla de configuración de Home Assistant): github.com/suharvest/sensecraft-solutions
- Código fuente del motor de voz: github.com/Seeed-Solution/openvoicestream
- Selección y despliegue: página de diseño de referencia
Sin audio en la nube
La comprensión del comando y la generación de la respuesta ocurren ambas en el reComputer J40; Home Assistant se ejecuta localmente.
Texto 0,12 s después del habla
Mediana sobre 5 comandos en chino e inglés; consulta "Rendimiento y datos medidos".
Integración nativa con Home Assistant
El servicio de voz se une al asistente de voz de Home Assistant a través de la integración Wyoming Protocol, sin cambios en Home Assistant.
Dispositivos Zigbee directamente
Conecta un Connect ZBT-2 y los sensores y conmutadores Zigbee se unen a Home Assistant sin gateways de marca.
En un dispositivo real
Un intercambio en el asistente de voz de Home Assistant: el "enciende la luz del salón" hablado (en chino) es reconocido por el servicio de voz local, Home Assistant lo ejecuta y responde que la luz está encendida, y la tarjeta de la luz del salón a la derecha se enciende.


Las luces, cortinas, aire acondicionado y sensores de las capturas de pantalla son dispositivos de demostración simulados; la entrada de voz fue sintetizada por el mismo reComputer J40, no grabada de una persona.
Hardware que necesitas
Cuatro elementos en el lugar: el host de Home Assistant, el host de voz, un coordinador Zigbee y un terminal de voz.
| Dispositivo | Función | Notas |
|---|---|---|
| Host ARM64 Linux (SO de 64 bits, 8 GB de RAM) | Ejecuta Home Assistant | Uno por hogar |
reComputer J40 Series (J4012, Orin NX 16GB) | Reconocimiento y síntesis de voz locales | Descarga los modelos de voz en el primer arranque; deja al menos 30 GB de disco libres |
| Home Assistant Connect ZBT-2 | Integra dispositivos Zigbee | Se conecta a un puerto USB del host de Home Assistant |
| Home Assistant Voice Preview Edition | Terminal de voz en la habitación: escucha y reproduce respuestas | Uno por habitación |
| Sensores Zigbee SONOFF SNZB (opcional) | Temperatura, humedad y otros estados | Se unen a través del ZBT-2 |
El host de Home Assistant, el reComputer J40 y los terminales de voz comparten una misma LAN. Para la app Apple Home, el iPhone debe estar en la misma LAN que el host de Home Assistant.
Despliegue en el lugar
1. Coloca los dispositivos
El reComputer J40 solo ejecuta el servicio de voz, por lo que puede estar en un armario o rack de red y comunicarse con Home Assistant a través de la LAN; coloca un terminal de voz en cada habitación donde la gente hable.
2. Instala el software: tres pasos
Los pasos por dispositivo están en la página de diseño de referencia; esto es el esquema general.
- Host de Home Assistant: despliega Home Assistant con las frases de comando en chino, inglés y japonés incluidas y la plantilla de habitaciones/dispositivos.
- Host de voz: despliega el servicio de voz en el reComputer J40; descarga los modelos en el primer arranque y después el reconocimiento y la síntesis se ejecutan en el dispositivo.
- Conecta y comprueba: añade la integración Wyoming Protocol en Home Assistant apuntando a los dos puertos del reComputer J40, selecciónalo como reconocimiento de voz a texto y texto a voz del asistente, luego di "enciende la luz del salón" a un terminal de voz y confirma que la luz se enciende.
Interfaces
El servicio de voz se ofrece a Home Assistant a través de Wyoming Protocol; toda la demás automatización permanece en Home Assistant.
- Home Assistant: añade la integración Wyoming Protocol;
seeed-local-voiceaparece como voz a texto y texto a voz en el asistente de voz. - Apple Home / Siri: el puente HomeKit de Home Assistant sincroniza los dispositivos con el iPhone.
- Tu propio sistema: lee y escribe estados de dispositivos a través del propio API de Home Assistant.
| Puerto | Máquina | Contenido |
|---|---|---|
| HTTP 8123 | Host de Home Assistant | Interfaz web y API de Home Assistant |
| TCP 10300 | reComputer J40 | Servicio de voz a texto (Wyoming) |
| TCP 10200 | reComputer J40 | Servicio de texto a voz (Wyoming) |
Rendimiento y datos medidos
De extremo a extremo: del habla a la acción
Home Assistant se ejecutó en un host ARM64 Linux con 8 GB de RAM y el servicio de voz en un reComputer J40 Series (Orin NX 16GB); la entrada fue voz sintetizada enviada al asistente de voz de Home Assistant.
| Métrica | Resultado |
|---|---|
| Comandos de luz en chino e inglés | 5/5 ejecutados, todos gestionados localmente por Home Assistant (medido) |
| Del final del habla al texto reconocido | mediana 0,12 s, rango 0,11–0,95 s (medido) |
Reproducir: sensecraft-solutions/solutions/home_assistant_whole_home (paquete de despliegue)
Servicio de voz por sí solo
Mismo reComputer J40 Series, servicio de voz llamado directamente, voz sintetizada mono de 16 kHz como entrada.
| Texto | Primer audio de respuesta | Reconocido | Transcripción tras el final del habla |
|---|---|---|---|
| 打开客厅灯 (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) |
A través de la ruta Wyoming, dos muestras se transcribieron en 0,13 s (medido).
Reproducir: sensecraft-solutions/solutions/home_assistant_whole_home/assets/docker/docker-compose.jetson-voice.yml
Modelos y runtimes
| Dispositivo | Reconocimiento de voz | Síntesis de voz | Runtime |
|---|---|---|---|
| reComputer J40 Series | Qwen3-ASR | Matcha-TTS | TensorRT-Edge-LLM / TensorRT |
Ajustes que afectan a los resultados:
- Idioma del asistente: chino o inglés, cada uno con sus frases de comando incluidas.
- Nombres de dispositivos y habitaciones: los comandos coinciden con los nombres en Home Assistant, por lo que "living room light" debe coincidir con el nombre de la entidad.
Degradaciones conocidas
- Alias de entidad y divergencia en la formulación: La coincidencia de intenciones se basa en los nombres y alias de las entidades. Si una frase hablada se desvía significativamente del alias de entidad de Home Assistant configurado, el texto puede transcribirse correctamente sin que se dispare una automatización.
- Intenciones compuestas y secuenciales: La canalización está ajustada para el control del hogar con una sola intención; las solicitudes compuestas (por ejemplo, "turn on AC and close the blinds halfway") deben emitirse como comandos separados.
- Concurrencia de voz en múltiples clientes: Un único host J4012 atiende cómodamente de 1 a 3 endpoints satélite de voz; entradas de voz largas y simultáneas desde varias habitaciones pueden causar un ligero aumento en el tiempo hasta el primer token.
Fuentes de datos y recursos
- Las capturas de pantalla provienen de Home Assistant 2026.9.3 (Licencia Apache 2.0, home-assistant.io) con dispositivos simulados.
- La entrada de voz fue generada por la misma síntesis de voz del reComputer J40; no se utilizaron grabaciones humanas ni audio de terceros.