Part 4 - Run wakeword on external server

 

openwakeword add on

https://github.com/home-assistant/addons/tree/master/openwakeword

 

https://github.com/home-assistant/addons/blob/master/openwakeword/Dockerfile

ip3 install --no-cache-dir \
        --extra-index-url https://www.piwheels.org/simple \
        "wyoming-openwakeword @ https://github.com/rhasspy/wyoming-openwakeword/archive/refs/tags/v${WYOMING_OPENWAKEWORD_VERSION}.tar.gz" \

 

https://github.com/rhasspy/wyoming-openwakeword

 

docker pull rhasspy/wyoming-openwakeword

docker run -it -p 10400:10400 rhasspy/wyoming-openwakeword \
    --preload-model 'ok_nabu'

sudo ufw allow 10400

 

voice-wakeword-3.png

 

docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED       STATUS        PORTS                                                     NAMES
717fe1966138   yaming116/sherpa-onnx-asr:latest   "python app.py"          2 weeks ago   Up 7 days     5001/tcp, 0.0.0.0:10700->10700/tcp, :::10700->10700/tcp   sherpa-onnx-asr
1ee50dbb7a33   rhasspy/wyoming-piper              "bash /run.sh --voic…"   2 weeks ago   Up 7 days     0.0.0.0:10200->10200/tcp, :::10200->10200/tcp             nice_hofstadter
01b832193e61   rhasspy/wyoming-openwakeword       "bash /run.sh --prel…"   2 weeks ago   Up 7 days     0.0.0.0:10400->10400/tcp, :::10400->10400/tcp             gallant_engelbart
0389595d9f22   rhasspy/wyoming-whisper            "bash /run.sh --mode…"   2 weeks ago   Up 18 hours   0.0.0.0:10300->10300/tcp, :::10300->10300/tcp             nostalgic_jang

 

docker inspect 01b832193e61
[
    {
        "Id": "01b832193e6192e33f7fa3d27ff26f2bd47bd2800130862dc17cfa832a1c5aaa",
        "Created": "2025-01-04T08:17:52.710988318Z",
        "Path": "bash",
        "Args": [
            "/run.sh",
            "--preload-model",
            "ok_nabu"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 1849,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2025-01-17T13:27:38.37343233Z",
            "FinishedAt": "2025-01-17T13:27:37.664720111Z"
        },
        "Image": "sha256:d6dc47310d216de1d1ccba6c1c70be29bda7ceea20fd2532521878c4aaf63ccf",
        "ResolvConfPath": "/var/lib/docker/containers/01b832193e6192e33f7fa3d27ff26f2bd47bd2800130862dc17cfa832a1c5aaa/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/01b832193e6192e33f7fa3d27ff26f2bd47bd2800130862dc17cfa832a1c5aaa/hostname",
        "HostsPath": "/var/lib/docker/containers/01b832193e6192e33f7fa3d27ff26f2bd47bd2800130862dc17cfa832a1c5aaa/hosts",
        "LogPath": "/var/lib/docker/containers/01b832193e6192e33f7fa3d27ff26f2bd47bd2800130862dc17cfa832a1c5aaa/01b832193e6192e33f7fa3d27ff26f2bd47bd2800130862dc17cfa832a1c5aaa-json.log",
        "Name": "/gallant_engelbart",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "docker-default",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "10400/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "10400"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                24,
                151
            ],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "private",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": [],
            "BlkioDeviceWriteBps": [],
            "BlkioDeviceReadIOps": [],
            "BlkioDeviceWriteIOps": [],
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware",
                "/sys/devices/virtual/powercap"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/d04fd80a6e699dec90b8ad5544e8a218e9953f4287ae6e74baef5ac3487c0846-init/diff:/var/lib/docker/overlay2/ff45309dc12644459396bf9051b0e4dc4e288949fada896f9e25aa09cbf16b76/diff:/var/lib/docker/overlay2/7b462657bfefe3e6e247e1fdd4ae275d6fcae103bf7fe569a96cfdbf354f51d9/diff:/var/lib/docker/overlay2/9d4aa4fbf703dfff3bf5376064d35d1a466c1111f31c90ceecc27eeeea6d85c5/diff:/var/lib/docker/overlay2/d5162876150c6b8f5a435bb62806a68317bfde63f49212ad23a95a02cf65be81/diff",
                "MergedDir": "/var/lib/docker/overlay2/d04fd80a6e699dec90b8ad5544e8a218e9953f4287ae6e74baef5ac3487c0846/merged",
                "UpperDir": "/var/lib/docker/overlay2/d04fd80a6e699dec90b8ad5544e8a218e9953f4287ae6e74baef5ac3487c0846/diff",
                "WorkDir": "/var/lib/docker/overlay2/d04fd80a6e699dec90b8ad5544e8a218e9953f4287ae6e74baef5ac3487c0846/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "01b832193e61",
            "Domainname": "",
            "User": "",
            "AttachStdin": true,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "10400/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": true,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "--preload-model",
                "ok_nabu"
            ],
            "Image": "rhasspy/wyoming-openwakeword",
            "Volumes": null,
            "WorkingDir": "/",
            "Entrypoint": [
                "bash",
                "/run.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "c93b6e8b6bd9223c04ed57cce251674e52ff9bfbd6c531d07965ae5729f3c82b",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "10400/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "10400"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "10400"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/c93b6e8b6bd9",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "c6a4b57896701e6d3b13f055652d6f81390c566d285aff4630f4ca8036d3eb86",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.4",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:04",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "00ceca59d76906efdaaa76c371b716ff489bed887cb9a5f023855fd076812873",
                    "EndpointID": "c6a4b57896701e6d3b13f055652d6f81390c566d285aff4630f4ca8036d3eb86",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.4",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:04",
                    "DriverOpts": null
                }
            }
        }
    }
]

Comments


Comments are closed