Almond


Almond is an open, privacy-preserving virtual assistant by Stanford Open Virtual Assistant Lab. It allows you, among other things, to control Open Peer Power using natural language. Once installed, it will be available via the microphone icon in the top right.

Almond consists of three parts:

  • Almond Server: Knows about Open Peer Power and your data. Executes your sentences.
  • LUInet: Neural network that converts your sentences into Thingtalk programs.
  • Thingpedia: Skills that provide the building blocks for Thingtalk programs.

Architectural overview of how all pieces fit together.

Installation

Open Peer Power add-on installation

To install Almond Server, go to the Open Peer Power add-on store, search for Almond and click on Install. Once started, it will initiate a configuration flow to finish set up in Open Peer Power. You can find it on the integrations page in the configuration panel.

Manual installation

You can install Almond Server by following the instructions in their README.

Before linking it to Open Peer Power, you will need to visit the Almond UI once to create a password. It is by default available on port 3000.

Once installed, configure Almond like this:

# Example configuration.yaml entry
almond:
  type: local
  host: http://127.0.0.1:3000

The Almond integration does not update configuration entries yet. If you make a change to configuration.yaml, you will need to remove the configuration entry and then restart Open Peer Power.

Almond Web

Stanford offers a hosted version of Almond Server called Almond Web. To use this, go to the integrations page and add Almond using the add integration flow.

Your Open Peer Power installation needs to be externally accessible if you want Almond Web to be able to control Open Peer Power.

Almond Web - Manual installation

It is possible to set up Almond Web manually. You will need to create your own client ID and secret in the web interface.

# Example configuration.yaml entry
almond:
  type: oauth2
  client_id: AAAAAAAAAAAAA
  client_secret: BBBBBBBBBBBBBBBBB

You can now go to the integrations page and start the configuration flow.

Language Support

Almond is currently limited to the English language. This is not a technical limitation but requires specialized engineering effort. Almond has currently no public timeline for adding other languages.

Device Support

Almond is constantly improving. It does not currently support all devices, but we’re working with Almond on improving this.