mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-17 05:04:21 +01:00
Almond3 (#2462)
* almond: update to version 3.0.0 * almond: bump to stable versions * Fix HA style * using more common paths * Remove note to ada * Apply suggestions from code review Co-authored-by: Franck Nijhof <git@frenck.dev> Co-authored-by: Giovanni Campagna <gcampagn@cs.stanford.edu> Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
@@ -1,5 +1,18 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 3.0.0
|
||||||
|
|
||||||
|
- Almond was rebranded to Genie and updated to version 3.0.0. This
|
||||||
|
is a major release that significantly improves the supported skills
|
||||||
|
and brings in more robust natural language understanding.
|
||||||
|
- The wake-word is now "Hey Genie".
|
||||||
|
- Voice support was overhauled and is now handled by a separate
|
||||||
|
genie-client package. The client is included in the container for use
|
||||||
|
with audio directly attached to Home Assistant, and can also be run
|
||||||
|
separately on a different device.
|
||||||
|
- As with the previous release, all users are encouraged to upgrade
|
||||||
|
as soon as possible to maintain compatibility with cloud services.
|
||||||
|
|
||||||
## 2.0.1
|
## 2.0.1
|
||||||
|
|
||||||
- Fix url for API requests
|
- Fix url for API requests
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# Home Assistant Add-on: Almond
|
# Home Assistant Add-on: Genie
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Follow these steps to get the add-on installed on your system:
|
Follow these steps to get the add-on installed on your system:
|
||||||
|
|
||||||
1. Navigate in your Home Assistant frontend to **Supervisor** -> **Add-on Store**.
|
1. Navigate in your Home Assistant frontend to **Supervisor** -> **Add-on Store**.
|
||||||
2. Find the "Almond" add-on and click it.
|
2. Find the "Genie" add-on and click it.
|
||||||
3. Click on the "INSTALL" button.
|
3. Click on the "INSTALL" button.
|
||||||
|
|
||||||
## How to use
|
## How to use
|
||||||
@@ -30,8 +30,8 @@ You have several options to get them answered:
|
|||||||
- The [Home Assistant Discord Chat Server][discord].
|
- The [Home Assistant Discord Chat Server][discord].
|
||||||
- The Home Assistant [Community Forum][forum].
|
- The Home Assistant [Community Forum][forum].
|
||||||
- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit].
|
- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit].
|
||||||
- The [Almond Discord Chat Server][discordalmond].
|
- The [Genie Discord Chat Server][discordalmond].
|
||||||
- The Almond [Community Forum][forumalmond].
|
- The Genie [Community Forum][forumalmond].
|
||||||
|
|
||||||
In case you've found a bug, please [open an issue on our GitHub][issue].
|
In case you've found a bug, please [open an issue on our GitHub][issue].
|
||||||
|
|
||||||
|
|||||||
@@ -4,43 +4,46 @@ FROM ${BUILD_FROM}
|
|||||||
# Base env settings
|
# Base env settings
|
||||||
ENV \
|
ENV \
|
||||||
LANG="en_US.utf8" \
|
LANG="en_US.utf8" \
|
||||||
|
PULSE_SERVER=unix:/run/audio/pulse.sock \
|
||||||
THINGENGINE_HOME="/data/almond-server" \
|
THINGENGINE_HOME="/data/almond-server" \
|
||||||
THINGENGINE_HAS_REVERSE_PROXY=true \
|
THINGENGINE_HAS_REVERSE_PROXY=true \
|
||||||
THINGENGINE_HOST_BASED_AUTHENTICATION=insecure \
|
THINGENGINE_HOST_BASED_AUTHENTICATION=insecure \
|
||||||
THINGENGINE_IN_HOME_ASSISTANT_ADDON=true
|
THINGENGINE_IN_HOME_ASSISTANT_ADDON=true
|
||||||
|
|
||||||
WORKDIR /opt/almond
|
ARG \
|
||||||
ARG ALMOND_VERSION
|
BUILD_ARCH \
|
||||||
|
GENIE_CLIENT_VERSION \
|
||||||
|
GENIE_SERVER_VERSION
|
||||||
|
|
||||||
|
WORKDIR /usr/src
|
||||||
RUN \
|
RUN \
|
||||||
set -x \
|
set -x \
|
||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
|
# Install runtime dependencies
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
build-essential \
|
wget \
|
||||||
libcanberra-dev \
|
curl \
|
||||||
libcanberra0 \
|
|
||||||
libpulse-dev \
|
|
||||||
libatlas-base-dev \
|
|
||||||
libatlas3-base \
|
|
||||||
pkg-config \
|
|
||||||
ca-certificates \
|
|
||||||
git \
|
|
||||||
gnupg \
|
gnupg \
|
||||||
nginx \
|
|
||||||
python-dev \
|
|
||||||
software-properties-common \
|
|
||||||
unzip \
|
|
||||||
sqlite \
|
|
||||||
coreutils \
|
|
||||||
pulseaudio \
|
pulseaudio \
|
||||||
pulseaudio-utils \
|
pulseaudio-utils \
|
||||||
gettext \
|
libpulse0 \
|
||||||
|
libpulse-mainloop-glib0 \
|
||||||
|
libasound2 \
|
||||||
|
libjson-glib-1.0-0 \
|
||||||
|
libevdev2 \
|
||||||
|
libsoup2.4-1 \
|
||||||
|
libspeexdsp1 \
|
||||||
|
libwebrtc-audio-processing1 \
|
||||||
|
sound-theme-freedesktop \
|
||||||
|
unzip \
|
||||||
|
coreutils \
|
||||||
|
ca-certificates \
|
||||||
zip \
|
zip \
|
||||||
wget \
|
nginx \
|
||||||
gstreamer1.0-plugins-base-apps \
|
gstreamer1.0-plugins-base-apps \
|
||||||
|
gstreamer1.0-plugins-base \
|
||||||
gstreamer1.0-plugins-good \
|
gstreamer1.0-plugins-good \
|
||||||
gstreamer1.0-pulseaudio \
|
gstreamer1.0-pulseaudio \
|
||||||
\
|
|
||||||
&& curl -sS https://deb.nodesource.com/gpgkey/nodesource.gpg.key \
|
&& curl -sS https://deb.nodesource.com/gpgkey/nodesource.gpg.key \
|
||||||
| apt-key add - \
|
| apt-key add - \
|
||||||
&& echo "deb https://deb.nodesource.com/node_12.x buster main" \
|
&& echo "deb https://deb.nodesource.com/node_12.x buster main" \
|
||||||
@@ -50,39 +53,71 @@ RUN \
|
|||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
nodejs \
|
nodejs \
|
||||||
\
|
\
|
||||||
|
# Install genie-client
|
||||||
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
pkg-config \
|
||||||
|
ninja-build \
|
||||||
|
git \
|
||||||
|
meson \
|
||||||
|
python-dev \
|
||||||
|
gettext \
|
||||||
|
libgstreamer1.0-dev \
|
||||||
|
libasound2-dev \
|
||||||
|
libglib2.0-dev \
|
||||||
|
libjson-glib-dev \
|
||||||
|
libsoup2.4-dev \
|
||||||
|
libevdev-dev \
|
||||||
|
libpulse-dev \
|
||||||
|
libspeex-dev \
|
||||||
|
libspeexdsp-dev \
|
||||||
|
libwebrtc-audio-processing-dev \
|
||||||
|
&& git clone \
|
||||||
|
"https://github.com/stanford-oval/genie-client" \
|
||||||
|
&& cd genie-client \
|
||||||
|
&& git checkout ${GENIE_CLIENT_VERSION} \
|
||||||
|
&& git submodule init && git submodule update --recursive \
|
||||||
|
&& ./scripts/get-assets.sh ${BUILD_ARCH} \
|
||||||
|
&& meson build \
|
||||||
|
&& ninja -C build \
|
||||||
|
&& ninja -C build install \
|
||||||
|
\
|
||||||
|
# Install genie-server
|
||||||
|
&& mkdir /opt/genie-server \
|
||||||
|
&& cd /opt/genie-server \
|
||||||
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
&& git clone -b ${GENIE_SERVER_VERSION} --depth 1 https://github.com/stanford-oval/genie-server /opt/genie-server \
|
||||||
&& npm config set unsafe-perm \
|
&& npm config set unsafe-perm \
|
||||||
\
|
|
||||||
&& git clone -b "${ALMOND_VERSION}" --depth 1 https://github.com/stanford-oval/almond-server . \
|
|
||||||
&& npm ci \
|
&& npm ci \
|
||||||
&& npm install --no-package-lock --ignore-scripts snowboy@1.3.1 \
|
|
||||||
&& cd node_modules/snowboy/ \
|
|
||||||
&& PYTHON=python2 npx node-pre-gyp clean configure \
|
|
||||||
&& make -C build/ \
|
|
||||||
&& rm -fr /root/.cache \
|
|
||||||
&& rm -fr /root/.npm \
|
|
||||||
&& mkdir /root/.cache \
|
|
||||||
\
|
|
||||||
&& apt-get purge -y --auto-remove \
|
&& apt-get purge -y --auto-remove \
|
||||||
build-essential \
|
build-essential \
|
||||||
libcanberra-dev \
|
|
||||||
libpulse-dev \
|
|
||||||
libatlas-base-dev \
|
|
||||||
pkg-config \
|
pkg-config \
|
||||||
git \
|
git \
|
||||||
gnupg \
|
ninja-build \
|
||||||
|
meson \
|
||||||
python-dev \
|
python-dev \
|
||||||
software-properties-common \
|
libpulse-dev \
|
||||||
\
|
libgstreamer1.0-dev \
|
||||||
|
libasound2-dev \
|
||||||
|
libglib2.0-dev \
|
||||||
|
libjson-glib-dev \
|
||||||
|
libsoup2.4-dev \
|
||||||
|
libevdev-dev \
|
||||||
|
libspeex-dev \
|
||||||
|
libspeexdsp-dev \
|
||||||
|
libwebrtc-audio-processing-dev \
|
||||||
&& rm -rf \
|
&& rm -rf \
|
||||||
/opt/almond/.[!.]* \
|
/opt/genie-server/.[!.]* \
|
||||||
/root/.cache \
|
/root/.cache \
|
||||||
/root/.config \
|
/root/.config \
|
||||||
/tmp/.[!.]* \
|
/tmp/.[!.]* \
|
||||||
/tmp/* \
|
/tmp/* \
|
||||||
/usr/local/share/.cache \
|
/usr/local/share/.cache \
|
||||||
/usr/local/share/.config \
|
/usr/local/share/.config \
|
||||||
/usr/lib/nginx \
|
|
||||||
/var/lib/apt/lists/* \
|
/var/lib/apt/lists/* \
|
||||||
/var/www
|
/usr/lib/nginx \
|
||||||
|
/var/www \
|
||||||
|
/usr/src/*
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
COPY rootfs /
|
COPY rootfs /
|
||||||
|
|||||||
@@ -1,22 +1,20 @@
|
|||||||
# Home Assistant Add-on: Almond
|
# Home Assistant Add-on: Genie
|
||||||
|
|
||||||
The Open-source, Privacy-Preserving Voice Assistant.
|
The Open-source, Privacy-Preserving Voice Assistant.
|
||||||
|
|
||||||
![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield]
|
![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield]
|
||||||
|
|
||||||
[Almond] provides a complete solution to turn your Home Assistant
|
[Genie] provides a complete solution to turn your Home Assistant
|
||||||
into a smart speaker. It supports playing music, controlling your
|
into a smart speaker. It supports playing music, controlling your
|
||||||
IoT, checking the weather, and other simple questions.
|
IoT, checking the weather, and other simple questions.
|
||||||
|
|
||||||
To use Almond as a voice assistant, you should connect a microphone and speaker to the
|
To use Genie as a voice assistant, you should connect a microphone and speaker to the
|
||||||
device where Home Assistant is installed.
|
device where Home Assistant is installed, or you should provision
|
||||||
|
a Genie client in a separate smart-speaker device that connects to the
|
||||||
|
add-on. See the [installation-guide](https://wiki.genie.stanford.edu/getting-started/installation-guide)
|
||||||
|
for further details.
|
||||||
|
|
||||||
**Note**: since version 2.0.0 of the add-on, the use of the separate
|
[Genie]: https://genie.stanford.edu
|
||||||
Ada add-on is not required. Almond includes built-in voice capabilities,
|
|
||||||
using the wake-word "computer". It is recommended to avoid using Ada
|
|
||||||
with Almond >= 2.0.0.
|
|
||||||
|
|
||||||
[Almond]: https://almond.stanford.edu/
|
|
||||||
[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg
|
[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg
|
||||||
[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg
|
[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg
|
||||||
[armhf-shield]: https://img.shields.io/badge/armhf-no-red.svg
|
[armhf-shield]: https://img.shields.io/badge/armhf-no-red.svg
|
||||||
|
|||||||
@@ -7,4 +7,5 @@ codenotary:
|
|||||||
signer: notary@home-assistant.io
|
signer: notary@home-assistant.io
|
||||||
base_image: notary@home-assistant.io
|
base_image: notary@home-assistant.io
|
||||||
args:
|
args:
|
||||||
ALMOND_VERSION: v2.0.1
|
GENIE_SERVER_VERSION: v3.0.1
|
||||||
|
GENIE_CLIENT_VERSION: v0.1.0
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
version: 2.0.1
|
version: 3.0.0
|
||||||
slug: almond
|
slug: almond
|
||||||
name: Almond
|
name: Genie
|
||||||
description: The open-source, privacy-preserving voice assistant
|
description: The open-source, privacy-preserving voice assistant
|
||||||
url: https://github.com/home-assistant/hassio-addons/blob/master/almond
|
url: https://github.com/home-assistant/hassio-addons/blob/master/almond
|
||||||
arch:
|
arch:
|
||||||
|
|||||||
BIN
almond/icon.png
BIN
almond/icon.png
Binary file not shown.
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 30 KiB |
BIN
almond/logo.png
BIN
almond/logo.png
Binary file not shown.
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 30 KiB |
@@ -1,23 +1,23 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
#!/usr/bin/with-contenv bashio
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# Start Almond service
|
# Start Genie service
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
export THINGENGINE_BASE_URL
|
export THINGENGINE_BASE_URL
|
||||||
|
|
||||||
# Set the Ingress URL as Almond base URL for correct handling
|
# Set the Ingress URL as Genie base URL for correct handling
|
||||||
THINGENGINE_BASE_URL=$(bashio::addon.ingress_entry)
|
THINGENGINE_BASE_URL=$(bashio::addon.ingress_entry)
|
||||||
|
|
||||||
mkdir -p /data/almond-server
|
mkdir -p /data/almond-server
|
||||||
if [ ! -f /data/almond-server/prefs.db ]; then
|
if [ ! -f /data/almond-server/prefs.db ]; then
|
||||||
cp /etc/almond/default-prefs.db /data/almond-server/prefs.db
|
cp /etc/genie/default-prefs.db /data/almond-server/prefs.db
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Send out discovery information to Home Assistant
|
# Send out discovery information to Home Assistant
|
||||||
./discovery &
|
./discovery &
|
||||||
|
|
||||||
# Register Home Assistant with Almond
|
# Register Home Assistant with Genie
|
||||||
./register &
|
./register &
|
||||||
|
|
||||||
# Start Almond
|
# Start Genie
|
||||||
cd /opt/almond || bashio::exit.nok "Failed to change directory to Almond"
|
cd /opt/genie-server || bashio::exit.nok "Failed to change directory to Genie"
|
||||||
exec node main.js
|
exec node dist/main.js
|
||||||
|
|||||||
Reference in New Issue
Block a user