This repository contains home server version of Almond, the end user programmable assistant. It is a single-user version, suitable for running on low-power devices and smart speakers.
Almond is part of Open Thing Platform, a research project led by prof. Monica Lam, from Stanford University. You can find more information at https://thingpedia.stanford.edu/about.
The recommended way to run almond-server is through podman, a replacement for docker that allows the container to run as your regular user (and thus access PulseAudio from your normal session).
To run, use the command:
podman run --name almond -p 3000:3000 \
-v /dev/shm:/dev/shm \
-v $XDG_RUNTIME_DIR/pulse:/run/pulse \
--security-opt label=disable \
stanfordoval/almond-server
You can now navigate to 127.0.0.1:3000 to access Almond, or use your voice with the hotword "computer".
Voice support is only available on Linux. On Mac or Windows, you can use the following docker command:
docker run --name almond -p 3000:3000 stanfordoval/almond-server:latest-portable
To develop almond-server, you should clone this repository, then install the dependencies with:
dnf -y install nodejs gettext make gcc-c++ GraphicsMagick zip unzip # Fedora/RHEL
apt -y install nodejs gettext build-essential make g++ graphicsmagick zip unzip # Ubuntu/Debian
You can then build the repository with:
npm install
This will only install the minimal set of dependencies, and will not install any voice support. To enable voice, you must also run (Linux only):
dnf -y install pulseaudio pulseaudio-libs-devel libcanberra-devel blas-devel atlas-devel sound-theme-freedesktop # Fedora/RHEL
apt -y install pulseaudio libpulse-dev libcanberra-dev libatlas-base-dev sound-theme-freedesktop # Ubuntu/Debian
then run npm install
again to pick up the new dependencies.
After installing the dependencies locally, the server can be started using npm start
.