Giter VIP home page Giter VIP logo

genie-server's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

genie-server's Issues

ARM64 docker image?

I used the instructions to pull and run almond-server with podman, and it wouldn't start because of architecture related error. Is there a docker image for AArch64 architecture? Or is there a configuration change I can make somewhere? This is for an orange pi zero plus2 with an allwinner H5 64bit cpu.

Add an interface to view logs

When Almond server is installed standalone (not as Home Assistant addon), the only way to see logs is through SSH, which is not very convenient. And logs are very much necessary at the moment because the natural language is not very reliable.

Analog touch for Almond wake button

Right now, the Almond wake button is essentially a variation on the wake word. When we press the button, Almond begins listening. However, Almond doesn't know when we have finished talking until it can be reasonably confident that we won't say anything else, which leads to an approximately five second delay for Almond to check that we aren't saying anything else after we have finished speaking.

I propose that we change the functionality of this button from digital input to analog input. While the user is holding down the button, Almond should listen. When the user releases the button, Almond should stop listening.

Memory leak in Almond server

I've had by Almond server running on Home Assistant for a few days, and it's now at 2.5G of RAM. This indicates a memory leak somewhere, which we should investigate.

Websocket constantly disconnects

I'm running ALmondServer bahind Traefik as a L7 load labancer and which also provides TLS termiantion with Let's Encrypt certs

The Web UI works just fine.

The conversation.js web socket constantly disconnects. I can't figure out why.

Can anyone help? :)

An in-range update of almond-dialog-agent is breaking the build 🚨

The dependency almond-dialog-agent was updated from 1.7.3 to 1.7.4.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

almond-dialog-agent is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

cvc4 failure on yarn / sqlite3 failure on make

git cloned, ran make

Could you document some more build instructions?

19615 verbose stack Error: [email protected] install: `node-pre-gyp install --fallback-to-build`
19615 verbose stack Exit status 1
19615 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:304:16)
19615 verbose stack     at emitTwo (events.js:126:13)
19615 verbose stack     at EventEmitter.emit (events.js:214:7)
19615 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
19615 verbose stack     at emitTwo (events.js:126:13)
19615 verbose stack     at ChildProcess.emit (events.js:214:7)
19615 verbose stack     at maybeClose (internal/child_process.js:925:16)
19615 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
19616 verbose pkgid [email protected]
19617 verbose cwd <path-to-repo>/almond-server
19618 verbose Linux 4.17.5-1-MANJARO
19619 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "sqlite3" "--build-from-source" "--sqlite_libname=sqlcipher" "--sqlite=/usr/"
19620 verbose node v8.11.3
19621 verbose npm  v6.2.0
19622 error code ELIFECYCLE
19623 error errno 1
19624 error [email protected] install: `node-pre-gyp install --fallback-to-build`
19624 error Exit status 1
19625 error Failed at the [email protected] install script.
19625 error This is probably not a problem with npm. There is likely additional logging output above.
19626 verbose exit [ 1, true ]

TensorflowLite support

Hi! Is it possible to support tensorflow lite to allow hardware-accelerated usage on a raspberry pi with an edge tpu?

Assertion pulsecore/pstream BrokenPipeError

Almond Server v1.7.2 - Locally hosted.
Home Assistant 0.103.5
Ubuntu 19.10 - headless server

Almond fails at random times after startup and never stay up for longer than for say 7 hours.
You have to then manually restart the server which clearly is not practical.

The failure is always the same as shown in the logs below and points to pulseaudio but my research have not found a workable solution.

I start pulseaudio with the following command:

pulseaudio --log-level=4 --disallow-exit=true --exit-idle-time=-1 --start -vvvv

almond logs:

2019-12-31T01:17:23.041409287Z Assertion 're->data || re->memblock' failed at pulsecore/pstream.c:862, function do_read(). Aborting.
2019-12-31T01:17:23.426878888Z Traceback (most recent call last):
2019-12-31T01:17:23.426878888Z   File "/usr/local/bin/precise-engine", line 11, in <module>
2019-12-31T01:17:23.426878888Z     load_entry_point('mycroft-precise==0.3.0', 'console_scripts', 'precise-engine')()
2019-12-31T01:17:23.426878888Z   File "/usr/local/lib/python3.7/site-packages/precise/scripts/engine.py", line 58, in main
2019-12-31T01:17:23.426878888Z     sys.stdout.buffer.flush()
2019-12-31T01:17:23.426878888Z BrokenPipeError: [Errno 32] Broken pipe
2019-12-31T01:17:23.472230845Z error Command failed with signal "SIGABRT".
2019-12-31T01:17:23.473520449Z info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

system journal logs:

Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: hwbuf_unused=0
Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: setting avail_min=31886
Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: alsa_output.platform-soc_audio.stereo-fallback.monitor: state: RUNNING -> IDLE
Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: Hmm, no streams around, trying to vacuum.
Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: Freeing output 1 "node-stream"
Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: Freed 7 "thingengine-platform-server"
Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: Connection died.
Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: Freed 6 "libcanberra"
Dec 31 01:17:23 PlutoPi4 pulseaudio[13942]: Connection died.

Memory increases until kernel crash

