Images¶
Pre-built images
The compose bundles in compose/ currently reference images hosted on
Docker Hub under docker.io/smartgic. Buildx Bake defaults to
docker.io/smartgic. If you publish to a different registry, update the
image: references in your compose files.
Open Voice OS is a sophisticated piece of software which has several components. These components have been split into containers to provide better isolation and a microservice approach.
GUI images size
The GUI container images are larger than the other images as they need many QT libraries and GStreamer plugins in order to provide all the features supported by the voice assistant.
Supported CPU architectures¶
Container images can be used for different CPU architectures using the multi-platform images feature.
| CPU architecture | Description |
|---|---|
amd64 |
Such as AMD and Intel processors |
arm64 |
Such as Raspberry Pi 64-bit SoC |
armv7l |
Such as Raspberry Pi 32-bit SoC (not supported because of onnxruntime1) |
Containers¶
The list below is not exhaustive and doesn't mention anything about skill containers, but it is a fair list of the main components currently supported in ovos-docker.
| Container | Description |
|---|---|
ovos_messagebus |
Read more about ovos-messagebus |
ovos_phal |
Read more about ovos-phal |
ovos_phal_admin |
Read more about ovos-phal admin variant |
ovos_audio |
Read more about ovos-audio |
ovos_listener |
Read more about ovos-listener |
ovos_core |
Read more about ovos-core |
ovos_cli |
Read more about ovos-cli |
ovos_gui_websocket |
Read more about ovos-gui-websocket |
ovos_gui_shell |
Read more about ovos-gui |
ovos_gui_original |
Read more about ovos-gui |
ovos_plugin_ggwave |
Read more about ovos-plugin-ggwave |
Tags¶
Container image tags allow you to deploy a specific version of Open Voice OS. This could be an untested version based on a nightly build or a stable version.
| Image tag | Description |
|---|---|
alpha |
Nightly build based on alpha releases from PyPi |
stable |
Published when stable releases are available |
latest |
Alias for the stable build (published only when stable is built) |
x.y.z |
Pinned release tag (when published) |
Tag availability
Tag availability depends on what has been published to the registry. Check the registry if you need a specific version.
Stable alias
When building locally, TAG=stable also tags LATEST_TAG (default
latest). Override LATEST_TAG if you want a different alias.
Build images locally¶
If you need a private registry, custom tags, or local builds, use Docker Buildx Bake from the source repository:
./scripts/bake.sh --load --no-push
TAG=alpha CHANNEL=alpha VERSION=alpha PLATFORMS=linux/amd64,linux/arm64 ./scripts/bake.sh
./scripts/bake.sh -T skills
Builds require Docker with Buildx (BuildKit). Podman works for running images, but builds use Docker Buildx Bake.
For a full list of targets and build variables, see Build images.
--load forces linux/amd64 and cannot load multi-arch manifests locally.
Multi-arch builds may require binfmt/qemu; set ENSURE_BINFMT=true or use
--ensure-binfmt.
Volumes¶
To allow data persistence, Docker or Podman volumes are required. They will prevent downloading the requirements every time the containers are re-created.
| Volume | Description |
|---|---|
ovos_gui_files |
Share QML files from skills between the GUI websocket service and the GUI client |
ovos_listener_records |
Wake words and utterances recorded samples |
ovos_local_state |
Mostly used to store logs from the different components |
ovos_models |
Models downloaded by precise-lite wake word plugin |
ovos_nltk |
Punkt Python package required by NLTK |
ovos_tts_cache |
.wav and .pho files acting as cache from TTS transcription |
ovos_vosk |
Models downloaded by VOSK during the initial boot |
ovos_listener_records allows you to store samples of wake words and utterances which could help you to build or improve models.
Enable samples recording
By default the recording features are disabled, "record_wake_words": true and "save_utterances": true will have to be added to the listener section of mycroft.conf to enable these capabilities.
But first thing's first you need to have Open Voice OS's containers up and running. Follow the guide.