From 49093492e7a161a71aa5dd3ff7cbbf9d99c545b7 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 21 Feb 2024 18:57:43 +0100 Subject: [PATCH] S3-BOX: update installation tutorial to reflect current firmware (#31513) * S3-BOX: update installation tutorial to reflect current firmware * Fix typo * Add steps on customizing on-device wake word * Fix markdown * Customize: add prereqs - add reference to microWakeWord - Streamline on-device vs local terminology * S3-BOX tutorial: amend prereqs and steps * Update 'About wake word' topic * Fix markdown * Tweaks to align with blog post * Shorten intro section * Fix link * Fix terminology * Improve cohesion * fix terminology * Fix links * Fix more links * Streamline terminology on S3-BOX-3 * Apply suggestions from code review Co-authored-by: JLo * Restructure side TOC * Add aliases to side TOC * Remove illustration * Delete source/images/assist/assist_open-vs-micro-wake-word.png --------- Co-authored-by: JLo Co-authored-by: Paulus Schoutsen --- source/_includes/asides/voice_navigation.html | 7 +- .../voice_assistant/install_esp_firmware.md | 4 +- .../assist/wake_word_engine_location.png | Bin 0 -> 46005 bytes source/voice_control/about_wake_word.markdown | 21 +++++- .../voice_control/s3-box-customize.markdown | 67 ++++++++++++++---- .../s3_box_voice_assistant.markdown | 18 +++-- 6 files changed, 95 insertions(+), 22 deletions(-) create mode 100644 source/images/assist/wake_word_engine_location.png diff --git a/source/_includes/asides/voice_navigation.html b/source/_includes/asides/voice_navigation.html index 67175c067c4..8df0b85b414 100644 --- a/source/_includes/asides/voice_navigation.html +++ b/source/_includes/asides/voice_navigation.html @@ -20,6 +20,7 @@
  • {% active_link /voice_control/about_wake_word/ About wake words %}
  • {% active_link /voice_control/builtin_sentences/ Built-in sentences %}
  • {% active_link /voice_control/custom_sentences/ Custom sentences %}
  • +
  • {% active_link /voice_control/aliases/ Using aliases %}
  • {% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}
  • {% active_link /voice_control/assist_create_open_ai_personality/ Creating a personality with OpenAI %}
  • @@ -28,10 +29,10 @@

    Projects

    diff --git a/source/_includes/voice_assistant/install_esp_firmware.md b/source/_includes/voice_assistant/install_esp_firmware.md index a98cd73fa5f..15ed804bd12 100644 --- a/source/_includes/voice_assistant/install_esp_firmware.md +++ b/source/_includes/voice_assistant/install_esp_firmware.md @@ -3,9 +3,9 @@ 2. To connect the {{ product_name }} to your computer, follow these steps: - In the pop-up window, view the available ports. - Plug the USB-C cable into the {{ product_name }} and connect it to your computer.{% if page.product_name == 'ESP32-S3-BOX' %} - - If you have an ESP32-S3-BOX-3, plug it into the box directly, not into the docking station (not into the blue part). + - If you have an ESP32-S3-BOX-3, plug it into the box directly, not into the docking station (not into the blue part). - **Troubleshooting**: If your ESP32-S3-BOX-3 does not appear in the list of devices presented by your browser, you need to manually invoke "flash mode": - - Hold the "boot" button (left side upper button) as you tap the "reset" button (left side lower button) + - Hold the "boot" button (left side upper button) as you tap the "reset" button (left side lower button). - After a few seconds, the ESP32-S3-BOX-3 should appear in the list of USB devices presented by your browser. - Follow the steps until step 3. After selecting the **Next** button, on the S3-Box, tap the "Reset" button again. - Then, select the blue **Connect button** again, select the USB device and follow the prompts to configure the Wi-Fi.{% endif %} diff --git a/source/images/assist/wake_word_engine_location.png b/source/images/assist/wake_word_engine_location.png new file mode 100644 index 0000000000000000000000000000000000000000..8e142a82d840c8824e8c4000e2f7e7215336e70a GIT binary patch literal 46005 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 -## ESP32-S3-BOX-3 voice assistant status illustrations +### ESP32-S3-BOX-3 voice assistant status illustrations The ESP32-S3-BOX-3 voice assistant has 6 illustrations to indicate its state: @@ -22,14 +24,14 @@ The ESP32-S3-BOX-3 voice assistant has 6 illustrations to indicate its state: The chart shows the default illustrations. The next steps show you how to change those. -## Prerequisites +### Prerequisites - Latest version of Home Assistant, installed with the Home Assistant Operating System - [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/) or a manually configured [Assist Pipeline](/voice_control/voice_remote_local_assistant) - [ESP32-S3-BOX-3](https://www.aliexpress.us/item/1005005920207976.html?gatewayAdapt=4itemAdapt). The ESP32-S3-BOX-Lite or the ESP32-S3-BOX also work, but they are not currently on the market. - Successfully completed the [ESP32-S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/) tutorial -## Adopting the device in the ESPHome add-on +### Adopting the device in the ESPHome add-on Before you can import new illustrations, you need to install the ESPHome add-on and adopt the device in the add-on. @@ -47,12 +49,12 @@ Before you can import new illustrations, you need to install the ESPHome add-on - [Option 1: Using images from a community repository](#option-1-using-images-from-a-community-repository) - [Option 2: Using your own images](#option-2-using-your-own-illustrations) -## Option 1: Using images from a community repository +### Option 1: Using images from a community repository If you want new images but don't want to create your own, you can use images from the community. If you want to use your own images, skip this procedure and go to [Option 2: Using your own imagess](#option-2-using-your-own-illustrations) instead. -### To use images from the community +#### To use images from the community 1. On the **ESP32-S3-BOX-3** add-on, select edit. - **Result**: An editor opens, showing the configuration file. @@ -79,18 +81,18 @@ If you want to use your own images, skip this procedure and go to [Option 2: Usi 5. Once the installation is complete, you can see the new image on the ESP32-S3-BOX-3. - Now, speak a command to test the new setting. For example, *OK Nabu, turn off the living room lights*. -## Option 2: Using your own illustrations +### Option 2: Using your own illustrations There are 2 parts to this: - [Preparing your own illustrations](#to-prepare-your-own-images) - [Adding your illustrations to the configuration](#to-add-your-images-to-the-configuration) -### About the image specifications +#### About the image specifications Here's what you need to know to get the best result on your ESP32-S3-BOX-3 screen. -#### Using light and dark image background +##### Using light and dark image background In the [overview diagram](#esp32-s3-box-3-voice-assistant-status-illustrations), you can see that the default images use different background colors. This is to make it easier to recognize a state change when you look at your screen. @@ -102,12 +104,12 @@ In your images, you could use 2 different background colors: If your images have transparency, you can define the background color in the configuration. The procedure below shows how to change the background. -#### Image dimensions and file format +##### Image dimensions and file format - **Dimensions**: The screen is 320 x 240 pixels. If the image you provide is not in a 4:3 ratio, the remaining area will be filled with background color. - **File format**: PNG, JPEG, or SVG -### To prepare your own images +#### To prepare your own images 1. Create your own images according to the specifications defined in the section [About the image specifications](#about-the-image-specifications). - You could even draw your own! @@ -121,7 +123,7 @@ If your images have transparency, you can define the background color in the con - Copy your image folder in there. ![ESP32-S3-BOX-3 config file](/images/assist/s32-s3-add-image-folder.png) -### To add your images to the configuration +#### To add your images to the configuration 1. In Home Assistant, go to [**Settings** > **Add-ons** > **ESPHome**](https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome), and **Open Web UI**. 2. On the **ESP32-S3-BOX-3** add-on, select edit. @@ -176,6 +178,43 @@ If your images have transparency, you can define the background color in the con - Snap a picture of each. - [Follow these steps](#to-prepare-your-own-images) to bring them onto your Voice Assistant. +## Customizing on-device wake words (microWakeWord) + +If you are running the latest version of ESPHome on your device, you can already process your wake word on your S3-BOX (instead of running it on the Home Assistant server). This is done using the [microWakeWord](https://github.com/kahrendt/microWakeWord) model. By default, the wake word then is *Okay Nabu*. If you want to change the on-device wake word to *Hey Jarvis* or *Alexa*, follow these steps. + +### Prerequisites + +- Home Assistant 2024.2, installed with the Home Assistant Operating System. If you do not have Home Assistant installed yet, refer to the [installation page](/installation/) for instructions. +- Successfully [installed ESPHome on the S3-BOX-3](/voice_control/s3_box_voice_assistant/) +- ESPHome 2024.2 or later +- Home Assistant server with at least 2 GB of RAM + - The firmware needs to be compiled on the server before it is installed on the S3-BOX-*. + - Compiling requires a bit of RAM. + +(It also works on the, now discontinued, S3-BOX and S3-BOX-Lite)_ + +### To customize the S3-BOX-* with on-device wake words + +1. If you haven't done so already, [adopt the device in the ESPHome add-on](#adopting-the-device-in-the-esphome-add-on). +2. In Home Assistant, go to [**Settings** > **Add-ons** > **ESPHome**](https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome), and **Open Web UI**. +3. On the **ESP32-S3-BOX-3** entry, select edit. + - **Result**: An editor opens, showing the configuration file. + ![ESP32-S3-BOX-3 config file](/images/assist/esp32-adopt-s3-01.png) + +4. To change the wake word, add the following line into the `substitutions` block. + - Instead of `okay_nabu`, you can also use `alexa` or `hey_jarvis`. + + ```yaml + substitutions: + ... + micro_wake_word_model: okay_nabu + ``` + +5. Save the changes and in the top right corner, select **Install**. + - Depending on your environment, the installation process can take a while. (On Home Assistant Green, for example, it takes about 45 minutes.) + - On Home Assistant Green, for example, it takes about 45 minutes.86. Once the installation is complete, you can see the new image on the S3-BOX-3. +6. - Now, speak a command to test the new setting. For example, *OK Nabu, turn on the light*. + ## Related topics - [Community image repository](https://github.com/jlpouffier/home-assistant-s3-box-community-illustrations/tree/main) @@ -185,3 +224,7 @@ If your images have transparency, you can define the background color in the con - [General troubleshooting section for Assist](/voice_control/troubleshooting/) - [Troubleshooting the ESP32-S3-BOX-3](/voice_control/troubleshooting_the_s3_box/) - [Access to your configuration files](/common-tasks/os/#configuring-access-to-files) +- [microWakeWord](https://github.com/kahrendt/microWakeWord) + +[microWakeWord]: https://github.com/kahrendt/microWakeWord +[Kevin Ahrendt]: https://www.kevinahrendt.com/ \ No newline at end of file diff --git a/source/voice_control/s3_box_voice_assistant.markdown b/source/voice_control/s3_box_voice_assistant.markdown index aa4239f8519..3b579cf82fa 100644 --- a/source/voice_control/s3_box_voice_assistant.markdown +++ b/source/voice_control/s3_box_voice_assistant.markdown @@ -12,9 +12,8 @@ This tutorial will guide you to turn an ESP32-S3-BOX, ESP32-S3-BOX-3, or an ESP3 ## Prerequisites -- Home Assistant 2023.12, installed with the Home Assistant Operating System. If you do not have Home Assistant installed yet, refer to the [installation page](/installation/) for instructions. +- Home Assistant 2023.12 or later, installed with the Home Assistant Operating System. If you do not have Home Assistant installed yet, refer to the [installation page](/installation/) for instructions. - [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/) or a manually configured [Assist Pipeline](/voice_control/voice_remote_local_assistant) -- Have [enabled a wake word](/voice_control/install_wake_word_add_on/) for your voice assistant - The password to your 2.4 GHz Wi-Fi network - Chrome or Edge browser on a desktop (not Android/iOS) - One of the three Espressif ESP32-S3-BOX variants: @@ -46,7 +45,18 @@ Before you can use this device with Home Assistant, you need to install a bit of - Your ESP32-S3-BOX is connected to Home Assistant over Wi-Fi. You can now move it to any place in your home with a USB power supply. -10. Congratulations! You can now voice control Home Assistant via a ESP32 device with a display. Now give some commands. +10. If you want, you can process the wake word on the ESP32-S3 device, rather than on your Home Assistant server. (The server is the device where Home Assistant is installed, for example on Home Assistant Green). + - Under **Devices**, on the ESP32-S3-BOX-3 entry, select **Device** to open the device page. + - Under **Wake word engine location**, select **On device**, if you want your wake word to be processed on the device itself, and not in Home Assistant. + - Local processing is faster. + - The wake word is now *Okay Nabu*. + + ![ESP32-S3-BOX-3 on device wake word processing](/images/assist/wake_word_engine_location.png) + +11. If you chose on-device wake word, but you do not want to use *Okay Nabu*, you can change the on-device wake word. + - Currently, *Hey Jarvis* or *Alexa* are the supported alternatives. + - To change your wake word, follow the steps in [Customizing the S3-BOX-3 with on-device wake words](/voice_control/s3-box-customize/#customizing-on-device-wake-words-microwakeword). +12. Congratulations! You can now voice control Home Assistant via a ESP32 device with a display. Now give some commands. ## Controlling Home Assistant @@ -77,8 +87,8 @@ Before you can use this device with Home Assistant, you need to install a bit of ## Related topics -- [Enable a wake word](/voice_control/install_wake_word_add_on/) - [General troubleshooting section for Assist](/voice_control/troubleshooting/) - [Troubleshooting the ESP32-S3-BOX-3](/voice_control/troubleshooting_the_s3_box/) - [ESPHome projects page](https://esphome.io/projects/index.html) - [Access to your configuration files](/common-tasks/os/#configuring-access-to-files) +- [Customizing the S3-BOX with on-device wake words](/voice_control/s3-box-customize/#customizing-on-device-wake-words-microwakeword)