Model setup recipes

Building an ESPHome voice satellite: an ESP32-S3 microphone and wake word

The board detects the wake word; Home Assistant handles the speech itself.

ESPHome's voice_assistant streams microphone audio to Home Assistant, and micro_wake_word finds the wake word on the board itself. Adding both to the configuration behaves like a commercial satellite, using whichever microphone and speaker parts you choose.

Requirements and key details
  • voice_assistant streams microphone audio to Home Assistant.
  • micro_wake_word detects the wake word on the board, cutting server load.
  • Running audio and Bluetooth together can run the board out of memory.

When to build instead of buy

A commercial satellite bundles microphone and speaker, so setup is simple. Building your own lets you shape and place it per room, and costs less if you already own a board.

On the other hand, microphone sensitivity and speaker noise vary a lot by part. Build one first, listen to it, and add more only when it sounds right.

An audio waveform displayed on a laptop beside a microphone
Once the board catches the wake word, audio starts flowing to Home Assistant.

Choosing the board and parts

An ESP32-S3 board with PSRAM is the stable choice. Use an I2S microphone and an I2S amplifier board with a speaker, and the wiring stays simple.

Check the board's pinout first so the microphone and speaker do not share a pin. Weak or clipped audio is often power, so start by giving the board a solid USB supply.

Adding the wake word to the configuration

micro_wake_word is the component that detects the wake word on the board. Listing a model name makes ESPHome include it in the build, and detection starts with it after boot.

Only the first model in the list is enabled on first boot. With several listed, you can switch which one is active from Home Assistant.

ESPHome wake word configuration
micro_wake_word:
  models:
    - model: okay_nabu
The first model in the list is enabled by default. Use the short name from the ESPHome model repository.
A small computer running a search system beside document stacks
Put the microphone and speaker on separate pins and give the board enough power.

Connecting to the voice pipeline

Once the board is added to Home Assistant it appears as a Wyoming1 service, and you can assign a pipeline2 under Voice assistants. The pipeline holds local transcription (for example Whisper) and synthesis (for example Piper) engines, so the satellite only moves audio.

To send the reply to a different speaker, route the output through a media_player. That is easier when the room already has a larger speaker.

Watch the resource limits first

Audio and voice components use a lot of the board's RAM3 and CPU4. Too many components can cause reboots or dropped replies, so start with the voice parts only and add one at a time.

Bluetooth in particular is known to cause trouble alongside audio components. If you also need a Bluetooth speaker, split the work across boards or use a wired speaker.

A microphone, headphones, and a monitor showing an audio waveform.
Bring up the voice parts first and add extras such as Bluetooth later.

Terminology notes

  1. Wyoming — The protocol Home Assistant and voice services use to exchange audio and text. It has no authentication or encryption, so it is used on trusted networks only.

    Back to the text
  2. Pipeline — A sequence of processing stages from input to output. Different models or tools may be used at each stage.

    Back to the text
  3. System RAM — System memory that temporarily holds data while programs run.

    Back to the text
  4. CPU — The central processor that runs the operating system and general-purpose instructions; in AI workloads it also handles tasks such as preprocessing and data movement.

    Back to the text

Frequently asked questions

What should you check first in this article?
ESPHome's voice_assistant streams microphone audio to Home Assistant, and micro_wake_word finds the wake word on the board itself. Adding both to the configuration behaves like a commercial satellite, using whichever microphone and speaker parts you choose.