| # Assets Setup Guide |
|
|
| This document explains how to set up the required assets (wake word models and sound files). |
|
|
| ## Included Assets |
|
|
| All required wake word models and sound files are already included in the repository: |
|
|
| ### Wake Word Models (microWakeWord) |
|
|
| - `okay_nabu.tflite` - "Okay Nabu" (default) |
| - `stop.tflite` - "Stop" |
| - `alexa.tflite` - "Alexa" |
| - `hey_jarvis.tflite` - "Hey Jarvis" |
| - `hey_home_assistant.tflite` - "Hey Home Assistant" |
| - `hey_luna.tflite` - "Hey Luna" |
| - `hey_mycroft.tflite` - "Hey Mycroft" |
| - `okay_computer.tflite` - "Okay Computer" |
| - `choo_choo_homie.tflite` - "Choo Choo Homie" |
|
|
| ### Wake Word Models (openWakeWord) |
|
|
| Located in `wakewords/openWakeWord/`: |
| - `alexa_v0.1.tflite` - Alexa |
| - `hey_jarvis_v0.1.tflite` - Hey Jarvis |
| - `hey_mycroft_v0.1.tflite` - Hey Mycroft |
| - `hey_rhasspy_v0.1.tflite` - Hey Rhasspy |
| - `ok_nabu_v0.1.tflite` - Okay Nabu |
|
|
| ### Sound Files |
|
|
| - `wake_word_triggered.flac` - Played when wake word is detected |
| - `timer_finished.flac` - Played when timer finishes |
|
|
| ## Wake Word Models |
|
|
| The application uses two wake word engines: |
| - **microWakeWord**: Lightweight, good for embedded systems |
| - **openWakeWord**: More accurate, uses more resources |
|
|
| ### Adding Custom Wake Words |
|
|
| #### microWakeWord Models |
|
|
| 1. Download a model from [microWakeWord releases](https://github.com/kahrendt/microWakeWord/releases) |
| 2. Place the `.tflite` file in the `wakewords/` directory |
| 3. Create a corresponding `.json` file: |
|
|
| ```json |
| { |
| "type": "microWakeWord", |
| "wake_word": "Your Wake Word", |
| "trained_languages": ["en"] |
| } |
| ``` |
|
|
| #### openWakeWord Models |
|
|
| 1. Download a model from [home-assistant-wakewords-collection](https://github.com/fwartner/home-assistant-wakewords-collection) |
| 2. Place the `.tflite` file in the `wakewords/` directory |
| 3. Create a corresponding `.json` file: |
|
|
| ```json |
| { |
| "type": "openWakeWord", |
| "wake_word": "Your Wake Word", |
| "model": "your_wake_word.tflite", |
| "trained_languages": ["en"] |
| } |
| ``` |
|
|
| ### Popular Wake Words |
|
|
| Here are some popular wake words you can add: |
|
|
| - **Hey Jarvis**: [Download](https://github.com/fwartner/home-assistant-wakewords-collection/raw/main/en/hey_jarvis/hey_jarvis.tflite) |
| - **Alexa**: [Download](https://github.com/fwartner/home-assistant-wakewords-collection/raw/main/en/alexa/alexa.tflite) |
| - **Hey Google**: [Download](https://github.com/fwartner/home-assistant-wakewords-collection/raw/main/en/hey_google/hey_google.tflite) |
| - **GLaDOS**: [Download](https://github.com/fwartner/home-assistant-wakewords-collection/raw/main/en/glados/glados.tflite) |
|
|
| ## Sound Files |
|
|
| The application uses sound files for feedback: |
|
|
| ### Included Files |
|
|
| 1. **wake_word_triggered.flac** - Played when wake word is detected |
| 2. **timer_finished.flac** - Played when timer finishes |
| |
| ### Customizing Sound Files |
| |
| You can replace these files with your own: |
| |
| 1. Keep them short (1-2 seconds) |
| 2. Use FLAC or WAV format |
| 3. Sample rate: 16kHz or 44.1kHz |
| 4. Mono or stereo |
| |
| ### Example Using Online Tools |
| |
| 1. Go to [TTSMP3](https://ttsmp3.com/) |
| 2. Enter text like "I'm listening" or "Timer finished" |
| 3. Generate and download as MP3 |
| 4. Convert to FLAC using [Online Audio Converter](https://online-audio-converter.com/) |
| 5. Replace the file in `sounds/` directory |
| |
| ## Directory Structure |
| |
| After setup, your directory should look like: |
| |
| ``` |
| reachy_mini_ha_voice/ |
| βββ wakewords/ |
| β βββ okay_nabu.json |
| β βββ okay_nabu.tflite # Downloaded |
| β βββ stop.json |
| β βββ stop.tflite # Downloaded |
| β βββ hey_jarvis.json # Optional |
| β βββ hey_jarvis.tflite # Optional |
| βββ sounds/ |
| βββ wake_word_triggered.flac # You provide |
| βββ timer_finished.flac # You provide |
| ``` |
| |
| ## Troubleshooting |
| |
| ### Wake Word Not Detected |
| |
| 1. Check that the `.tflite` file exists |
| 2. Verify the `.json` configuration is correct |
| 3. Try a different wake word |
| 4. Check microphone input volume |
| |
| ### Sound Not Playing |
| |
| 1. Verify the sound file exists and is not empty |
| 2. Check audio output device is configured |
| 3. Try playing the file manually: `aplay sounds/wake_word_triggered.flac` |
| |
| ### Model Loading Errors |
| |
| 1. Ensure the model is compatible with your architecture |
| 2. Check that TensorFlow Lite is installed correctly |
| 3. Verify the model file is not corrupted |
| |
| ## Additional Resources |
| |
| - [microWakeWord GitHub](https://github.com/kahrendt/microWakeWord) |
| - [openWakeWord GitHub](https://github.com/dscripka/openWakeWord) |
| - [Home Assistant Wake Words Collection](https://github.com/fwartner/home-assistant-wakewords-collection) |
| - [ESPHome Voice Assistant](https://esphome.io/components/voice_assistant.html) |