I'm running local copy of Almond-Server on a Asus Tinker Board with Armbian OS.
After starting the server reserves about 56M, then I see that the memory increases step by step over 1 - 2 days until the system runs out of memory.

  2  [|||                                                                                2.2%]   Tasks: 49, 56 thr; 1 running
  3  [||||                                                                               4.0%]   Load average: 0.12 0.40 0.54 
  4  [||||||                                                                             5.2%]   Uptime: 03:37:47
  Mem[|||||||||||||||||||||||||||||||||||||||||||||                                598M/1.95G]   CpuFreq1: 1.61 GHz
  Swp[                                                                               0K/1001M]   CpuFreq2: 1.61 GHz
  Cpu Temp:   56 C                                                                               CpuFreq3: 1.61 GHz
                                                                                                 CpuFreq4: 1.61 GHz
  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
 1313 joerg      20   0  9884  5500  4472 S  0.0  0.3  0:02.06 ├─ /lib/systemd/systemd --user
 2907 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:35.68 │  ├─ /usr/bin/node /srv/almond-server/main.js
 2918 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:00.13 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2917 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:00.14 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2916 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:00.14 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2915 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:00.14 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2913 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:00.00 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2912 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:02.46 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2911 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:02.31 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2910 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:02.60 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2909 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:02.34 │  │  ├─ /usr/bin/node /srv/almond-server/main.js
 2908 joerg      20   0  750M  390M 28656 S  0.0 19.5  0:00.00 │  │  └─ /usr/bin/node /srv/almond-server/main.js```


I wonder if this is related to the `Unhandled Home Assistant entity...`
I have a lot of unsupported sensors sending state every now and then.

An in-range update of selenium-webdriver is breaking the build 🚨

The devDependency selenium-webdriver was updated from 4.0.0-alpha.5 to 4.0.0-alpha.6.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

selenium-webdriver is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Duplicate conversation history on reconnection

If the websocket connection drops and the browser automatically reconnects, the server will resend the conversation history, because it doesn't know if it's a new tab or the existing tab. As a result, the conversation gets duplicated in its entirety.
The browser code should recognize that the messages are duplicate (based on the message ID) and ignore them.

Error fetching yarn pkg with new Dockerfile during stage 8

Looks like it fails fetching https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz I think? I can wget this file just fine though.

$ docker buildx build -t minnixtx/almond-server --platform=linux/arm64 . --push
[+] Building 1843.7s (13/13) FINISHED                                                                                                                                                                                                         
 => [internal] booting buildkit                                                                                                                                                                                                          5.8s
 => => pulling image moby/buildkit:buildx-stable-1                                                                                                                                                                                       3.5s
 => => creating container buildx_buildkit_mybuilder0                                                                                                                                                                                     2.3s
 => [internal] load build definition from Dockerfile                                                                                                                                                                                     0.2s
 => => transferring dockerfile: 1.04kB                                                                                                                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                        0.3s
 => => transferring context: 252B                                                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/fedora:31                                                                                                                                                                             1.2s
 => [internal] load build context                                                                                                                                                                                                        1.2s
 => => transferring context: 28.54MB                                                                                                                                                                                                     1.1s
 => [1/8] FROM docker.io/library/fedora:31@sha256:c97879f8bebe49744307ea5c77ffc76c7cc97f3ddec72fb9a394bd4e4519b388                                                                                                                      12.8s
 => => resolve docker.io/library/fedora:31@sha256:c97879f8bebe49744307ea5c77ffc76c7cc97f3ddec72fb9a394bd4e4519b388                                                                                                                       0.0s
 => => sha256:b0d24e01fbfae9b54d27ea1c56aad451d7eafd58aa0174d578dece0ec91009cf 529B / 529B                                                                                                                                               0.0s
 => => sha256:dbad5a3d9e059ad673cb03431604f7d02d3d16a4f6bad97eab35b8db19259d0b 66.54MB / 66.54MB                                                                                                                                         3.4s
 => => sha256:63a50f9110d4e2bee94a42cfa3c8ce88ce7dd73631cf2f590dec1063aabe97c5 2.20kB / 2.20kB                                                                                                                                           0.0s
 => => sha256:c97879f8bebe49744307ea5c77ffc76c7cc97f3ddec72fb9a394bd4e4519b388 975B / 975B                                                                                                                                               0.0s
 => => sha256:dbad5a3d9e059ad673cb03431604f7d02d3d16a4f6bad97eab35b8db19259d0b 66.54MB / 66.54MB                                                                                                                                         3.4s
 => => unpacking docker.io/library/fedora:31@sha256:c97879f8bebe49744307ea5c77ffc76c7cc97f3ddec72fb9a394bd4e4519b388                                                                                                                     9.2s
 => [2/8] RUN dnf -y module install nodejs:10 &&     dnf -y install git curl pulseaudio-libs-devel unzip nodejs make gcc gcc-c++ libcanberra-devel atlas-devel blas-devel                                                             1280.1s
 => [3/8] RUN curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo                                                                                                                                             2.4s
 => [4/8] RUN dnf -y install yarn                                                                                                                                                                                                      124.1s
 => [5/8] RUN mkdir /opt/almond                                                                                                                                                                                                          0.4s
 => [6/8] COPY . /opt/almond                                                                                                                                                                                                             0.7s
 => [7/8] WORKDIR /opt/almond                                                                                                                                                                                                            0.1s
 => ERROR [8/8] RUN rm -rf /opt/almond/node_modules &&     yarn &&     ls -al /var/cache &&     cp -r /usr/local/share/.cache/yarn/v6/npm-snowboy-1.3.1-220f23f026096fe5290d7919a9f0da93ccd253f2-integrity/node_modules/snowboy/ node  415.4s
------                                                                                                                                                                                                                                        
 > [8/8] RUN rm -rf /opt/almond/node_modules &&     yarn &&     ls -al /var/cache &&     cp -r /usr/local/share/.cache/yarn/v6/npm-snowboy-1.3.1-220f23f026096fe5290d7919a9f0da93ccd253f2-integrity/node_modules/snowboy/ node_modules/snowboy/ &&     (cd node_modules/snowboy/ && yarn run install) &&     rm -fr /usr/local/share/.cache:                                                                                                                                                
#13 20.71 yarn install v1.22.4                                                                                                                                                                                                                
#13 26.14 [1/4] Resolving packages...                                                                                                                                                                                                         
#13 36.98 [2/4] Fetching packages...                                                                                                                                                                                                          
#13 135.3 info There appears to be trouble with your network connection. Retrying...
#13 169.3 info There appears to be trouble with your network connection. Retrying...
#13 202.7 info There appears to be trouble with your network connection. Retrying...
#13 215.8 info There appears to be trouble with your network connection. Retrying...
#13 236.0 info There appears to be trouble with your network connection. Retrying...
#13 251.3 info There appears to be trouble with your network connection. Retrying...
#13 281.5 error An unexpected error occurred: "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz: ESOCKETTIMEDOUT".
#13 281.6 info If you think this is a bug, please open a bug report with the information provided in "/opt/almond/yarn-error.log".
#13 281.6 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
#13 286.5 info There appears to be trouble with your network connection. Retrying...
#13 321.1 info There appears to be trouble with your network connection. Retrying...
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c rm -rf /opt/almond/node_modules &&     yarn &&     ls -al /var/cache &&     cp -r /usr/local/share/.cache/yarn/v6/npm-snowboy-1.3.1-220f23f026096fe5290d7919a9f0da93ccd253f2-integrity/node_modules/snowboy/ node_modules/snowboy/ &&     (cd node_modules/snowboy/ && yarn run install) &&     rm -fr /usr/local/share/.cache]: buildkit-runc did not terminate sucessfully

Building arm64 docker container errors out

Fedora 31 - using buildx to build arm64 docker image

$ docker buildx build --platform=linux/arm64 --load .
[+] Building 2005.2s (9/14)                                                                                                                                                                                                                   
 => [internal] load .dockerignore                                                                                                                                                                                                        0.1s
 => => transferring context: 94B                                                                                                                                                                                                         0.1s
 => [internal] load build definition from Dockerfile                                                                                                                                                                                     0.1s
 => => transferring dockerfile: 91B                                                                                                                                                                                                      0.1s
 => [internal] load metadata for docker.io/library/fedora:30                                                                                                                                                                             0.6s
 => CACHED [1/10] FROM docker.io/library/fedora:30@sha256:3a0c8c86d8ac2d1bbcfd08d40d3b757337f7916fb14f40efcb1d1137a4edef45                                                                                                               0.0s
 => => resolve docker.io/library/fedora:30@sha256:3a0c8c86d8ac2d1bbcfd08d40d3b757337f7916fb14f40efcb1d1137a4edef45                                                                                                                       0.0s
 => [internal] load build context                                                                                                                                                                                                       13.5s
 => => transferring context: 2.81MB                                                                                                                                                                                                     13.1s
 => [2/10] RUN dnf -y install git curl pulseaudio-libs-devel unzip nodejs mimic-devel python3 python3-pip python3-numpy python3-scipy make gcc gcc-c++ portaudio-devel libcanberra-devel                                              1802.3s
 => [3/10] RUN curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo                                                                                                                                            4.0s
 => [4/10] RUN dnf -y install yarn                                                                                                                                                                                                     159.2s 
 => ERROR [5/10] RUN pip3 install 'tensorflow<2.0.0' 'hyperopt<0.2' 'networkx<2.0' 'git+https://github.com/stanford-oval/mycroft-precise' && rm -fr /root/.cache                                                                        38.4s 
------                                                                                                                                                                                                                                        
 > [5/10] RUN pip3 install 'tensorflow<2.0.0' 'hyperopt<0.2' 'networkx<2.0' 'git+https://github.com/stanford-oval/mycroft-precise' && rm -fr /root/.cache:                                                                                    
#8 12.81 WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.                                                                                                                   
#8 13.58 Collecting git+https://github.com/stanford-oval/mycroft-precise                                                                                                                                                                      
#8 13.61   Cloning https://github.com/stanford-oval/mycroft-precise to /tmp/pip-req-build-efyuvfk9                                                                                                                                            
#8 25.56 Collecting tensorflow<2.0.0                                                                                                                                                                                                          
#8 34.63   Could not find a version that satisfies the requirement tensorflow<2.0.0 (from versions: )
#8 34.72 No matching distribution found for tensorflow<2.0.0
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c pip3 install 'tensorflow<2.0.0' 'hyperopt<0.2' 'networkx<2.0' 'git+https://github.com/stanford-oval/mycroft-precise' && rm -fr /root/.cache]: buildkit-runc did not terminate sucessfully

Is there something I need to change in the docker file?

SyntaxError when parsing an AlmondGenerated function

At this point I have as "code" argument the following string:

AlmondGenerated() {
    now => @com.twitter(id="twitter-account-xxxxxxxxxxxxxxxxxxxx").sink(status="Hey, testing tweets") ;
}

Unfortunately, It enters into the catch function with the following error:

Failed to add app: SyntaxError: Expected ",", ";", comment or whitespace but "." found.
SyntaxError: Expected ",", ";", comment or whitespace but "." found.
    at peg$buildException (/home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingtalk/lib/grammar.js:558:14)
    at Object.peg$parse [as parse] (/home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingtalk/lib/grammar.js:5519:13)
    at new AppExecutor (/home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingengine-core/lib/apps/app_executor.js:114:36)
    at Q.try (/home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingengine-core/lib/apps/database.js:46:23)
    at Promise.apply (/home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingengine-core/node_modules/q/q.js:1185:26)
    at Promise.promise.promiseDispatch (/home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingengine-core/node_modules/q/q.js:808:41)
    at /home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingengine-core/node_modules/q/q.js:1411:14
    at runSingle (/home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingengine-core/node_modules/q/q.js:137:13)
    at flush (/home/carlos/Development/CLEO-thingengine-platform-server/node_modules/thingengine-core/node_modules/q/q.js:125:13)
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

Errors when building with yarn - Fedora 31

Please see output below:


[minnix@buildenv almond-server]$ sudo yarn
[sudo] password for minnix: 
yarn install v1.22.4
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
[1/7] ⡀ abstract-socket
[6/7] ⡀ node-mimic
[-/7] ⢀ waiting...
[7/7] ⢀ pulseaudio2
warning Error running install script for optional dependency: "/home/minnix/asbuild/almond-server/node_modules/pulseaudio2: Command failed.
Exit code: 1
Command: node-gyp configure build
Arguments: 
Directory: /home/minnix/asbuild/almond-server/node_modules/pulseaudio2
Output:
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info find Python using Python version 3.7.6 found at \"/usr/bin/python\"
gyp http GET https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v12.16.1/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v12.16.1/SHASUMS256.txt
gyp info spawn /usr/bin/python
gyp info spawn args [
gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/home/minnix/asbuild/almond-server/node_modules/pulseaudio2/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/root/.cache/node-gyp/12.16.1/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/12.16.1',
gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/12.16.1/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/home/minnix/asbuild/almond-server/node_modules/pulseaudio2',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/home/minnix/asbuild/almond-server/node_modules/pulseaudio2/build'
  CXX(target) Release/obj.target/pulse/src/context.o
In file included from ../src/context.hh:23,
                 from ../src/context.cc:20:
../src/common.hh: In function ‘pa_proplist* pulse::maybe_build_proplist(v8::Isolate*, v8::Local)’:
../src/common.hh:97:51: error: no matching function for call to ‘v8::Object::GetOwnPropertyNames()’
   97 |     auto prop_names = fromjs->GetOwnPropertyNames();
      |                                                   ^
In file included from ../src/common.hh:27,
                 from ../src/context.hh:23,
                 from ../src/context.cc:20:
/root/.cache/node-gyp/12.16.1/include/node/v8.h:3675:43: note: candidate: ‘v8::MaybeLocal v8::Object::GetOwnPropertyNames(v8::Local)’
 3675 |   V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyNames(
      |                                           ^~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:3675:43: note:   candidate expects 1 argument, 0 provided
/root/.cache/node-gyp/12.16.1/include/node/v8.h:3684:43: note: candidate: ‘v8::MaybeLocal v8::Object::GetOwnPropertyNames(v8::Local, v8::PropertyFilter, v8::KeyConversionMode)’
 3684 |   V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyNames(
      |                                           ^~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:3684:43: note:   candidate expects 3 arguments, 0 provided
../src/context.cc: In static member function ‘static void pulse::Context::Init(v8::Local)’:
../src/context.cc:181:44: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
  181 |     Local cfn = tpl->GetFunction();
      |                                            ^
In file included from ../src/common.hh:27,
                 from ../src/context.hh:23,
                 from ../src/context.cc:20:
/root/.cache/node-gyp/12.16.1/include/node/v8.h:6126:46: note: candidate: ‘v8::MaybeLocal v8::FunctionTemplate::GetFunction(v8::Local)’
 6126 |   V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(
      |                                              ^~~~~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:6126:46: note:   candidate expects 1 argument, 0 provided
../src/context.cc: In static member function ‘static void pulse::Context::New(const v8::FunctionCallbackInfo&)’:
../src/context.cc:216:61: error: no matching function for call to ‘v8::Value::ToString()’
  216 |       client_name = new String::Utf8Value(args[0]->ToString());
      |                                                             ^
In file included from ../src/common.hh:27,
                 from ../src/context.hh:23,
                 from ../src/context.cc:20:
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2668:44: note: candidate: ‘v8::MaybeLocal v8::Value::ToString(v8::Local) const’
 2668 |   V8_WARN_UNUSED_RESULT MaybeLocal ToString(
      |                                            ^~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2668:44: note:   candidate expects 1 argument, 0 provided
In file included from /root/.cache/node-gyp/12.16.1/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.16.1/include/node/v8.h:27,
                 from ../src/common.hh:27,
                 from ../src/context.hh:23,
                 from ../src/context.cc:20:
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2684:31: note: candidate: ‘v8::Local v8::Value::ToString(v8::Isolate*) const’
 2684 |                 Local ToString(Isolate* isolate) const);
      |                               ^~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
  328 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2684:31: note:   candidate expects 1 argument, 0 provided
 2684 |                 Local ToString(Isolate* isolate) const);
      |                               ^~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
  328 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../src/context.cc: In static member function ‘static void pulse::Context::Connect(const v8::FunctionCallbackInfo&)’:
../src/context.cc:259:61: error: no matching function for call to ‘v8::Value::ToString()’
  259 |       server_name = new String::Utf8Value(args[1]->ToString());
      |                                                             ^
In file included from ../src/common.hh:27,
                 from ../src/context.hh:23,
                 from ../src/context.cc:20:
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2668:44: note: candidate: ‘v8::MaybeLocal v8::Value::ToString(v8::Local) const’
 2668 |   V8_WARN_UNUSED_RESULT MaybeLocal ToString(
      |                                            ^~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2668:44: note:   candidate expects 1 argument, 0 provided
In file included from /root/.cache/node-gyp/12.16.1/include/node/v8-internal.h:14,
                 from /root/.cache/node-gyp/12.16.1/include/node/v8.h:27,
                 from ../src/common.hh:27,
                 from ../src/context.hh:23,
                 from ../src/context.cc:20:
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2684:31: note: candidate: ‘v8::Local v8::Value::ToString(v8::Isolate*) const’
 2684 |                 Local ToString(Isolate* isolate) const);
      |                               ^~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
  328 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2684:31: note:   candidate expects 1 argument, 0 provided
 2684 |                 Local ToString(Isolate* isolate) const);
      |                               ^~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
  328 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../src/context.cc:265:53: error: no matching function for call to ‘v8::Value::Uint32Value()’
  265 |       flags = pa_context_flags(args[2]->Uint32Value());
      |                                                     ^
In file included from ../src/common.hh:27,
                 from ../src/context.hh:23,
                 from ../src/context.cc:20:
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2707:41: note: candidate: ‘v8::Maybe v8::Value::Uint32Value(v8::Local) const’
 2707 |   V8_WARN_UNUSED_RESULT Maybe Uint32Value(
      |                                         ^~~~~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2707:41: note:   candidate expects 1 argument, 0 provided
../src/context.cc: In static member function ‘static void pulse::Context::Info(const v8::FunctionCallbackInfo&)’:
../src/context.cc:304:45: error: no matching function for call to ‘v8::Value::Uint32Value()’
  304 |     ctx->info(InfoType(args[0]->Uint32Value()), args[1].As());
      |                                             ^
In file included from ../src/common.hh:27,
                 from ../src/context.hh:23,
                 from ../src/context.cc:20:
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2707:41: note: candidate: ‘v8::Maybe v8::Value::Uint32Value(v8::Local) const’
 2707 |   V8_WARN_UNUSED_RESULT Maybe Uint32Value(
      |                                         ^~~~~~~~~~~
/root/.cache/node-gyp/12.16.1/include/node/v8.h:2707:41: note:   candidate expects 1 argument, 0 provided
/root/.cache/node-gyp/12.16.1/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo

::Callback = void (*)(const v8::WeakCallbackInfo&)]’: /root/.cache/node-gyp/12.16.1/include/node/node_object_wrap.h:85:78:   required from here /root/.cache/node-gyp/12.16.1/include/node/v8.h:10226:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo&)’} [-Wcast-function-type] 10226 |                reinterpret_cast(callback), type);       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make: *** [pulse.target.mk:118: Release/obj.target/pulse/src/context.o] Error 1 make: Leaving directory '/home/minnix/asbuild/almond-server/node_modules/pulseaudio2/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) gyp ERR! stack     at ChildProcess.emit (events.js:311:20) gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) gyp ERR! System Linux 5.5.9-200.fc31.x86_64 gyp ERR! command \"/usr/bin/node\" \"/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"configure\" \"build\" gyp ERR! cwd /home/minnix/asbuild/almond-server/node_modules/pulseaudio2 [1/7] ⠈ abstract-socket [6/7] ⠈ node-mimic [-/7] ⠁ waiting... [-/7] ⠁ waiting... warning Error running install script for optional dependency: "/home/minnix/asbuild/almond-server/node_modules/node-mimic: Command failed. Exit code: 1 Command: node-gyp rebuild Arguments: Directory: /home/minnix/asbuild/almond-server/node_modules/node-mimic Output: gyp info it worked if it ends with ok gyp info using [email protected] gyp info using [email protected] | linux | x64 gyp info find Python using Python version 3.7.6 found at \"/usr/bin/python\" gyp http GET https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz gyp http 200 https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz gyp http GET https://nodejs.org/download/release/v12.16.1/SHASUMS256.txt gyp http 200 https://nodejs.org/download/release/v12.16.1/SHASUMS256.txt gyp info spawn /usr/bin/python gyp info spawn args [ gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', gyp info spawn args   'binding.gyp', gyp info spawn args   '-f', gyp info spawn args   'make', gyp info spawn args   '-I', gyp info spawn args   '/home/minnix/asbuild/almond-server/node_modules/node-mimic/build/config.gypi', gyp info spawn args   '-I', gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', gyp info spawn args   '-I', gyp info spawn args   '/root/.cache/node-gyp/12.16.1/include/node/common.gypi', gyp info spawn args   '-Dlibrary=shared_library', gyp info spawn args   '-Dvisibility=default', gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/12.16.1', gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp', gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/12.16.1/<(target_arch)/node.lib', gyp info spawn args   '-Dmodule_root_dir=/home/minnix/asbuild/almond-server/node_modules/node-mimic', gyp info spawn args   '-Dnode_engine=v8', gyp info spawn args   '--depth=.', gyp info spawn args   '--no-parallel', gyp info spawn args   '--generator-output', gyp info spawn args   'build', gyp info spawn args   '-Goutput_dir=.' gyp info spawn args ] gyp info spawn make gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] make: Entering directory '/home/minnix/asbuild/almond-server/node_modules/node-mimic/build'   CXX(target) Release/obj.target/mimic/src/mimic.o ../src/mimic.cpp: In function ‘std::string node_mimic::v8_to_string(const v8::Local&)’: ../src/mimic.cpp:53:18: error: cannot convert ‘char*’ to ‘v8::Isolate*’    53 |     s->WriteUtf8(buffer, 3*length);       |                  ^~~~~~       |                  |       |                  char* In file included from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h:2878:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’  2878 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,       |                 ~~~~~~~~~^~~~~~~ ../src/mimic.cpp: In static member function ‘static void node_mimic::AsyncTask::CompleteWork(uv_work_t*, int)’: ../src/mimic.cpp:95:74: warning: ‘v8::Local node::MakeCallback(v8::Isolate*, v8::Local, v8::Local, int, v8::Local*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]    95 |         node::MakeCallback(isolate, localCallback, localCallback, 2, argv);       |                                                                          ^ In file included from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/node.h:174:50: note: declared here   174 |                 NODE_EXTERN v8::Local MakeCallback(       |                                                  ^~~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/node.h:93:42: note: in definition of macro ‘NODE_DEPRECATED’    93 |     __attribute__((deprecated(message))) declarator       |                                          ^~~~~~~~~~ ../src/mimic.cpp: In function ‘v8::Local node_mimic::wave_to_js(v8::Isolate*, cst_wave*)’: ../src/mimic.cpp:150:119: warning: ‘bool v8::Object::Set(v8::Local, v8::Local)’ is deprecated: Use maybe version [-Wdeprecated-declarations]   150 |     obj->Set(new_string(isolate, \"sampleRate\", NewStringType::kInternalized), Integer::New(isolate, wave->sample_rate));       |                                                                                                                       ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/v8-internal.h:14,                  from /root/.cache/node-gyp/12.16.1/include/node/v8.h:27,                  from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h:3499:22: note: declared here  3499 |                 bool Set(Local key, Local value));       |                      ^~~ /root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’   328 |   declarator __attribute__((deprecated(message)))       |   ^~~~~~~~~~ ../src/mimic.cpp:151:121: warning: ‘bool v8::Object::Set(v8::Local, v8::Local)’ is deprecated: Use maybe version [-Wdeprecated-declarations]   151 |     obj->Set(new_string(isolate, \"numChannels\", NewStringType::kInternalized), Integer::New(isolate, wave->num_channels));       |                                                                                                                         ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/v8-internal.h:14,                  from /root/.cache/node-gyp/12.16.1/include/node/v8.h:27,                  from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h:3499:22: note: declared here  3499 |                 bool Set(Local key, Local value));       |                      ^~~ /root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’   328 |   declarator __attribute__((deprecated(message)))       |   ^~~~~~~~~~ ../src/mimic.cpp:156:30: warning: ‘bool v8::Object::Set(v8::Local, v8::Local)’ is deprecated: Use maybe version [-Wdeprecated-declarations]   156 |     }, wave).ToLocalChecked());       |                              ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/v8-internal.h:14,                  from /root/.cache/node-gyp/12.16.1/include/node/v8.h:27,                  from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h:3499:22: note: declared here  3499 |                 bool Set(Local key, Local value));       |                      ^~~ /root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’   328 |   declarator __attribute__((deprecated(message)))       |   ^~~~~~~~~~ ../src/mimic.cpp: In static member function ‘static v8::Local node_mimic::Voice::Init(v8::Isolate*)’: ../src/mimic.cpp:174:63: warning: ‘static v8::Local v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]   174 |         tpl->SetClassName(String::NewFromUtf8(isolate, \"Voice\"));       |                                                               ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/v8-internal.h:14,                  from /root/.cache/node-gyp/12.16.1/include/node/v8.h:27,                  from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h:3032:21: note: declared here  3032 |       Local NewFromUtf8(Isolate* isolate, const char* data,       |                     ^~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’   328 |   declarator __attribute__((deprecated(message)))       |   ^~~~~~~~~~ ../src/mimic.cpp:174:63: warning: ‘static v8::Local v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]   174 |         tpl->SetClassName(String::NewFromUtf8(isolate, \"Voice\"));       |                                                               ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/v8-internal.h:14,                  from /root/.cache/node-gyp/12.16.1/include/node/v8.h:27,                  from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h:3032:21: note: declared here  3032 |       Local NewFromUtf8(Isolate* isolate, const char* data,       |                     ^~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’   328 |   declarator __attribute__((deprecated(message)))       |   ^~~~~~~~~~ ../src/mimic.cpp:180:51: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’   180 |         Local constr = tpl->GetFunction();       |                                                   ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h:6126:46: note: candidate: ‘v8::MaybeLocal v8::FunctionTemplate::GetFunction(v8::Local)’  6126 |   V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(       |                                              ^~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/v8.h:6126:46: note:   candidate expects 1 argument, 0 provided ../src/mimic.cpp: In function ‘void node_mimic::Init(const v8::FunctionCallbackInfo&)’: ../src/mimic.cpp:250:6: warning: ‘void node::AtExit(void (*)(void*), void*)’ is deprecated: Use the three-argument variant of AtExit() or AddEnvironmentCleanupHook() [-Wdeprecated-declarations]   250 |     });       |      ^ In file included from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/node.h:695:22: note: declared here   695 |     NODE_EXTERN void AtExit(void (*cb)(void* arg), void* arg = nullptr));       |                      ^~~~~~ /root/.cache/node-gyp/12.16.1/include/node/node.h:93:42: note: in definition of macro ‘NODE_DEPRECATED’    93 |     __attribute__((deprecated(message))) declarator       |                                          ^~~~~~~~~~ ../src/mimic.cpp:250:6: warning: ‘void node::AtExit(void (*)(void*), void*)’ is deprecated: Use the three-argument variant of AtExit() or AddEnvironmentCleanupHook() [-Wdeprecated-declarations]   250 |     });       |      ^ In file included from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/node.h:695:22: note: declared here   695 |     NODE_EXTERN void AtExit(void (*cb)(void* arg), void* arg = nullptr));       |                      ^~~~~~ /root/.cache/node-gyp/12.16.1/include/node/node.h:93:42: note: in definition of macro ‘NODE_DEPRECATED’    93 |     __attribute__((deprecated(message))) declarator       |                                          ^~~~~~~~~~ ../src/mimic.cpp: In function ‘void node_mimic::ModuleInit(v8::Local)’: ../src/mimic.cpp:284:94: warning: ‘bool v8::Object::Set(v8::Local, v8::Local)’ is deprecated: Use maybe version [-Wdeprecated-declarations]   284 |   exports->Set(new_string(exports->GetIsolate(), \"Voice\"), Voice::Init(exports->GetIsolate()));       |                                                                                              ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/v8-internal.h:14,                  from /root/.cache/node-gyp/12.16.1/include/node/v8.h:27,                  from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h:3499:22: note: declared here  3499 |                 bool Set(Local key, Local value));       |                      ^~~ /root/.cache/node-gyp/12.16.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’   328 |   declarator __attribute__((deprecated(message)))       |   ^~~~~~~~~~ In file included from ../src/mimic.cpp:32: ../src/mimic.cpp: At global scope: /root/.cache/node-gyp/12.16.1/include/node/node.h:601:43: warning: cast between incompatible function types from ‘void (*)(v8::Local)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local, v8::Local, void*)’} [-Wcast-function-type]   601 |       (node::addon_register_func) (regfunc),                          \\\n      |                                           ^ /root/.cache/node-gyp/12.16.1/include/node/node.h:635:3: note: in expansion of macro ‘NODE_MODULE_X’   635 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)       |   ^~~~~~~~~~~~~ ../src/mimic.cpp:290:1: note: in expansion of macro ‘NODE_MODULE’   290 | NODE_MODULE(addon, node_mimic::ModuleInit)       | ^~~~~~~~~~~ In file included from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo

::Callback = void (*)(const v8::WeakCallbackInfo&)]’: /root/.cache/node-gyp/12.16.1/include/node/node_object_wrap.h:85:78:   required from here /root/.cache/node-gyp/12.16.1/include/node/v8.h:10226:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo&)’} [-Wcast-function-type] 10226 |                reinterpret_cast(callback), type);       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/mimic.cpp: In instantiation of ‘static void node_mimic::AsyncTask::CompleteWork(uv_work_t*, int) [with R = cst_wave_struct*; uv_work_t = uv_work_s]’: ../src/mimic.cpp:110:57:   required from ‘static void node_mimic::AsyncTask::Schedule(v8::Isolate*, F&&, G&&, v8::Local) [with F = node_mimic::Voice::TextToSpeech(const v8::FunctionCallbackInfo&)::; G = node_mimic::Voice::TextToSpeech(const v8::FunctionCallbackInfo&)::; R = cst_wave_struct*]’ ../src/mimic.cpp:234:34:   required from here ../src/mimic.cpp:95:27: warning: ‘v8::Local node::MakeCallback(v8::Isolate*, v8::Local, v8::Local, int, v8::Local*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]    95 |         node::MakeCallback(isolate, localCallback, localCallback, 2, argv);       |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/node.h:174:50: note: declared here   174 |                 NODE_EXTERN v8::Local MakeCallback(       |                                                  ^~~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/node.h:93:42: note: in definition of macro ‘NODE_DEPRECATED’    93 |     __attribute__((deprecated(message))) declarator       |                                          ^~~~~~~~~~ ../src/mimic.cpp:95:27: warning: ‘v8::Local node::MakeCallback(v8::Isolate*, v8::Local, v8::Local, int, v8::Local*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]    95 |         node::MakeCallback(isolate, localCallback, localCallback, 2, argv);       |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/node.h:174:50: note: declared here   174 |                 NODE_EXTERN v8::Local MakeCallback(       |                                                  ^~~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/node.h:93:42: note: in definition of macro ‘NODE_DEPRECATED’    93 |     __attribute__((deprecated(message))) declarator       |                                          ^~~~~~~~~~ ../src/mimic.cpp: In instantiation of ‘static void node_mimic::AsyncTask::CompleteWork(uv_work_t*, int) [with R = cst_voice_struct*; uv_work_t = uv_work_s]’: ../src/mimic.cpp:110:57:   required from ‘static void node_mimic::AsyncTask::Schedule(v8::Isolate*, F&&, G&&, v8::Local) [with F = node_mimic::LoadVoice(const v8::FunctionCallbackInfo&)::; G = node_mimic::LoadVoice(const v8::FunctionCallbackInfo&)::; R = cst_voice_struct*]’ ../src/mimic.cpp:277:30:   required from here ../src/mimic.cpp:95:27: warning: ‘v8::Local node::MakeCallback(v8::Isolate*, v8::Local, v8::Local, int, v8::Local*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]    95 |         node::MakeCallback(isolate, localCallback, localCallback, 2, argv);       |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/node.h:174:50: note: declared here   174 |                 NODE_EXTERN v8::Local MakeCallback(       |                                                  ^~~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/node.h:93:42: note: in definition of macro ‘NODE_DEPRECATED’    93 |     __attribute__((deprecated(message))) declarator       |                                          ^~~~~~~~~~ ../src/mimic.cpp:95:27: warning: ‘v8::Local node::MakeCallback(v8::Isolate*, v8::Local, v8::Local, int, v8::Local*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]    95 |         node::MakeCallback(isolate, localCallback, localCallback, 2, argv);       |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/mimic.cpp:32: /root/.cache/node-gyp/12.16.1/include/node/node.h:174:50: note: declared here   174 |                 NODE_EXTERN v8::Local MakeCallback(       |                                                  ^~~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/node.h:93:42: note: in definition of macro ‘NODE_DEPRECATED’    93 |     __attribute__((deprecated(message))) declarator       |                                          ^~~~~~~~~~ make: *** [mimic.target.mk:116: Release/obj.target/mimic/src/mimic.o] Error 1 make: Leaving directory '/home/minnix/asbuild/almond-server/node_modules/node-mimic/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) gyp ERR! stack     at ChildProcess.emit (events.js:311:20) gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) gyp ERR! System Linux 5.5.9-200.fc31.x86_64 gyp ERR! command \"/usr/bin/node\" \"/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\" gyp ERR! cwd /home/minnix/asbuild/almond-server/node_modules/node-mimic [1/7] ⠐ abstract-socket [-/7] ⠐ waiting... [-/7] ⠈ waiting... [-/7] ⠈ waiting... warning Error running install script for optional dependency: "/home/minnix/asbuild/almond-server/node_modules/canberra: Command failed. Exit code: 1 Command: node-gyp rebuild Arguments: Directory: /home/minnix/asbuild/almond-server/node_modules/canberra Output: gyp info it worked if it ends with ok gyp info using [email protected] gyp info using [email protected] | linux | x64 gyp info find Python using Python version 3.7.6 found at \"/usr/bin/python\" gyp http GET https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz gyp http 200 https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz gyp http GET https://nodejs.org/download/release/v12.16.1/SHASUMS256.txt gyp http 200 https://nodejs.org/download/release/v12.16.1/SHASUMS256.txt gyp info spawn /usr/bin/python gyp info spawn args [ gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', gyp info spawn args   'binding.gyp', gyp info spawn args   '-f', gyp info spawn args   'make', gyp info spawn args   '-I', gyp info spawn args   '/home/minnix/asbuild/almond-server/node_modules/canberra/build/config.gypi', gyp info spawn args   '-I', gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', gyp info spawn args   '-I', gyp info spawn args   '/root/.cache/node-gyp/12.16.1/include/node/common.gypi', gyp info spawn args   '-Dlibrary=shared_library', gyp info spawn args   '-Dvisibility=default', gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/12.16.1', gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp', gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/12.16.1/<(target_arch)/node.lib', gyp info spawn args   '-Dmodule_root_dir=/home/minnix/asbuild/almond-server/node_modules/canberra', gyp info spawn args   '-Dnode_engine=v8', gyp info spawn args   '--depth=.', gyp info spawn args   '--no-parallel', gyp info spawn args   '--generator-output', gyp info spawn args   'build', gyp info spawn args   '-Goutput_dir=.' gyp info spawn args ] gyp info spawn make gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] make: Entering directory '/home/minnix/asbuild/almond-server/node_modules/canberra/build'   CXX(target) Release/obj.target/canberra/src/canberra-binding.o   CXX(target) Release/obj.target/canberra/src/canberra-context.o ../src/canberra-context.cc: In static member function ‘static void node_libcanberra::Context::Init(v8::Local)’: ../src/canberra-context.cc:97:40: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’    97 |     constructor.Reset(tpl->GetFunction());       |                                        ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../../nan/nan.h:54,                  from ../src/canberra-context.h:31,                  from ../src/canberra-context.cc:31: /root/.cache/node-gyp/12.16.1/include/node/v8.h:6126:46: note: candidate: ‘v8::MaybeLocal v8::FunctionTemplate::GetFunction(v8::Local)’  6126 |   V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(       |                                              ^~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/v8.h:6126:46: note:   candidate expects 1 argument, 0 provided ../src/canberra-context.cc:98:73: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’    98 |     exports->Set(Nan::New(\"Context\").ToLocalChecked(), tpl->GetFunction());       |                                                                         ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../../nan/nan.h:54,                  from ../src/canberra-context.h:31,                  from ../src/canberra-context.cc:31: /root/.cache/node-gyp/12.16.1/include/node/v8.h:6126:46: note: candidate: ‘v8::MaybeLocal v8::FunctionTemplate::GetFunction(v8::Local)’  6126 |   V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(       |                                              ^~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/v8.h:6126:46: note:   candidate expects 1 argument, 0 provided ../src/canberra-context.cc: In function ‘char* node_libcanberra::v8_to_string(v8::Local)’: ../src/canberra-context.cc:104:35: error: no matching function for call to ‘v8::String::Utf8Length()’   104 |     size_t length = s->Utf8Length();       |                                   ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../../nan/nan.h:54,                  from ../src/canberra-context.h:31,                  from ../src/canberra-context.cc:31: /root/.cache/node-gyp/12.16.1/include/node/v8.h:2818:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’  2818 |   int Utf8Length(Isolate* isolate) const;       |       ^~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/v8.h:2818:7: note:   candidate expects 1 argument, 0 provided ../src/canberra-context.cc:106:18: error: cannot convert ‘char*’ to ‘v8::Isolate*’   106 |     s->WriteUtf8(buffer, -1, nullptr, v8::String::REPLACE_INVALID_UTF8);       |                  ^~~~~~       |                  |       |                  char* In file included from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../../nan/nan.h:54,                  from ../src/canberra-context.h:31,                  from ../src/canberra-context.cc:31: /root/.cache/node-gyp/12.16.1/include/node/v8.h:2878:26: note:   initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’  2878 |   int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,       |                 ~~~~~~~~~^~~~~~~ ../src/canberra-context.cc: In function ‘ca_proplist* node_libcanberra::maybe_build_proplist(v8::Isolate*, v8::Local)’: ../src/canberra-context.cc:123:51: error: no matching function for call to ‘v8::Object::GetOwnPropertyNames()’   123 |     auto prop_names = fromjs->GetOwnPropertyNames();       |                                                   ^ In file included from /root/.cache/node-gyp/12.16.1/include/node/node.h:63,                  from ../../nan/nan.h:54,                  from ../src/canberra-context.h:31,                  from ../src/canberra-context.cc:31: /root/.cache/node-gyp/12.16.1/include/node/v8.h:3675:43: note: candidate: ‘v8::MaybeLocal v8::Object::GetOwnPropertyNames(v8::Local)’  3675 |   V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyNames(       |                                           ^~~~~~~~~~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/v8.h:3675:43: note:   candidate expects 1 argument, 0 provided /root/.cache/node-gyp/12.16.1/include/node/v8.h:3684:43: note: candidate: ‘v8::MaybeLocal v8::Object::GetOwnPropertyNames(v8::Local, v8::PropertyFilter, v8::KeyConversionMode)’  3684 |   V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyNames(       |                                           ^~~~~~~~~~~~~~~~~~~ /root/.cache/node-gyp/12.16.1/include/node/v8.h:3684:43: note:   candidate expects 3 arguments, 0 provided ../src/canberra-context.cc: At global scope: ../src/canberra-context.cc:102:1: warning: ‘char* node_libcanberra::v8_to_string(v8::Local)’ defined but not used [-Wunused-function]   102 | v8_to_string(v8::Local s)       | ^~~~~~~~~~~~ make: *** [canberra.target.mk:118: Release/obj.target/canberra/src/canberra-context.o] Error 1 make: Leaving directory '/home/minnix/asbuild/almond-server/node_modules/canberra/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) gyp ERR! stack     at ChildProcess.emit (events.js:311:20) gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) gyp ERR! System Linux 5.5.9-200.fc31.x86_64 gyp ERR! command \"/usr/bin/node\" \"/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\" gyp ERR! cwd /home/minnix/asbuild/almond-server/node_modules/canberra success Saved lockfile. Done in 70.93s.

After updating dependencies...

I'm afraid updating the dependencies did not work as expected...


> [email protected] start /home/german/trabajo/Sciling/git/CLEO/almond/thingengine-platform-server
> LANG=en-US node main.js

Frontend initialized in development mode
Failed to load translations: ENOENT: no such file or directory, open '/home/german/trabajo/Sciling/git/CLEO/almond/thingengine-platform-server/po/.mo'
Tier manager initialized for server
Using SEMPRE at https://sabrina-nl.stanford.edu with locale en-US
Database needs migration...
Express server listening on port 3000
/home/german/trabajo/Sciling/git/CLEO/almond/thingengine-platform-server/node_modules/thingengine-core/node_modules/olm/olm.js:19
"undefined"!==typeof module&&(module.exports=a);process.on("uncaughtException",function(a){if(!(a instanceof T))throw a;});a.inspect=function(){return"[Emscripten Module object]"}}else if(ma)a.print||(a.print=print),"undefined"!=typeof printErr&&(a.printErr=printErr),a.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)";},a.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");z("object"===typeof a);return a},"undefined"!=
                                                                                                                ^

Error: SQLITE_ERROR: duplicate column name: extra
    at Error (native)

npm ERR! Linux 4.4.0-96-generic
npm ERR! argv "/usr/bin/node" "/usr/local/bin/npm" "start"
npm ERR! node v6.11.4
npm ERR! npm  v2.15.12
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: `LANG=en-US node main.js`
npm ERR! Exit status 7
npm ERR! 
npm ERR! Failed at the [email protected] start script 'LANG=en-US node main.js'.
npm ERR! This is most likely a problem with the thingengine-server package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     LANG=en-US node main.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs thingengine-server
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! 
npm ERR!     npm owner ls thingengine-server
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/german/trabajo/Sciling/git/CLEO/almond/thingengine-platform-server/npm-debug.log```

