Add tutorial on creating a custom wake word

This commit is contained in:
c0ffeeca7 2023-10-10 22:25:16 +02:00
parent 90d92b5727
commit c4601ac3e8
8 changed files with 82 additions and 0 deletions

View File

@ -29,6 +29,7 @@
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/worlds-most-private-voice-assistant/ Tutorial: World's most private voice assistant %}</li>
<li>{% active_link /voice_control/thirteen-usd-voice-remote/ Tutorial: $13 voice remote %}</li>
<li>{% active_link /voice_control/create_wake_word/ Tutorial: Create your own wake word %}</li>
<li>{% active_link /voice_control/assist_daily_summary/ Tutorial: Your daily summary by Assist %}</li>
</ul>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -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.
![Enter wake word in target field](/images/assist/wake_word_enter_target_word.png)
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.
![Select play button](/images/assist/wake_word_press_play_button.png)
- 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**.
![Connect to hosted runtime](/images/assist/wake_word_connect_to_hosted_runtime.png)
- **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.
![Listen to demo of your wake word](/images/assist/wake_word_listen_demo.png)
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.
![Download data](/images/assist/wake_word_download_data.png)
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.
![Select the assistant with your wake word](/images/assist/wake_word_select_assistant.png)
- 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.