The following guide will help you set up a standalone Genie assistant, independent of any cloud account or Home Assistant installation.
This guide should work on any modern Linux OS, including recent versions of Ubuntu, Fedora, and Raspberry OS. Genie should work with good performance on a Raspberry Pi 3 or 4.
You can also run Genie Server on Mac OS or Windows. It is recommended to use docker or a Linux virtual machine (e.g. VirtualBox) on non-Linux OS.
The server will also run an embedded client that provides sound support on the same HW device. To use the embedded client, the device must have a microphone and speaker, and the OS must run the PulseAudio sound server.
You can help us test additional Linux distributions and HW configurations. Please reach out to our community forum or edit this page to add any distro specific notes.
The standalone version of Genie can be downloaded from Docker Hub or from the source code repository.
To use the embedded sound client, you need to use podman as your container runtime to ensure proper permissions to access PulseAudio from inside the container.
podman run --name genie -p 3000:3000 \
-v /dev/shm:/dev/shm \
-v $XDG_RUNTIME_DIR/pulse:/run/pulse \
-e PULSE_SERVER=unix:/run/pulse/native \
-v $XDG_CONFIG_HOME/genie-server:/var/lib/genie-server \
--security-opt label=disable \
stanfordoval/almond-server:latest
If XDG_CONFIG_HOME is unset in the environment, replace $XDG_CONFIG_HOME
with ~/.config
.
After running the first time you can start and stop Genie with:
podman start genie
podman stop genie
Note: do not run the above commands as root, as it will lead to permission problems.
If you cannot use podman, or do not wish to use the embedded sound client, you can instead run Genie inside a container without sound support. You will be able to access Genie from the web interface, and connect a separate Genie client. To do so, use the following command:
docker run --name genie -p 3000:3000 stanfordoval/almond-server:latest
To develop Genie, or for custom setups, you can install Genie from the source code. Follow the instructions in the genie-server git repository to do so.
The first time you run Genie, you must use your browser to complete the configuration. Connect to the IP address of the device running Genie (localhost if you're running in your laptop) on port 3000 and follow the instructions there to finish installation. You can later change any settings from the Configuration page, accessible from the navigation bar in the Genie web UI.
If Genie is running with the embedded client, you can wake it up with the wake-word "Hey Genie". You will hear a "ding" sound when Genie recognizes the wake word, and you can issue your command in voice afterwards.
You can use your browser and connect to the Genie device on port 3000 to access the web UI. Click the "Conversation" tab to access the UI to type commands, or click the "Skills" tab to configure new skills to use in text or voice.
If you have a Home Assistant running in the same network as your Genie, you can connect the two. This will enable Genie to control your Home Assistant devices with voice, and will enable Home Assistant to forward voice commands in the Home Assistant UI to Genie.
Follow the instructions in the Home Assistant documentation to connect Home Assistant to Genie.
The integration is referred to as "Almond" in the Home Assistant UI.