Experimental Linux voice assistant for Home Assistant that uses the ESPHome protocol.
Runs on Linux aarch64 and x86_64 platforms. Tested with Python 3.13 and Python 3.11.
Supports announcments, start/continue conversation, and timers.
Install system dependencies (apt-get):
libportaudio2orportaudio19-dev(forsounddevice)build-essential(forpymicro-features)libmpv-dev(forpython-mpv)
Clone and install project:
git clone https://github.com/OHF-Voice/linux-voice-assistant.git
cd linux-voice-assistant
script/setupUse script/run or python3 -m linux_voice_assistant
You must specify --name <NAME> with a name that will be available in Home Assistant.
See --help for more options.
Use --audio-input-device to change the microphone device. Use python3 -m sounddevice to see the available PortAudio devices.
The microphone device must support 16Khz mono audio.
Use --audio-output-device to change the speaker device. Use mpv --audio-device=help to see the available MPV devices.
Change the default wake word with --wake-model <id> where <id> is the name of a model in the wakewords directory. For example, --wake-model hey_jarvis will load wakewords/hey_jarvis.tflite by default.
- In Home Assistant, go to "Settings" -> "Device & services"
- Click the "Add integration" button
- Choose "ESPHome" and then "Set up another instance of ESPHome"
- Enter the IP address of your voice satellite with port 6053
- Click "Submit"