Activar Assist con reSpeaker Flex

Hoy probamos a activar Assist con reSpeaker Flex, la nueva gama de placas con la que vas a poder crear el asistente de tus sueños.

Serie reSpeaker

Qué puedo decir de esta gama de productos que no haya dicho ya! Estas placas de Seeed Studio son, de lejos, mis componentes favoritos para crear asistentes de voz. Se integran en Home Assistant, tienen un precio contenido y, sobre todo, funcionan de fábula!

Hasta ahora, tanto el reSpeaker Lite como el reSpeaker XVF3800, tenían en común que se trataban de placas compactas, con todos los componentes integrados. Esto tiene la ventaja de que solo tienes que comprar la placa y flashearla, sin pelearte con los componentes.

No obstante, también tienen una pega. El diseño de la placa condiciona el diseño de tu asistente de voz y, si eres de los que disfrutan creando algo único, puede ser un obstáculo. Por ello, los nuevos reSpeaker Flex me parecen una variación muy interesante.

Utilizan la misma tecnología de 4 micros del XVF3800, pero separan físicamente los micrófonos de la placa. Además, hay dos versiones, una circular (para objetos redondos o con elementos en el centro) y otra lineal (para diseños alargados), por lo que dejan mucho margen a la imaginación.

Por lo demás, la placa base es idéntica en ambas versiones, e incorpora:

  • Un chip XMOS XVF3800, que gestiona todo el audio y la supresión de ruido, y una placa XIAO ESP32S3 que nos permite integrarlo vía ESPHome.
  • Conector JST para altavoces externos, además de un puerto Jack 3.5mm.
  • Un terminal de alimentación externa opcional, que suministra 12v a todo el sistema.

Requisitos previos

Para activar Assist con reSpeaker Flex previamente necesitas:

  • Haber instalado ESPHome en Home Assistant.
  • Haber configurado Assist en Home Assistant.
  • Hacerte con un reSpeaker Flex con XIAO ESP32S3 PRESOLDADO.
  • Un cable USB-C para alimentar la placa de DATOS (con un cable de carga no vas a poder instalar el software).
  • Un altavoz con un puerto jack 3.5 mm y el cable correspondiente.

*Algún precio puede haber cambiado desde la ultima revision

Actualizar el firmware del reSpeaker Flex XVF3800

Antes de ver cómo activar Assist con reSpeaker Flex, de acuerdo a la documentación técnica del producto, lo primero que tenemos que hacer es actualizar el firmware del chip XMOS. Para ello sigue estos pasos:

  1. Entra en la página de descargas de DFU-UTIL, baja el fichero ‘dfu-util-0.11-binaries.tar.xz’, descomprímelo y copia la ruta donde se encuentra el fichero ‘dfu-util.exe’ (por ejemplo, «C:\Users\Downloads\dfu-util-0.11-binaries\dfu-util-0.11-binaries\win64»).
  2. Utiliza el buscador de Windows de nuevo para abrir la consola del sistema escribiendo «cmd», y escribe el comando ‘cd’ seguido de la ruta anterior para acceder a la carpeta. Luego ejecuta el comando ‘dfu-util.exe -V’ para verificar que funciona correctamente (verás un mensaje de Copyright). Por ejemplo:
  1. Entra en el repositorio oficial del reSpeaker y descarga el fichero del firmware de 16k para la versión linear o la versión circular (por ejemplo, ‘respeaker_flex_i2s_c16k2ch_v1.0.0.bin’). Cópialo exactamente en la misma ruta donde se encuentra el fichero ‘dfu-util.exe’ (la que copiaste en el paso 1).
  2. Conecta la placa a tu ordenador, mientras pulsas el botón «boot», utilizando el puerto USB-C que está junto al puerto jack 3.5 mm (no el de la placa ESP32), para que entre en modo «safe».
  3. Entra en la página de Zadig, descarga la última versión y ejecuta el programa. En la parte superior selecciona Options >List All Devices. En el desplegable, selecciona «reSpeaker XVF3800 Safe Mode», verifica que está seleccionado el ‘WinUSB’ y pulsa en «Install Driver» (o «Replace»).
  1. Cuando termine, desconecta la placa y vuelve a conectarla (de nuevo, pulsando el botón «boot» para entrar en el modo «safe»). Vuelve a la consola del sistema y ejecuta el comando ‘dfu-util -l’ para verificar que ha detectado el dispositivo. Ahora deberías ver la información del dispositivo en pantalla.
  1. Por último, lanza el siguiente comando para «flashear» el firmware que descargaste en el paso 4, ajustando el nombre del fichero (el primero para la version linear y el segundo para la versión circular).