Migrate from Bing Speech API to Speech Services and Speech SDK

Microsoft says:

Cognitive Services

Bing Speech API will be retired on October 15, 2019—migrate to Speech
Services and Speech SDK
You’re receiving this email because you currently use the Cognitive
Services Bing Speech API.

We recently released the generally available Speech Services API and Speech SDK which allow you to add speech-enabled features to your apps. Because Speech Services and Speech SDK each fully replaces the existing Bing Speech API capabilities, Bing Speech will be retired as a
standalone service on October 15, 2019. As with all changes of this type, we’re providing 12 months’ notice so you have adequate time to adjust.

To continue using the capabilities of Bing Speech, please migrate to Speech Services by October 15, 2019. We encourage you to make the switch sooner, to gain the richer benefits of Speech Services. In
addition to the Bing Speech features you’re already familiar with,
Speech Services includes:

Speech-to-text (speech recognition), intent, translation, and text-to-
speech capabilities.
A REST API that works with any programming language that can make HTTP
requests.

Key dates

Beginning October 15, 2018, we will no longer make updates to Bing
Speech and its corresponding client libraries and REST APIs. New
subscription keys will no longer be available; however, your existing
keys can be renewed in the Azure portal.

On October 15, 2019, Bing Speech will be retired and no longer be
available.

