-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Enhance README with detailed openWakeWord information #4510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
slgotting
wants to merge
1
commit into
home-assistant:master
Choose a base branch
from
slgotting:patch-1
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,162 @@ | ||
| # Home Assistant App: openWakeWord | ||
| # openWakeWord – Home Assistant App | ||
|
|
||
| ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] | ||
| **openWakeWord** adds wake-word detection to Home Assistant’s voice system. It listens to microphone audio and triggers the voice pipeline when a chosen phrase (the *wake word*) is spoken. | ||
|
|
||
| Home Assistant app (formerly known as add-on) that uses [pyopen-wakeword](https://github.com/rhasspy/pyopen-wakeword) for wake word detection. | ||
| It uses **pyopen-wakeword** to perform fast, local detection with very low CPU usage, making it ideal for devices like Raspberry Pi or other small voice satellites. | ||
|
|
||
| Part of the [Year of Voice](https://www.home-assistant.io/blog/2022/12/20/year-of-voice/). | ||
| Part of Home Assistant’s **Year of Voice** initiative. | ||
|
|
||
| Requires Home Assistant 2023.9 or later. | ||
| --- | ||
|
|
||
| # What a Wake Word Is | ||
|
|
||
| A **wake word** is the phrase used to activate a voice assistant. | ||
|
|
||
| Example: | ||
|
|
||
| ``` | ||
| User: "Hey Jarvis" | ||
| Assistant: *starts listening* | ||
| User: "Turn off the kitchen lights" | ||
| Home Assistant: executes the command | ||
| ``` | ||
|
|
||
| Without a wake word, the system would need to continuously run full speech recognition, which is expensive and raises privacy concerns. | ||
|
|
||
| Wake word detection solves this by only activating the assistant when the trigger phrase is heard. | ||
|
|
||
| --- | ||
|
|
||
| # Where It Fits in the Voice Pipeline | ||
|
|
||
| Wake word detection is the **first step** in Home Assistant’s voice pipeline: | ||
|
|
||
| ``` | ||
| Microphone | ||
| ↓ | ||
| Wake Word Detection (openWakeWord) | ||
| ↓ | ||
| Speech-to-Text | ||
| ↓ | ||
| Intent Processing | ||
| ↓ | ||
| Automation / Action | ||
| ↓ | ||
| Text-to-Speech | ||
| ``` | ||
|
|
||
| openWakeWord continuously monitors audio and signals Home Assistant when the wake phrase is detected. | ||
|
|
||
| --- | ||
|
|
||
| # Common Uses | ||
|
|
||
| ### Voice Satellites | ||
|
|
||
| Small devices placed around the house that listen for the wake word. | ||
|
|
||
| Example: | ||
|
|
||
| ``` | ||
| "Okay Home, turn on the porch light" | ||
| ``` | ||
|
|
||
| The satellite detects the wake word and forwards the command to Home Assistant. | ||
|
|
||
| --- | ||
|
|
||
| ### Fully Local Voice Assistants | ||
|
|
||
| openWakeWord enables a **completely local voice assistant** when combined with local: | ||
|
|
||
| * Speech-to-text | ||
| * Intent recognition | ||
| * Text-to-speech | ||
|
|
||
| --- | ||
|
|
||
| ### Custom Wake Words | ||
|
|
||
| Multiple wake words can be used depending on context: | ||
|
|
||
| * “Jarvis” | ||
| * “Computer” | ||
| * “Okay Home” | ||
|
|
||
| --- | ||
|
|
||
| # Installation | ||
|
|
||
| 1. Open **Home Assistant**. | ||
| 2. Go to **Settings → Add-ons → Add-on Store**. | ||
| 3. Install **openWakeWord**. | ||
| 4. Start the add-on. | ||
|
|
||
| Requires **Home Assistant 2023.9+** | ||
|
|
||
| Supported architectures: | ||
|
|
||
| * **aarch64** | ||
| * **amd64** | ||
|
|
||
| --- | ||
|
|
||
| # How to Implement It | ||
|
|
||
| ## 1. Install the Add-on | ||
|
|
||
| Install and start **openWakeWord** from the Add-on Store. | ||
|
|
||
| --- | ||
|
|
||
| ## 2. Configure a Voice Pipeline | ||
|
|
||
| Navigate to: | ||
|
|
||
| ``` | ||
| Settings → Voice Assistants → Pipelines | ||
| ``` | ||
|
|
||
| Create or edit a pipeline and select: | ||
|
|
||
| * **Wake Word Detection:** openWakeWord | ||
|
|
||
| You will also need: | ||
|
|
||
| * Speech-to-text provider | ||
| * Conversation agent | ||
| * Text-to-speech provider (optional) | ||
|
|
||
| --- | ||
|
|
||
| ## 3. Connect a Microphone | ||
|
|
||
| Wake word detection requires a microphone source such as: | ||
|
|
||
| * Voice satellite device | ||
| * Browser microphone | ||
| * ESPHome voice device | ||
| * Assist microphone hardware | ||
|
|
||
| --- | ||
|
|
||
| ## 4. Test It | ||
|
|
||
| Speak the configured wake phrase: | ||
|
|
||
| ``` | ||
| "Okay Home" | ||
| ``` | ||
|
|
||
| When detected, the voice assistant will begin processing the command that follows. | ||
|
|
||
| --- | ||
|
|
||
| # Features | ||
|
|
||
| * Local wake word detection | ||
| * Low CPU usage | ||
| * Multiple wake word models | ||
| * Works with Home Assistant Assist pipeline | ||
| * Designed for edge voice devices | ||
|
|
||
| [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg | ||
| [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see a good reason why these lines are changed, I'd prefer to keep the title the same style for all apps. Same for the architecture support shields.