Ahora, antes de integrar el reSpeaker Flex en Home Assistant, conecta la antena WiFi en la placa ESP32-S3 (haciendo un poco de presión). Luego conecta el micro a la placa utilizando el cable flex (levantando la pestaña de la placa e introduciendo la franja azul hacia arriba).

Configuración de ESPHome

Para activar Assist con reSpeaker Flex sigue estos pasos:

  1. Conecta la placa a tu ordenador a través del puerto USB-C (el que está sobre la placa, no el que usamos para el firmware). 
  2. En Home Assistant, accede al complemento de ESPHome desde el menú lateral y pulsa en + Create Device > Create new project. Busca la placa «Seeed XIAO ESP32S3» y pulsa en «Select».
  1. A continuación, asigna un nombre a tu dispositivo (por ejemplo, «XVF3800 Flex Linear») y pulsa en «Finish setup». Verás que se ha creado un nuevo dispositivo con el código base. Copia este código y consérvalo, ya que utilizaremos algún fragmento a continuación.
  2. Accede al repositorio oficial de Seeed Studio, copia el código YAML y pégalo en ESPHome, reemplazando el código que se había generado en el paso anterior, haciendo estos ajustes:
    • Ajusta el ‘name’ y ‘friendly-name’ con el nombre que le quieras dar a tu asistente.
    • Añade la información que te había generado el complemento en el apartado ‘api’ (‘encryption key’). Haz lo mismo para el campo ‘password’ bajo el apartado ‘ota’, y para los campos ‘ssid’ y ‘password’ bajo el apartado ‘wifi’ y ‘ap’. Es decir, asegúrate de haber incluido toda esta información.
# Enable Home Assistant API
api:
  encryption:
    key: "asddsaGUY8NIprvKz323/Tjau233="
ota:
  - platform: esphome
    password: "19ae62751fdslfdldfs94324da28045de1a"
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Respeaker Fallback Hotspot"
    password: "d3masdads1ZR"
  1. Ahora sí, pulsa en “Save” e “Install”. En el popup emergente, pulsa sobre «Advanced options» y elige la opción «Download firmware binary». Espera a que termine y elige la opción «Factory image» para descargar el fichero ‘.bin’ correspondiente.
  1. Ahora ve a la página de ESPHome y pulsa en «Connect». En la ventana emergente selecciona tu placa y pulsa en «Conectar».
  2. Ahora pulsa en «Install» y selecciona el fichero ‘.bin’ obtenido en el paso 5. De nuevo, pulsa en «Install».
  3. Vuelve a Home Assistant y ve a Configuración > Dispositivos y servicios. Lo normal es que tu dispositivo haya sido descubierto y aparezca en la parte superior, esperando únicamente a que pulses el botón de «Añadir». De lo contrario, pulsa en el botón de «Añadir integración», busca «ESPHome» e introduce la IP de tu placa en el campo ‘Host’. Como siempre, te recomiendo que asignes una IP fija en tu router para evitar fallos en el futuro si esta cambia.
  1. Home Assistant va a detectar que es un asistente de voz, por lo que abrirá el asistente de configuración y solo tienes que seguir las instrucciones.
  2. Para terminar ve a Configuración > Dispositivos y servicios > ESPHome. Pulsa sobre el enlace «Configurar» correspondiente a tu dispositivo. En la ventana emergente marca la casilla «Permitir que el dispositivo realice acciones de Home Assistant» y pulsa en «Enviar». Esto va a permitir que podamos controlar nuestros dispositivos desde el reSpeaker.
  3. Antes de probarlo no olvides conectar el altavoz en el puerto correspondiente (en la parte central del extremo opuesto a la placa).
  4. Ha llegado el momento de la verdad, di «OK, Nabu» (o tu palabra de activación) y observa la respuesta!