Recommended action

Migrate to Speech Services before October 15, 2019, to avoid
disruptions to your applications and enjoy quality and feature updates.

If you need help, please review our support options.

User response is not human readable when selecting a device for the IoT command

====
# main
U: start disco lights for bedroom lamp
UT: $dialogue @org.thingpedia.dialogue.transaction.execute;
UT: @org.thingpedia.iot.light-bulb(name="bedroom lamp").color_loop();
C: $dialogue @org.thingpedia.dialogue.transaction.execute;
C: @org.thingpedia.iot.light-bulb(id="io.home-assistant/http://supervisor/homeassistant/light.bedside_lamp"^^tt:device_id("Bedroom Ceiling Light")).color_loop()
C: #[results=[]];
A: You have multiple light bulb devices. Which one do you want to use?
A: I colored loop the Bedroom Ceiling Light lights for you.
AT: $dialogue @org.thingpedia.dialogue.transaction.sys_action_success;

Screen Shot 2021-02-25 at 2 42 49 PM

It should say something like "I mean the Bedroom Ceiling light" instead of "\r {"code":["bookkeeping","choice","5"],"entities":{}}".

Web socket closed after few seconds

In the view of "conversation" the web socket is closed without doing anything after few seconds. The event of the "onclose" function is the following (and it provides any reason):

