In this article, we will look at how I created my voice Assistant with On-Device Wake Word detection on an ESP32-S3-Box-3B using MicroWake Word to send commands to Home Assistant.

If you have manually changed the configuration file for your ESP32-S3-Box-3B,You need to compile your own firmware.

 

 

Home Assistant version:

ESPHome  version: 2024.5.5

Wake word engine location: On device

Board:ESP32-S3-BOX-3B

Platform:ESP32-IDF

 

Lastest Fireware

https://firmware.esphome.io/wake-word-voice-assistant/esp32-s3-box-3/manifest.json

{
  "name": "ESP32 S3 Box 3",
  "version": "24.11.1",
  "home_assistant_domain": "esphome",
  "new_install_prompt_erase": false,
  "builds": [
    {
      "chipFamily": "ESP32-S3",
      "ota": {
        "path": "24.11.1/esp32-s3-box-3-esp32s3.ota.bin",
        "md5": "589f0d3e54c0579e772945e5ea4029fe",
        "summary": "## What's Changed\r\n* Remove glyphs list usage by @clydebarrow in https://github.com/esphome/wake-word-voice-assistants/pull/34\r\n* Update workflows by @jesserockz in https://github.com/esphome/wake-word-voice-assistants/pull/35\r\n\r\n## New Contributors\r\n* @dependabot made their first contribution in https://github.com/esphome/wake-word-voice-assistants/pull/25\r\n* @clydebarrow made their first contribution in https://github.com/esphome/wake-word-voice-assistants/pull/34\r\n\r\n\r\n\r\n<details>\r\n<summary>\r\n\r\n### Dependencies\r\n\r\n</summary>\r\n\r\n\r\n* Bump actions/checkout from 4.1.7 to 4.2.0 by @dependabot in https://github.com/esphome/wake-word-voice-assistants/pull/25\r\n* Bump actions/checkout from 4.2.0 to 4.2.1 by @dependabot in https://github.com/esphome/wake-word-voice-assistants/pull/27\r\n* Bump actions/checkout from 4.2.1 to 4.2.2 by @dependabot in https://github.com/esphome/wake-word-voice-assistants/pull/31\r\n\r\n</details>\r\n\r\n**Full Changelog**: https://github.com/esphome/wake-word-voice-assistants/compare/24.9.2...24.11.1",
        "release_url": "https://github.com/esphome/wake-word-voice-assistants/releases/tag/24.11.1"
      },
      "parts": [
        {
          "path": "24.11.1/esp32-s3-box-3-esp32s3.factory.bin",
          "offset": 0
        }
      ]
    }
  ]
}

 

Latest Fireware source code

https://github.com/esphome/wake-word-voice-assistants/esp32-s3-box-3/esp32-s3-box-3.yaml@main

https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box-3/esp32-s3-box-3.yaml

https://github.com/esphome/wake-word-voice-assistants/archive/refs/tags/24.11.1.zip

 

 

 

Tools

Use the ESPHome dashboard add-on within Home Assistant.

Follow the steps in the ESPHome documentation

https://esphome.io/guides/getting_started_command_line

 

The configuration files are available on GitHub:

https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box-3/esp32-s3-box-3.yaml

 

 

Here's my ESP32-S3-Box-3B config that is working for voice assistant。

 

Clean

INFO ESPHome 2024.12.2
INFO Reading configuration /config/s3.yaml...
INFO Updating https://github.com/esphome/esphome.git@pull/5230/head
INFO Updating https://github.com/jesserockz/esphome-components.git@None
INFO Updating https://github.com/sammcj/esphome-esp-s3-box-3-volume.git@main
WARNING GPIO0 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Done!

 

Set up Voice Assist Pipeline in Home Assistant OS

To set up voice assistant, we would need two components to create the Voice Assist pipeline in Home Assistant.

Whisper Addon

Piper Addon

And finally the entire Voice Assist pipeline.

You don't need to set up the Wake Word addon, as we will use the on-device Wake Word detection with the Micro Wake Word framework

 

So make sure to watch it and set up the Voice Assist pipeline

Config Voice assistant:

1.Settings > Voice assistants > Home Assistant > Select: STT, TTS and WAKE

Flashing Code to ESP32-S3-Box-3B with ESPHome Dashboard 

Example YAML snippet

substitutions:
  name: esp32-s3-box-3-5a7f28
  friendly_name: ESP32 S3 Box 3 Sala
  micro_wake_word_model: hey_jarvis
  
packages:
  esphome.voice-assistant: github://esphome/firmware/wake-word-voice-assistant/esp32-s3-box-3.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

voice_assistant:
  volume_multiplier: 4.0

Connecting ESP32-S3-Box-3B As Voice Assistant In Home Assistant

Once the ESP32-S3-Box-3B is flashed with the code in the above section, we will connect it to Home Assistant using the ESPHome Integration.

 

"ok nabu" wake word

 

useful links

https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box-3/esp32-s3-box-3.yaml

https://smarthomecircle.com/How-I-created-my-voice-assistant-with-on-device-wake-word-using-home-assistant

Comments


Comments are closed