diff --git a/source/_includes/asides/voice_navigation.html b/source/_includes/asides/voice_navigation.html index d550c48f49a..83e13637511 100644 --- a/source/_includes/asides/voice_navigation.html +++ b/source/_includes/asides/voice_navigation.html @@ -29,6 +29,7 @@
diff --git a/source/images/assist/wake_word_connect_to_hosted_runtime.png b/source/images/assist/wake_word_connect_to_hosted_runtime.png new file mode 100644 index 00000000000..bd61adbdc76 Binary files /dev/null and b/source/images/assist/wake_word_connect_to_hosted_runtime.png differ diff --git a/source/images/assist/wake_word_download_data.png b/source/images/assist/wake_word_download_data.png new file mode 100644 index 00000000000..d566db37acb Binary files /dev/null and b/source/images/assist/wake_word_download_data.png differ diff --git a/source/images/assist/wake_word_enter_target_word.png b/source/images/assist/wake_word_enter_target_word.png new file mode 100644 index 00000000000..57f942e54b9 Binary files /dev/null and b/source/images/assist/wake_word_enter_target_word.png differ diff --git a/source/images/assist/wake_word_listen_demo.png b/source/images/assist/wake_word_listen_demo.png new file mode 100644 index 00000000000..eb71dd8591c Binary files /dev/null and b/source/images/assist/wake_word_listen_demo.png differ diff --git a/source/images/assist/wake_word_press_play_button.png b/source/images/assist/wake_word_press_play_button.png new file mode 100644 index 00000000000..6b7b4c4b8a1 Binary files /dev/null and b/source/images/assist/wake_word_press_play_button.png differ diff --git a/source/images/assist/wake_word_select_assistant.png b/source/images/assist/wake_word_select_assistant.png new file mode 100644 index 00000000000..edf336cc292 Binary files /dev/null and b/source/images/assist/wake_word_select_assistant.png differ diff --git a/source/voice_control/create_wake_word.markdown b/source/voice_control/create_wake_word.markdown new file mode 100644 index 00000000000..8b728801743 --- /dev/null +++ b/source/voice_control/create_wake_word.markdown @@ -0,0 +1,81 @@ +--- +title: "Create your own wake word" +--- + +You can now create your own wake word. The procedure below will take you into a Python environment to train a model. The model is trained on fake voices that were generated by the local neural text-to-speech system [Piper](https://github.com/rhasspy/piper). Want to now more about how this all works? Check out the [openWakeWord](https://github.com/dscripka/openWakeWord) project by David Scripka. + +Depending on the word, training a model on your own wake word may take a few iterations and a bit of tweaking. But this guide will take you through the process step by step. + +## Prerequisites + +- latest version of Home Assistant +- [M5Stack ATOM Echo Development Kit](https://shop.m5stack.com/products/atom-echo-smart-speaker-dev-kit?ref=NabuCasa) +- successfully completed the [$13 voice remote for Home Assistant](/voice_control/thirteen-usd-voice-remote/) tutorial + +## To create your own wake word + +1. Think of a wake word. + - A word that is not commonly used so that it does not trigger Home Assistant by mistake. + - Currently, only wake words in English are supported. +2. Open the [wake word training environment](https://colab.research.google.com/drive/1q1oe2zOyZp7UsB3jJiQ1IFn8z5YfjwEb?usp=sharing#scrollTo=1cbqBebHXjFD). +3. In section 1, enter your wake word in the **target_word** field. + +1. In the code section next to the **target_word**, select the play button. + - If the play button does not appear, make sure your cursor is placed in the **target_word** field. +  + - If it still does not show up, in the top right corner of the document, make sure it says **Connected**. + - If it is not connected, select **Connect to a hosted runtime**. +  + - **Result**: The pronunciation of your wake word is being created. + - Once it is finished, at the bottom of the section, you see an audio file. Listen to it. + +  +2. If the word does not sound correct to you: + - Follow the instructions in the document to tweak the spelling of the word and press play again. + - The word should sound the way you pronounce it. +3. Once you are satisfied with the result, in section 2, select the play button. + - This may take a while. +  +4. Once this is done, select the play button in section 3. + - This may take a while. + - There are 3 options to tweak. For the time being, don't change any settings. + - **Result**: Once this process is finished, you should have 2 files in your downloads folder: + - `.tflite` and `.onnx` files + +5. Congratulations! You have created your own wake word model! + - The next step is to add it to Home Assistant. + +## To add your personal wake word to Home Assistant + +1. Make sure you have the [Samba add-on installed](/common-tasks/os/#configuring-access-to-files). +2. On your computer, access your Home Assistant server via Samba. + - Open the `share` folder and create a new folder `openwakeword` so that you have `/share/openwakeword`. +3. Drop your shiny new wake word model files into that folder. +4. Restart Home Assistant. +5. Go to {% my voice_assistants title="**Settings** > **Voice assistants**" %}. + - Either create a new assistant and select **Add assistant**. + - Or, edit an existing assistant. +6. Under **Wake word**, select **openwakeword**. + - Then, select your own personal wake word. +7. Enable this new assistant on your ATOM Echo device. + - Go to {% my integrations title="**Settings** > **Devices & Services**" %} and select the **ESPHome** integration. + - Under **M5Stack ATOM Echo**, select **1 device**. + - Under **Controls**, make sure **Use wake word** is enabled. + - Under **Configuration**, select the assistant with your wake word. + +  + - Restart Home Assistant. +8. Test your new wake word. + - Speak your wake word followed by a command, such as "Turn on the lights in the kitchen". + - When the ATOM Echo picks up the wake word, it start blinking blue. + - Congrats! You just applied machine learning. + +## Troubleshooting + +1. If the ATOM Echo does not start blinking blue when you say the wake word, there are a few things you can try. +2. Go to {% my integrations title="**Settings** > **Devices & Services**" %} and select the **ESPHome** integration. + - Under **M5Stack ATOM Echo**, select **1 device**. + - Under **Controls**, make sure **Use wake word** is enabled. +3. If this was not the issue, you may need to tweak the wake word model. + - Go back to the [wake word training environment](https://colab.research.google.com/drive/1q1oe2zOyZp7UsB3jJiQ1IFn8z5YfjwEb?usp=sharing#scrollTo=1cbqBebHXjFD). + - In section 3 of the document, follow the instructions on tweaking the settings and create a new model.