{
	bubbles: false
	cancelBubble: false
	cancelable: false
	code: 1006
	composed: false
	currentTarget: WebSocket {
		url: "wss://XXXX/api/conversation",
		readyState: 3,
		bufferedAmount: 0,
		onopen: null,
		onerror: null,
		…
	}
	defaultPrevented: false
	eventPhase: 0
	isTrusted: true
	path: []
	reason: ""
	returnValue: true
	srcElement: WebSocket {
		url: "wss://XXXX/api/conversation",
		readyState: 3,
		bufferedAmount: 0,
		onopen: null,
		onerror: null,
		…
	}
	target: WebSocket {
		url: "wss://XXXX/api/conversation",
		readyState: 3,
		bufferedAmount: 0,
		onopen: null,
		onerror: null,
		…
	}
	timeStamp: 60285.39500000001
	type: "close"
	wasClean: false
}

"Record conversation" checkbox doesn't appear to do anything

I know it does what it says (save the conversation log on disk), but given that saving on disk is not accessible in most cases (it's inside the docker or Home Assistant add-on storage) it's not very useful.
The save button seems to be present regardless of whether recording is active or not. The save button is enough to download the log and save it locally.
Perhaps we should remove the "record conversation" checkbox and always show the "save" button?

@rayslxu

Include consent form on the initial configuration page

Similar to how we include the consent form on the registration page in Almond Cloud. This is necessary to get users to participate in the research and share their commands.

If we skip the password part of the initial configuration (as in the old way of doing the Home Assistant add-on), we should still show the initial configuration page with the consent form.

Make Linux specific features optional

For ease of development, we would like almond-server to work on Mac OS X and Windows/WSL too.

This is mostly the case, but the following features are Linux-specific:

  • voice input/output (uses Pulseaudio)
  • Bluetooth (uses dbus+bluez)
  • Media Player (uses gst-play from GStreamer)

These features should be made optional, and their dependencies marked as optionalDependencies.

Cannot find module 'genie-toolkit'

Run stanfordoval/almond-server with docker-compose.
Error at startup:

yarn run v1.22.5
$ node main.js
internal/modules/cjs/loader.js:638
throw err;
Error: Cannot find module 'genie-toolkit'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object. (/opt/almond/main.js:34:15)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Can't reach Almond UI

Hi everyone,

I am having some trouble getting Almond to work. I have created the almond container with

docker run -d \
--name=almond \
--restart=unless-stopped \
--net=host \
-v /volume1/docker/almond/:/var/lib/almond-server \
-p 3000:3000 \
stanfordoval/almond-server:latest

I have also set up port forwarding routing 3000:3000 on my NAS (TCP/UDP).

The result is that NASip:3000 doesn't lead to the Almond UI. Not sure what I am doing wrong here?

Asked for a Matrix account

After the last update, when I start the server I get the following message:

You haven't configured a Matrix account yet. You need a Matrix account to let me talk to other Almonds. Loaded manifest for org.thingpedia.builtin.matrix, module type: org.thingpedia.builtin, version: 1

Weather for San Francisco, Quebec City

image

Tells me the weather for Quebec City, Canada instead of California. I guess it's not wrong.

If I say it out loud, STT transcribes "California" as "CA".

node-pre-gyp: command not found - 1.8.0-beta.1

Release: 1.8.0-beta.1
Platform: aarch64 arm64

I encountered an issue compiling 1.8.0-beta.1 release. Compilation fail with:

/bin/sh: node-pre-gyp: command not found

A temporary workaround is to update the Dockerfile with: npm -g install -y node-pre-gyp
There might be a dependency that require updating, but after applying the workaround I was able to build successfully.

Failure log below:

node-pre-gyp: command not found ```logs

STEP 8: RUN rm -rf /opt/almond/node_modules && yarn && ls -al /var/cache && cp -r /usr/local/share/.cache/yarn/v6/npm-snowboy-1.3.1-220f23f026096fe5290d7919a9f0da93ccd253f2-integrity/node_modules/snowboy/ node_modules/snowboy/ && (cd node_modules/snowboy/ && yarn run install) && rm -fr /usr/local/share/.cache
yarn install v1.22.4
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...

warning Error running install script for optional dependency: "/opt/almond/node_modules/snowboy: Command failed.
Exit code: 1
Command: node-pre-gyp install --fallback-to-build
Arguments:
Directory: /opt/almond/node_modules/snowboy
Output:
node-pre-gyp info it worked if it ends with ok
node-pre-gyp info using [email protected]
node-pre-gyp info using [email protected] | linux | arm64
node-pre-gyp info check checked for "/opt/almond/node_modules/snowboy/lib/node/binding/Release/node-v64-linux-arm64/snowboy.node" (not found)
node-pre-gyp http GET https://snowboy-release-node.s3-us-west-2.amazonaws.com/snowboy/v1.3.1/Release/snowboy-v1.3.1-node-v64-linux-arm64.tar.gz
node-pre-gyp http 403 https://snowboy-release-node.s3-us-west-2.amazonaws.com/snowboy/v1.3.1/Release/snowboy-v1.3.1-node-v64-linux-arm64.tar.gz
node-pre-gyp ERR! Tried to download(403): https://snowboy-release-node.s3-us-west-2.amazonaws.com/snowboy/v1.3.1/Release/snowboy-v1.3.1-node-v64-linux-arm64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp http 403 status code downloading tarball https://snowboy-release-node.s3-us-west-2.amazonaws.com/snowboy/v1.3.1/Release/snowboy-v1.3.1-node-v64-linux-arm64.tar.gz
node-pre-gyp ERR! Tried to download(undefined): https://snowboy-release-node.s3-us-west-2.amazonaws.com/snowboy/v1.3.1/Release/snowboy-v1.3.1-node-v64-linux-arm64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp http Connection closed while downloading tarball file
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm64
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm64
gyp info ok
gyp info ok
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm64
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm64
gyp info find Python using Python version 3.7.6 found at "/usr/bin/python"
gyp info find Python using Python version 3.7.6 found at "/usr/bin/python"
gyp info spawn /usr/bin/python
gyp info spawn args [ '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/opt/almond/node_modules/snowboy/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/root/.cache/node-gyp/10.19.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/root/.cache/node-gyp/10.19.0',
gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/root/.cache/node-gyp/10.19.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/opt/almond/node_modules/snowboy',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.' ]
gyp info spawn /usr/bin/python
gyp info spawn args [ '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/opt/almond/node_modules/snowboy/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/root/.cache/node-gyp/10.19.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/root/.cache/node-gyp/10.19.0',
gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/root/.cache/node-gyp/10.19.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/opt/almond/node_modules/snowboy',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.' ]
gyp info ok
gyp info ok
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm64
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm64
make: Entering directory '/opt/almond/node_modules/snowboy/build'
CXX(target) Release/obj.target/snowboy/swig/Node/snowboy.o
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/opt/almond/node_modules/snowboy/build'
CXX(target) Release/obj.target/snowboy/swig/Node/snowboy.o
In file included from ../swig/Node/snowboy.cc:1:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2298:62: warning: cast between incompatible function types from 'void ()(uv_work_t)' {aka 'void ()(uv_work_s)'} to 'uv_after_work_cb' {aka 'void ()(uv_work_s, int)'} [-Wcast-function-type]
2298 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
In file included from ../swig/Node/snowboy.cc:1:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2298:62: warning: cast between incompatible function types from 'void ()(uv_work_t)' {aka 'void ()(uv_work_s)'} to 'uv_after_work_cb' {aka 'void ()(uv_work_s, int)'} [-Wcast-function-type]
2298 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
../swig/Node/snowboy.cc: In constructor 'SnowboyDetect::SnowboyDetect(const string&, const string&)':
../swig/Node/snowboy.cc:38:31: warning: catching polymorphic type 'class std::runtime_error' by value [-Wcatch-value=]
38 | } catch (std::runtime_error e) {
| ^
In file included from ../../nan/nan.h:54,
from ../swig/Node/snowboy.cc:1:
../swig/Node/snowboy.cc: At global scope:
/root/.cache/node-gyp/10.19.0/include/node/node.h:573:43: warning: cast between incompatible function types from 'void ()(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)' {aka 'void ()(v8::Localv8::Object)'} to 'node::addon_register_func' {aka 'void ()(v8::Localv8::Object, v8::Localv8::Value, void)'} [-Wcast-function-type]
573 | (node::addon_register_func) (regfunc), \\n | ^
/root/.cache/node-gyp/10.19.0/include/node/node.h:607:3: note: in expansion of macro 'NODE_MODULE_X'
607 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
../swig/Node/snowboy.cc:183:1: note: in expansion of macro 'NODE_MODULE'
183 | NODE_MODULE(SnowboyDetect, SnowboyDetect::Init)
| ^~~~~~~~~~~
In file included from /root/.cache/node-gyp/10.19.0/include/node/node.h:63,
from ../../nan/nan.h:54,
from ../swig/Node/snowboy.cc:1:
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo

::Callback = void ()(const v8::WeakCallbackInfonode::ObjectWrap&)]':
/root/.cache/node-gyp/10.19.0/include/node/node_object_wrap.h:84:78: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfonode::ObjectWrap::Callback' {aka 'void (
)(const v8::WeakCallbackInfonode::ObjectWrap&)'} to 'Callback' {aka 'void ()(const v8::WeakCallbackInfo&)'} [-Wcast-function-type]
9502 | reinterpret_cast(callback), type);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../swig/Node/snowboy.cc: In constructor 'SnowboyDetect::SnowboyDetect(const string&, const string&)':
../swig/Node/snowboy.cc:38:31: warning: catching polymorphic type 'class std::runtime_error' by value [-Wcatch-value=]
38 | } catch (std::runtime_error e) {
| ^
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase::SetWeak(P
, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo

::Callback = void ()(const v8::WeakCallbackInfoNan::ObjectWrap&)]':
../../nan/nan_object_wrap.h:65:61: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfoNan::ObjectWrap::Callback' {aka 'void (
)(const v8::WeakCallbackInfoNan::ObjectWrap&)'} to 'Callback' {aka 'void ()(const v8::WeakCallbackInfo&)'} [-Wcast-function-type]
In file included from ../../nan/nan.h:54,
from ../swig/Node/snowboy.cc:1:
../swig/Node/snowboy.cc: At global scope:
/root/.cache/node-gyp/10.19.0/include/node/node.h:573:43: warning: cast between incompatible function types from 'void (
)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)' {aka 'void ()(v8::Localv8::Object)'} to 'node::addon_register_func' {aka 'void ()(v8::Localv8::Object, v8::Localv8::Value, void*)'} [-Wcast-function-type]
573 | (node::addon_register_func) (regfunc), \\n | ^
/root/.cache/node-gyp/10.19.0/include/node/node.h:607:3: note: in expansion of macro 'NODE_MODULE_X'
607 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
../swig/Node/snowboy.cc:183:1: note: in expansion of macro 'NODE_MODULE'
183 | NODE_MODULE(SnowboyDetect, SnowboyDetect::Init)
| ^~~~~~~~~~~
In file included from /root/.cache/node-gyp/10.19.0/include/node/node.h:63,
from ../../nan/nan.h:54,
from ../swig/Node/snowboy.cc:1:
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo

::Callback = void ()(const v8::WeakCallbackInfonode::ObjectWrap&)]':
/root/.cache/node-gyp/10.19.0/include/node/node_object_wrap.h:84:78: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfonode::ObjectWrap::Callback' {aka 'void (
)(const v8::WeakCallbackInfonode::ObjectWrap&)'} to 'Callback' {aka 'void ()(const v8::WeakCallbackInfo&)'} [-Wcast-function-type]
9502 | reinterpret_cast(callback), type);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase::SetWeak(P
, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo

::Callback = void ()(const v8::WeakCallbackInfoNan::ObjectWrap&)]':
../../nan/nan_object_wrap.h:65:61: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfoNan::ObjectWrap::Callback' {aka 'void (
)(const v8::WeakCallbackInfoNan::ObjectWrap&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo&)'} [-Wcast-function-type]
SOLINK_MODULE(target) Release/obj.target/snowboy.node
sed: can't read ./Release/.deps/Release/obj.target/snowboy/swig/Node/snowboy.o.d.raw: No such file or directory
make: *** [snowboy.target.mk:109: Release/obj.target/snowboy/swig/Node/snowboy.o] Error 2
make: Leaving directory '/opt/almond/node_modules/snowboy/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:191:23)
gyp ERR! stack at ChildProcess.emit (events.js:198:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Linux 5.3.0-1019-raspi2
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/opt/almond/node_modules/snowboy/lib/node/binding/Release/node-v64-linux-arm64/snowboy.node" "--module_name=snowboy" "--module_path=/opt/almond/node_modules/snowboy/lib/node/binding/Release/node-v64-linux-arm64"
gyp ERR! cwd /opt/almond/node_modules/snowboy
gyp ERR! node -v v10.19.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/opt/almond/node_modules/snowboy/lib/node/binding/Release/node-v64-linux-arm64/snowboy.node --module_name=snowboy --module_path=/opt/almond/node_modules/snowboy/lib/node/binding/Release/node-v64-linux-arm64' (1)
node-pre-gyp ERR! stack at ChildProcess. (/opt/almond/node_modules/snowboy/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:198:13)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:982:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
node-pre-gyp ERR! System Linux 5.3.0-1019-raspi2
node-pre-gyp ERR! command "/usr/bin/node" "/opt/almond/node_modules/snowboy/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /opt/almond/node_modules/snowboy
node-pre-gyp ERR! node -v v10.19.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.39
node-pre-gyp ERR! not ok
Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/opt/almond/node_modules/snowboy/lib/node/binding/Release/node-v64-linux-arm64/snowboy.node --module_name=snowboy --module_path=/opt/almond/node_modules/snowboy/lib/node/binding/Release/node-v64-linux-arm64' (1)
COPY Release/snowboy.node
COPY /opt/almond/node_modules/snowboy/lib/node/binding/Release/node-v64-linux-arm64/snowboy.node
Done in 293.30s.
total 20aving directory '/opt/almond/node_modules/snowboy/build'
drwxr-xr-x 3 root root 4096 Mar 29 17:23 .
drwxr-xr-x 18 root root 4096 Mar 29 17:23 .. ignore this error
drwxr-xr-x 7 root root 4096 Mar 29 17:23 dnf
drwx------ 2 root root 4096 Mar 29 17:21 ldconfig
drwxr-xr-x 3 root root 4096 Mar 29 17:20 libX11
yarn run v1.22.4
$ node-pre-gyp install --fallback-to-build
/bin/sh: node-pre-gyp: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Error: error building at STEP "RUN rm -rf /opt/almond/node_modules && yarn && ls -al /var/cache && cp -r /usr/local/share/.cache/yarn/v6/npm-snowboy-1.3.1-220f23f026096fe5290d7919a9f0da93ccd253f2-integrity/node_modules/snowboy/ node_modules/snowboy/ && (cd node_modules/snowboy/ && yarn run install) && rm -fr /usr/local/share/.cache": error while running runtime: exit status 127


</details>

skills?

When I run almond-server and connect to its port 3000 web server, there are only the smallest list of available skills. I specifically want it to connect to my home assistant installation, but its skill isn't available and there is no option on any of the port 3000 web pages to add it.
Is there any useful documentation for running almond-server other than the single mention of the 'podman run ...' command? That mention doesn't even document the docker image's parameters

Instructions for running on Docker

The instructions on the README seem to imply that running almond-server on Docker is more difficult than on Podman (the sentence and thus access PulseAudio from your normal session). I don't understand what is needed to access PulseAudio from docker (I've used docker extensively, but never with anything related to sound) and so this makes me thing instructions for running on Docker would be different.

I understand the reason why the README recommends Podman vs. Docker, but since I use Docker extensively, installing Podman just to run almond-server seems overkill.

Would it be possible to provide an equivalent Docker Run command?

Usage w/o voice in a locally hosted Kubernetes cluster

Hey there, great stuff!

I want to run almond and integrate it with Home Assistant.
Afaik this does not require voice support on the almond server side.
However when running the server without the /run/pulse volume mount I get the following output:

yarn run v1.19.1
$ node main.js
Unable to load crypto module: crypto will be disabled: Error: global.Olm is not defined
Frontend initialized in development mode
Failed to load translations: gt.loadTextdomainDirectory is not a function
Using Almond-NNParser at https://almond-nl.stanford.edu/en-US
Failed to initialize libcanberra: Not available
Using Almond-NNParser at https://almond-nl.stanford.edu/en-US
Using Almond-NNParser at https://almond-nl.stanford.edu/en-US
Database needs migration...
events.js:174
throw er; // Unhandled 'error' event
^
Error: Access denied
at Context.process.nextTick (/opt/almond/node_modules/pulseaudio2/lib/pulse.js:121:21)
at process._tickCallback (internal/process/next_tick.js:61:11)
at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Emitted 'error' event at:
at Context.process.nextTick (/opt/almond/node_modules/pulseaudio2/lib/pulse.js:123:22)
at process._tickCallback (internal/process/next_tick.js:61:11)
[... lines matching original stack trace ...]
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

How can I run the docker image without the need for the pulseaudio volume? Do I need to use almond-server:latest-portable although I use linux?

Issue using 'make' in OSX

Hello. There are some issue when running make.

511 verbose pkgid [email protected]
512 verbose cwd /Users/kwangin/workspace/github_source/thingengine-platform-server
513 error Darwin 14.5.0
514 error argv "/usr/local/Cellar/node/6.7.0/bin/node" "/usr/local/bin/npm" "install"
515 error node v6.7.0
516 error npm  v3.10.7
517 error code ELIFECYCLE
518 error [email protected] install: `node-gyp rebuild`
518 error Exit status 1
519 error Failed at the [email protected] install script 'node-gyp rebuild'.
519 error Make sure you have the latest version of node.js and npm installed.
519 error If you do, this is most likely a problem with the posix package,
519 error not with npm itself.
519 error Tell the author that this fails on your system:
519 error     node-gyp rebuild
519 error You can get information on how to open an issue for this project with:
519 error     npm bugs posix
519 error Or if that isn't available, you can get their info via:
519 error     npm owner ls posix
519 error There is likely additional logging output above.
520 verbose exit [ 1, true ]

It seem there are similar issues in other projects using node & npm.
Do you know about this?

Unhandled Home Assistant entity

Almond Server v1.7.2 - Locally hosted.
Home Assistant 0.103.3

I am seeing a continuous stream of Unhandled entities in the almond log.
Does this point to a problem with my configuration or is there a way to filter Unhandled entities.
I cannot find any reference to this kind of report in the documentation.

Here is a very small log sample.

Unhandled Home Assistant entity sensor.xxxxxxxx with domain sensor
Unhandled Home Assistant entity binary_sensor.xxxxxxxx with domain binary_sensor
Unhandled Home Assistant entity group.xxxxxxxx with domain group

Bug: Voice is reading chunks with blanks

Right now, the Voice software is reading chunks containing blanks (four underscores in a row), which is leading to some really weird interactions. We want to omit chunks containing blanks from being read out loud.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.