Skip to main content

Introduction

Ever since voice satellites were introduced to Home Assistant, people wanted to use good microphones and speakers for this purpose, but not many were really available. In a valiant attempt to free a Google Nest Mini (2nd generation) from its privacy ignoring overlords, Justin Alvey created Onju Voice, a drop-in replacement PCB for the Mini, with an ESP32-S3 at its heart, capable of some pretty funky stuff.

The purpose of this project is to be able to use such a modded Nest Mini as a voice satellite in Home Assistant. Here's a small demo:

Features

  • Wake word, push to talk, on-demand and continuous conversation support
  • Response playback
  • Audio media player
  • Service exposed in HA to start and stop the voice assistant from another device/trigger
  • Visual feedback of the wake word listening/audio recording/success/error status via the Mini's onboard top LEDs
  • Uses all 3 of the original Mini's touch controls as volume controls and a means of manually starting the assistant and setting the volume
  • Uses the original Mini's microphone mute button to prevent the wake word engine from starting unintendedly
  • Automatic continuous touch control calibration

Prerequisites

  • Home Assistant 2024.7.x or newer
  • A voice assistant configured in HA with STT and TTS in a language of your choice
  • ESPHome 2024.7.3 or newer

Known issues and limitations

  • You have to be able to retrofit an Onju Voice PCB inside a 2nd generation Google Nest Mini.
  • ESPHome currently can't use the I2S bus for both listening and playing simultaneously. As such, if you want to stream audio (like a TTS notification) to the Onju, you need to stop wake word listening first
  • The version for microWakeWord is in BETA and probably full of bugs (please report them if you find any)

License

The PCB is NOT my work and has its own license. This repository only refers to the ESPHome config that makes the board a HA-compatible voice satellite.

The config is distributed under the MIT License. See LICENSE for more information.

The notification sounds used are under CC BY 4.0 ATTRIBUTION license.

Credits