M5Stack Atom Echo y Xiaozhi: El Futuro del Control por Voz Privado en Español
Un dispositivo de 15€ del tamaño de un dado puede hacer lo mismo que un Amazon Echo de 60€. La diferencia: tu voz nunca sale de tu casa.
M5Stack Atom Echo y Xiaozhi ESP32 son la revolución del control por voz privado. Con Home Assistant, Whisper y Piper, puedes crear un ecosistema de asistentes de voz que funcionan 100% en local, sin suscripciones y con soporte completo para español.
¿Por qué necesitas un asistente de voz privado?#
Cada vez que dices "Alexa" o "Hey Google", tu voz viaja a servidores en Estados Unidos donde es procesada, almacenada y, a menudo, revisada por humanos.
El problema de los asistentes comerciales#
| Aspecto | Amazon Echo | Google Home | Asistente local |
|---|---|---|---|
| Privacidad | Audio en servidores AWS | Audio en servidores Google | 100% local |
| Grabaciones | Almacenadas indefinidamente | Almacenadas 18 meses | No hay grabaciones |
| Requiere internet | Sí | Sí | No |
| Funciona offline | No | No | Sí |
| Coste mensual | €0 (eres el producto) | €0 (eres el producto) | €0 |
| Personalización | Limitada | Limitada | Total |
| Idioma español | Sí (con acento forzado) | Sí | Sí (natural) |
"Si no pagas por el producto, tú eres el producto. Amazon y Google monetizan tus conversaciones." — Cory Doctorow, activista digital
La alternativa: Asistentes ESP32 con Home Assistant#
Home Assistant lanzó en 2023 el "Year of the Voice", un proyecto ambicioso para crear asistentes de voz totalmente locales y privados. En 2026, el ecosistema está maduro:
- Whisper: Transcripción de voz a texto (STT) local
- Piper: Síntesis de voz (TTS) en español con voces naturales
- openWakeWord: Detección de palabra de activación local
- Wyoming Protocol: Conecta todo con Home Assistant
M5Stack Atom Echo: Review completa#
¿Qué es el M5Stack Atom Echo?#
El Atom Echo es un altavoz inteligente del tamaño de un cubo de 24mm basado en ESP32 con micrófono integrado y un pequeño altavoz. Home Assistant lo recomienda como el dispositivo de 13 dólares para control por voz.
Especificaciones técnicas#
| Característica | Especificación |
|---|---|
| Procesador | ESP32-PICO-D4 (dual-core, 240MHz) |
| Memoria | 4MB Flash, 520KB SRAM |
| Micrófono | SPM1423 (MEMs) |
| Altavoz | 0.5W (8Ω) |
| Conectividad | WiFi 2.4GHz, Bluetooth |
| LED | SK6812 RGB direccionable |
| Alimentación | 5V via USB-C |
| Dimensiones | 24 x 24 x 17 mm |
| Precio | €12-18 |
Puntos fuertes#
- Tamaño minúsculo: Cabe en cualquier rincón
- Bajo consumo: ~0.5W en standby
- Fácil de flashear: ESPHome compatible
- Económico: 3-4 unidades por el precio de un Echo Dot
- Integración oficial: Documentado por Home Assistant
Puntos débiles#
- Altavoz pequeño: Sonido limitado, no apto para música
- Micrófono único: Peor captación que arrays de micrófonos
- Sin jack 3.5mm: No puedes conectar altavoz externo fácilmente
- ESP32 antiguo: No tiene el rendimiento del S3
Dónde comprar#
- AliExpress: €12-15 (envío 15-30 días)
- Amazon España: €18-22 (envío rápido)
- Tienda oficial M5Stack: €13 + envío
Xiaozhi ESP32: La alternativa open source#
¿Qué es Xiaozhi?#
Xiaozhi es un proyecto open source chino que ha revolucionado el mundo de los asistentes de voz DIY. Es un chatbot de voz basado en ESP32 con integración de LLMs y soporte para más de 30 módulos de hardware.
Diferencias con Atom Echo#
| Aspecto | Atom Echo | Xiaozhi |
|---|---|---|
| Enfoque | Hardware comercial + ESPHome | Framework open source completo |
| LLM integrado | No (depende de HA) | Sí (DeepSeek, Qwen, etc.) |
| Backend | Home Assistant | Servidor propio o cloud |
| Personalización | Media | Muy alta |
| Documentación | Excelente (inglés) | Buena (chino/inglés) |
| Comunidad | Grande (HA focused) | Creciente |
| MCP (Model Context Protocol) | No | Sí, nativo |
Características destacadas de Xiaozhi#
- Multimodal: Soporte para pantallas, cámaras, LEDs
- Múltiples LLMs: DeepSeek, Qwen, GPT-4, Claude
- MCP nativo: Conecta con cualquier aplicación
- IoT integrado: Control de dispositivos sin Home Assistant
- Open source MIT: Uso comercial permitido
Hardware compatible con Xiaozhi#
| Dispositivo | Precio | Características |
|---|---|---|
| ESP32-S3-BOX-3 | €50-60 | Pantalla táctil, mejor audio |
| Atom Echo | €15 | Básico pero funcional |
| AtomS3R + Echo Base | €35 | Combo recomendado |
| LILYGO T-Display | €20 | Con pantalla pequeña |
| M5Stack Core2 | €50 | Pantalla grande, batería |
Instalación: M5Stack Atom Echo con Home Assistant#
Requisitos previos#
- Home Assistant con Supervisor (HAOS o Supervised)
- Add-ons instalados:
- Whisper (STT local)
- Piper (TTS local)
- openWakeWord (detección de palabra)
- Atom Echo con USB-C
Paso 1: Flashear ESPHome al Atom Echo#
Opción A: Desde el navegador (más fácil)
- Conecta el Atom Echo por USB a tu ordenador
- Ve a web.esphome.io
- Click en "Connect" y selecciona el puerto USB
- Click en "Prepare for first use"
- Introduce las credenciales WiFi
Opción B: Desde ESPHome Dashboard
1# atom-echo.yaml2substitutions:3 name: atom-echo-salon4 friendly_name: "Atom Echo Salón"5 6packages:7 m5stack.atom-echo-voice-assistant:8 url: https://github.com/esphome/wake-word-voice-assistants9 files:10 - m5stack-atom-echo/m5stack-atom-echo.yaml11 refresh: 0s12 13esphome:14 name: ${name}15 name_add_mac_suffix: false16 friendly_name: ${friendly_name}17 18wifi:19 ssid: !secret wifi_ssid20 password: !secret wifi_password21 22api:23 encryption:24 key: !secret api_encryption_key
Paso 2: Instalar add-ons de voz en Home Assistant#
Whisper (Speech-to-Text)
- Ve a Configuración > Complementos > Tienda de complementos
- Busca "Whisper" e instala
- Configura:
1# Configuración de Whisper2language: es # Español3model: base # o 'small' para mejor precisión4beam_size: 5
- Inicia el add-on
Piper (Text-to-Speech)
- Instala "Piper" desde la tienda
- Configura la voz en español:
1# Configuración de Piper2voice: es_ES-davefx-medium # Voz española masculina3# Alternativas:4# es_ES-sharvard-medium # Voz femenina5# es_MX-ald-medium # Español mexicano
openWakeWord
- Instala "openWakeWord" desde la tienda
- Palabras de activación disponibles:
- "Okay Nabu" (por defecto)
- "Hey Jarvis"
- "Hey Mycroft"
Nota importante: openWakeWord actualmente solo soporta wake words en inglés. Para español, puedes:
- Usar una palabra en inglés (ej: "Hey Jarvis")
- Entrenar un modelo personalizado (avanzado)
- Usar activación por botón físico
Paso 3: Configurar Assist Pipeline#
- Ve a Configuración > Asistentes de voz
- Crea un nuevo asistente:
- Nombre: "Jarvis"
- Idioma: Español
- STT: Whisper
- TTS: Piper
- Wake word: Hey Jarvis (opcional)
- Guarda
Paso 4: Asignar dispositivo al asistente#
- Ve a Configuración > Dispositivos y servicios
- Busca tu Atom Echo (aparece como "ESPHome: atom-echo-salon")
- Click en el dispositivo
- En Asistente, selecciona "Jarvis"
Paso 5: Probar#
- Di "Hey Jarvis" (si configuraste wake word) o pulsa el botón del Atom Echo
- El LED cambiará a azul (escuchando)
- Di: "Enciende la luz del salón"
- El LED cambiará a verde (procesando) y ejecutará el comando
Instalación: Xiaozhi ESP32 con servidor local#
Arquitectura de Xiaozhi#
1┌─────────────────────────────────────────────────────────────────┐2│ XIAOZHI ECOSYSTEM │3├─────────────────────────────────────────────────────────────────┤4│ │5│ ┌──────────────┐ ┌──────────────────┐ ┌─────────────┐ │6│ │ ESP32-S3 │ │ Xiaozhi Server │ │ LLM │ │7│ │ (Cliente) │ ──► │ (Backend) │ ──► │ (DeepSeek) │ │8│ │ Micrófono │ │ ASR + TTS │ │ │ │9│ │ Altavoz │ │ MCP Gateway │ │ │ │10│ └──────────────┘ └──────────────────┘ └─────────────┘ │11│ │ │12│ ▼ │13│ ┌─────────────┐ │14│ │ Home Asst. │ │15│ │ (vía MCP) │ │16│ └─────────────┘ │17│ │18└─────────────────────────────────────────────────────────────────┘
Paso 1: Desplegar Xiaozhi Server#
1# Clonar repositorio2git clone https://github.com/xinnan-tech/xiaozhi-esp32-server.git3cd xiaozhi-esp32-server4 5# Configurar variables de entorno6cp .env.example .env7 8# Editar .env con tu configuración9# LLM_API_KEY=tu-api-key-de-deepseek10# LLM_MODEL=deepseek-chat11# TTS_PROVIDER=edge # o azure, google12# STT_PROVIDER=whisper13 14# Levantar con Docker15docker compose up -d
Paso 2: Flashear firmware Xiaozhi al ESP32#
1# xiaozhi-config.yaml para ESPHome2esphome:3 name: xiaozhi-salon4 platform: ESP325 board: esp32-s3-devkitc-16 7external_components:8 - source: github://78/xiaozhi-esp329 10xiaozhi:11 server_url: "http://192.168.1.100:8000" # Tu servidor Xiaozhi12 device_id: "salon"13 14# Configuración de audio15i2s_audio:16 i2s_lrclk_pin: GPIO517 i2s_bclk_pin: GPIO618 19microphone:20 - platform: i2s_audio21 id: mic22 adc_type: external23 i2s_din_pin: GPIO424 25speaker:26 - platform: i2s_audio27 id: speaker28 dac_type: external29 i2s_dout_pin: GPIO7
Paso 3: Integrar con Home Assistant via MCP#
Xiaozhi soporta el Model Context Protocol (MCP), lo que permite conectarlo con Home Assistant:
- Instala la integración HACS: xiaozhi-mcp-ha
1# configuration.yaml2xiaozhi:3 host: 192.168.1.1004 port: 80005 entities:6 - light.salon7 - switch.calefaccion8 - climate.termostato
- Ahora puedes decir: "Xiaozhi, enciende la luz del salón" y controlará Home Assistant
Comparativa de hardware para asistentes de voz#
Tabla comparativa completa#
| Dispositivo | Precio | Micrófono | Altavoz | Pantalla | Batería | Ideal para |
|---|---|---|---|---|---|---|
| Atom Echo | €15 | 1x MEMS | 0.5W | No | No | Básico, bajo coste |
| AtomS3R | €20 | No | No | 0.85" | No | Con Echo Base |
| Echo Base | €10 | 2x MEMS | 1W | No | No | Complemento S3R |
| ESP32-S3-BOX-3 | €55 | 2x MEMS | 1.5W | 2.4" táctil | No | Premium, pantalla |
| ESP32-S3-BOX-3B | €40 | 2x MEMS | 0.5W | No | No | Sin pantalla |
| Respeaker Lite | €25 | 2x MEMS | No | No | No | Array calidad |
| M5Stack Core2 | €50 | 1x MEMS | 1W | 2" táctil | 390mAh | Portátil |
Mi recomendación según presupuesto#
Presupuesto mínimo (<€20): M5Stack Atom Echo
- Funcional para comandos básicos
- Ideal para empezar y probar
Mejor relación calidad/precio (€30-40): AtomS3R + Atomic Echo Base
- Doble micrófono (mejor captación)
- Procesador ESP32-S3 (más potente)
- Modular y actualizable
Premium (€50-60): ESP32-S3-BOX-3
- Pantalla táctil
- Mejor calidad de audio
- Experiencia más completa
Para múltiples habitaciones: 3-4x Atom Echo
- Un dispositivo por habitación
- Coste total similar a un Echo Dot
Configuración avanzada: Voces en español#
Voces disponibles en Piper para español#
| Voz | Acento | Género | Calidad | ID |
|---|---|---|---|---|
| davefx | España | Masculino | Media | es_ES-davefx-medium |
| sharvard | España | Femenino | Media | es_ES-sharvard-medium |
| ald | México | Masculino | Media | es_MX-ald-medium |
| claude | México | Masculino | Media | es_MX-claude-high |
Personalizar la voz#
En la configuración del add-on Piper:
1voice: es_ES-davefx-medium2length_scale: 1.0 # Velocidad (0.5-2.0)3noise_scale: 0.667 # Variación tonal4noise_w: 0.8 # Variación de duración
Crear respuestas personalizadas#
En Home Assistant, puedes crear automatizaciones con respuestas de voz personalizadas:
1automation:2 - alias: "Respuesta personalizada al preguntar la hora"3 trigger:4 - platform: conversation5 command:6 - "¿Qué hora es?"7 - "Dime la hora"8 action:9 - service: conversation.process10 data:11 text: >12 Son las {{ now().strftime('%H:%M') }}.13 {% if now().hour >= 22 or now().hour < 6 %}14 Ya es tarde, deberías irte a dormir.15 {% elif now().hour >= 12 and now().hour < 14 %}16 Es hora de comer, ¿tienes hambre?17 {% endif %}
Casos de uso prácticos#
Control de luces por voz#
1# Intents personalizados en Home Assistant2# sentences/es.yaml3language: es4intents:5 HassLightSet:6 data:7 - sentences:8 - "pon las luces al {brightness} por ciento"9 - "luces al {brightness}"10 slots:11 brightness:12 type: percentage13 min: 014 max: 10015 16 HassTurnOn:17 data:18 - sentences:19 - "enciende (la|las) {name}"20 - "prende (la|las) {name}"21 - "activa (la|las|el) {name}"22 23 HassTurnOff:24 data:25 - sentences:26 - "apaga (la|las) {name}"27 - "desactiva (la|las|el) {name}"
Rutinas por voz#
1# scripts.yaml2buenos_dias:3 alias: "Buenos días"4 sequence:5 - service: light.turn_on6 target:7 entity_id: light.dormitorio8 data:9 brightness_pct: 5010 kelvin: 400011 - service: media_player.volume_set12 target:13 entity_id: media_player.salon14 data:15 volume_level: 0.316 - service: tts.speak17 target:18 entity_id: tts.piper19 data:20 media_player_entity_id: media_player.salon21 message: >22 Buenos días. Son las {{ now().strftime('%H:%M') }}.23 La temperatura exterior es de {{ states('sensor.temperatura_exterior') }} grados.
Actívalo diciendo: "Hey Jarvis, buenos días"
Consultas del hogar#
1# conversation intents2# Cuando preguntas: "¿Está encendida la calefacción?"3intent_script:4 CheckHeating:5 speech:6 text: >7 {% if is_state('climate.termostato', 'heat') %}8 Sí, la calefacción está encendida a {{ state_attr('climate.termostato', 'temperature') }} grados.9 {% else %}10 No, la calefacción está apagada.11 {% endif %}
Solución de problemas#
El micrófono no capta bien#
- Aléjalo de fuentes de ruido (TV, ventilador)
- Usa doble micrófono (Echo Base o Respeaker)
- Ajusta sensibilidad en ESPHome:
1microphone:2 - platform: i2s_audio3 id: mic4 gain: 40dB # Aumentar ganancia
La transcripción es incorrecta#
- Usa modelo Whisper más grande:
- tiny → base → small → medium
- Habla más claro y pausado
- Reduce ruido ambiente
Latencia alta (>3 segundos)#
- Usa aceleración GPU para Whisper si tienes Nvidia
- Reduce tamaño del modelo
- Verifica que el servidor HA no esté saturado
Wake word no funciona#
openWakeWord solo soporta inglés. Alternativas:
- Usa botón físico para activar
- Di "Hey Jarvis" (palabra inglesa)
- Entrena modelo personalizado con Mycroft Precise
Costes totales: Construye tu ecosistema de voz#
Setup básico (1 habitación)#
| Componente | Coste |
|---|---|
| Atom Echo | €15 |
| Raspberry Pi (si no tienes HA) | €80 |
| Total | €15-95 |
Setup completo (casa entera)#
| Componente | Cantidad | Coste |
|---|---|---|
| ESP32-S3-BOX-3 (salón, principal) | 1 | €55 |
| Atom Echo (habitaciones) | 4 | €60 |
| Mini PC para HA (si necesitas) | 1 | €150 |
| Total | - | €115-265 |
Comparativa con ecosistemas comerciales#
| Setup | Coste inicial | Coste mensual | Privacidad |
|---|---|---|---|
| 5x Echo Dot | €150 | €0* | ❌ Audio en AWS |
| 5x Google Mini | €150 | €0* | ❌ Audio en Google |
| 5x ESP32 + HA | €115 | €5 (electricidad) | ✅ 100% local |
*Nota: "Gratis" significa que tú eres el producto.
Conclusión: El futuro de la voz es privado y local#
Los dispositivos como M5Stack Atom Echo y Xiaozhi ESP32 demuestran que:
- No necesitas Amazon o Google para tener un asistente de voz
- Por €15-50 puedes tener capacidades similares a dispositivos de €60-100
- Tu voz se queda en casa, procesada por Whisper en tu propio servidor
- El español está soportado con voces naturales gracias a Piper
El "Year of the Voice" de Home Assistant ha madurado en 2026. Lo que antes era experimental ahora es producción-ready para uso diario.
¿Mi recomendación? Empieza con un Atom Echo de €15 para probar. Si te convence (lo hará), expande a más habitaciones con dispositivos adicionales.
¿Ya tienes un asistente de voz local funcionando? Comparte tu experiencia en los comentarios. Y si este artículo te ha sido útil, suscríbete a la newsletter para más guías de Home Assistant y domótica privada.

