File size: 4,883 Bytes
90389e2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# Quick Start Guide

This guide will help you quickly set up the Reachy Mini Home Assistant Voice Assistant.

## Prerequisites

- Reachy Mini robot (connected and powered on)
- Home Assistant instance with ESPHome integration
- Python 3.8 or higher installed on Reachy Mini
- Network connection between Reachy Mini and Home Assistant

## Step 1: Install Dependencies

```bash
# SSH into your Reachy Mini
ssh reachy@<reachy-ip>

# Clone the repository
git clone https://github.com/yourusername/reachy_mini_ha_voice.git
cd reachy_mini_ha_voice

# Create virtual environment
python -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -e .
```

## Step 2: Download Wake Word Models

```bash
# Download Okay Nabu model (default)
cd wakewords
wget https://github.com/kah0st/microWakeWord/raw/main/models/okay_nabu.tflite -O okay_nabu.tflite
cp okay_nabu.json.example okay_nabu.json

# Optional: Download Hey Jarvis model
wget https://github.com/kah0st/microWakeWord/raw/main/models/hey_jarvis.tflite -O hey_jarvis.tflite
wget https://github.com/kah0st/microWakeWord/raw/main/models/hey_jarvis.json -O hey_jarvis.json

cd ..
```

## Step 3: Configure Audio Devices

```bash
# List available audio devices
python -m reachy_mini_ha_voice --list-input-devices
python -m reachy_mini_ha_voice --list-output-devices

# Note the device names you want to use
```

## Step 4: Create Configuration

```bash
# Copy environment template
cp .env.example .env

# Edit .env file
nano .env
```

Add your configuration:

```env
# Audio Configuration
AUDIO_INPUT_DEVICE=Reachy Microphone
AUDIO_OUTPUT_DEVICE=Reachy Speaker
AUDIO_SAMPLE_RATE=16000
AUDIO_CHANNELS=1
AUDIO_BLOCK_SIZE=1024

# Voice Configuration
WAKE_WORD=okay_nabu
WAKE_WORD_DIR=wakewords

# Motion Configuration
MOTION_ENABLED=true
SPEECH_REACTIVE=true

# ESPHome Configuration
ESPHOME_HOST=0.0.0.0
ESPHOME_PORT=6053
ESPHOME_NAME=Reachy Mini

# Robot Configuration
ROBOT_HOST=localhost
ROBOT_WIRELESS=false

# Logging
LOG_LEVEL=INFO
```

## Step 5: Start the Application

```bash
# Start the voice assistant
python -m reachy_mini_ha_voice

# Or with custom configuration
python -m reachy_mini_ha_voice \
  --name "My Reachy Mini" \
  --audio-input-device "Reachy Microphone" \
  --audio-output-device "Reachy Speaker" \
  --wake-model okay_nabu
```

## Step 6: Connect to Home Assistant

1. Open Home Assistant
2. Go to **Settings****Devices & Services**
3. Click **Add Integration**
4. Search for **ESPHome**
5. Click **Set up another instance of ESPHome**
6. Enter Reachy Mini's IP address and port (default: 6053)
7. Click **Submit**

## Step 7: Test

1. Say the wake word: **"Okay Nabu"**
2. Reachy Mini should nod to acknowledge
3. Speak your command
4. Reachy Mini should respond with motion and voice (if configured)

## Troubleshooting

### Wake Word Not Detected

- Check if the wake word model is downloaded: `ls wakewords/`
- Verify the model name in configuration matches the file
- Check microphone is working: `python -m reachy_mini_ha_voice --list-input-devices`
- Increase microphone volume if needed

### No Audio Output

- Check speaker is working: `python -m reachy_mini_ha_voice --list-output-devices`
- Verify audio output device name in configuration
- Check speaker volume

### Cannot Connect to Home Assistant

- Verify network connectivity: `ping <home-assistant-ip>`
- Check ESPHome port (6053) is not blocked by firewall
- Ensure Home Assistant ESPHome integration is installed
- Check Home Assistant logs for connection errors

### Motion Not Working

- Verify Reachy Mini is connected: Check if robot responds to basic commands
- Check robot host in configuration
- Ensure Reachy Mini SDK is installed: `pip show reachy-mini`
- Check robot is not in sleep mode

## Advanced Configuration

### Custom Wake Word

1. Train your own wake word model (see wakewords/README.md)
2. Place the model files in wakewords/ directory
3. Update configuration to use your model

### Multiple Wake Words

```bash
# Add additional wake word models to wakewords/ directory
# Update configuration to enable multiple wake words
```

### Web UI

```bash
# Start with Gradio web interface
python -m reachy_mini_ha_voice --gradio

# Access at http://<reachy-ip>:7860
```

### Wireless Reachy Mini

```bash
# For wireless version
python -m reachy_mini_ha_voice --wireless
```

## Next Steps

- Read the full [README.md](README.md) for detailed documentation
- Check [ARCHITECTURE.md](ARCHITECTURE.md) for system architecture
- See [REQUIREMENTS.md](REQUIREMENTS.md) for detailed requirements
- Explore [profiles/](profiles/) for personality customization

## Support

- GitHub Issues: https://github.com/yourusername/reachy_mini_ha_voice/issues
- Documentation: https://github.com/yourusername/reachy_mini_ha_voice#readme
- Community: Join our Discord server

---

**Happy talking with your Reachy Mini!** 🤖