• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

snowboy Install Failure

Scheduled Pinned Locked Moved Unsolved Troubleshooting
13 Posts 5 Posters 4.1k Views 5 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    binaryhellstorm
    last edited by Sep 15, 2019, 3:58 AM

    I’m trying to set up Google Assistant with hotword detection.
    I’ve follow the tutorials on Github, but when I try to install snowboy I’m getting the output below.
    I am running the latest Raspian build on a Pi 3. I’ve uninstalled and tried multiple times to install, I’ve even blown away the whole OS and Magic Mirror install and started from scratch.

    pi@raspberrypi:~/MagicMirror/modules/MMM-Hotword $ ./installer/install.sh
    Cloning into ‘snowboy’…
    remote: Enumerating objects: 6, done.
    remote: Counting objects: 100% (6/6), done.
    remote: Compressing objects: 100% (4/4), done.
    remote: Total 2131 (delta 2), reused 5 (delta 2), pack-reused 2125
    Receiving objects: 100% (2131/2131), 55.22 MiB | 4.97 MiB/s, done.
    Resolving deltas: 100% (1060/1060), done.
    Checking out files: 100% (313/313), done.
    npm WARN deprecated hawk@3.1.3: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
    npm WARN deprecated cryptiles@2.0.5: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
    npm WARN deprecated boom@2.10.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
    npm WARN deprecated sntp@1.0.9: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
    npm WARN deprecated hoek@2.16.3: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
    npm notice created a lockfile as package-lock.json. You should commit this file.

    • nan@2.14.0
    • node-pre-gyp@0.6.39
      added 115 packages from 85 contributors and audited 269 packages in 23.482s
      found 8 moderate severity vulnerabilities
      run npm audit fix to fix them, or npm audit for details
      node-pre-gyp info it worked if it ends with ok
      node-pre-gyp info using node-pre-gyp@0.6.39
      node-pre-gyp info using node@10.15.2 | linux | arm
      gyp info it worked if it ends with ok
      gyp info using node-gyp@3.8.0
      gyp info using node@10.15.2 | linux | arm
      gyp info spawn /usr/bin/python2
      gyp info spawn args [ ‘/usr/share/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/pi/MagicMirror/modules/MMM-Hotword/snowboy/build/config.gypi’,
      gyp info spawn args ‘-I’,
      gyp info spawn args ‘/usr/share/node-gyp/addon.gypi’,
      gyp info spawn args ‘-I’,
      gyp info spawn args ‘/usr/include/nodejs/common.gypi’,
      gyp info spawn args ‘-Dlibrary=shared_library’,
      gyp info spawn args ‘-Dvisibility=default’,
      gyp info spawn args ‘-Dnode_root_dir=/usr/include/nodejs’,
      gyp info spawn args ‘-Dnode_gyp_dir=/usr/share/node-gyp’,
      gyp info spawn args ‘-Dnode_lib_file=/usr/include/nodejs/<(target_arch)/node.lib’,
      gyp info spawn args ‘-Dmodule_root_dir=/home/pi/MagicMirror/modules/MMM-Hotword/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 it worked if it ends with ok
      gyp info using node-gyp@3.8.0
      gyp info using node@10.15.2 | linux | arm
      gyp info spawn make
      gyp info spawn args [ ‘BUILDTYPE=Release’, ‘-C’, ‘build’ ]
      make: Entering directory ‘/home/pi/MagicMirror/modules/MMM-Hotword/snowboy/build’
      CXX(target) Release/obj.target/snowboy/swig/Node/snowboy.o
      In file included from …/swig/Node/snowboy.cc:1:
      …/node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
      …/node_modules/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]
      , 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=]
      } catch (std::runtime_error e) {
      ^
      In file included from …/node_modules/nan/nan.h:54,
      from …/swig/Node/snowboy.cc:1:
      …/swig/Node/snowboy.cc: At global scope:
      /usr/include/nodejs/src/node.h:570: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]
      (node::addon_register_func) (regfunc),
      ^
      /usr/include/nodejs/src/node.h:604:3: note: in expansion of macro ‘NODE_MODULE_X’
      NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
      ^~~~~~~~~~~~~
      …/swig/Node/snowboy.cc:183:1: note: in expansion of macro ‘NODE_MODULE’
      NODE_MODULE(SnowboyDetect, SnowboyDetect::Init)
      ^~~~~~~~~~~
      In file included from /usr/include/nodejs/src/node.h:63,
      from …/node_modules/nan/nan.h:54,
      from …/swig/Node/snowboy.cc:1:
      /usr/include/nodejs/deps/v8/include/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&)]’:
      /usr/include/nodejs/src/node_object_wrap.h:85:78: required from here
      /usr/include/nodejs/deps/v8/include/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]
      reinterpret_cast(callback), type);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/nodejs/deps/v8/include/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&)]’:
      …/node_modules/nan/nan_object_wrap.h:65:61: required from here
      /usr/include/nodejs/deps/v8/include/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
      COPY Release/snowboy.node
      COPY /home/pi/MagicMirror/modules/MMM-Hotword/snowboy/lib/node/binding/Release/node-v64-linux-arm/snowboy.node
      TOUCH Release/obj.target/action_after_build.stamp
      make: Leaving directory ‘/home/pi/MagicMirror/modules/MMM-Hotword/snowboy/build’
      gyp info ok
      node-pre-gyp info ok

    snowboy@1.3.1 install /home/pi/MagicMirror/modules/MMM-Hotword/snowboy
    node-pre-gyp install --fallback-to-build

    [snowboy] Success: “/home/pi/MagicMirror/modules/MMM-Hotword/snowboy/lib/node/binding/Release/node-v64-linux-arm/snowboy.node” already installed
    Pass --update-binary to reinstall or --build-from-source to recompile
    npm WARN prepublish-on-install As of npm@5, prepublish scripts are deprecated.
    npm WARN prepublish-on-install Use prepare for build steps and prepublishOnly for upload-only.
    npm WARN prepublish-on-install See the deprecation note in npm help scripts for more information.

    snowboy@1.3.1 prepublish /home/pi/MagicMirror/modules/MMM-Hotword/snowboy
    tsc --listFiles

    …/…/…/node_modules/@types/unist/index.d.ts:31:20 - error TS2304: Cannot find name ‘unknown’.

    31 [key: string]: unknown;
    ~~~~~~~

    …/…/…/node_modules/@types/unist/index.d.ts:40:20 - error TS2304: Cannot find name ‘unknown’.

    40 [key: string]: unknown;
    ~~~~~~~

    …/…/…/node_modules/@types/unist/index.d.ts:97:12 - error TS2304: Cannot find name ‘unknown’.

    97 value: unknown;
    ~~~~~~~

    …/…/…/node_modules/@types/vfile-message/index.d.ts:69:24 - error TS2304: Cannot find name ‘unknown’.

    69 [key: string]: unknown;
    ~~~~~~~

    …/…/…/node_modules/@types/vfile/index.d.ts:48:15 - error TS2304: Cannot find name ‘unknown’.

    48 data: unknown;
    ~~~~~~~

    /home/pi/MagicMirror/modules/MMM-Hotword/snowboy/node_modules/typescript/lib/lib.es6.d.ts
    /home/pi/MagicMirror/modules/MMM-Hotword/snowboy/lib/node/index.ts
    /home/pi/MagicMirror/modules/MMM-Hotword/snowboy/lib/node/node-pre-gyp.d.ts
    /home/pi/MagicMirror/modules/MMM-Hotword/snowboy/lib/node/SnowboyDetectNative.d.ts
    /home/pi/MagicMirror/modules/MMM-Hotword/snowboy/node_modules/@types/node/base.d.ts
    /home/pi/MagicMirror/modules/MMM-Hotword/snowboy/node_modules/@types/node/index.d.ts
    /home/pi/MagicMirror/node_modules/@types/events/index.d.ts
    /home/pi/MagicMirror/node_modules/@types/minimatch/index.d.ts
    /home/pi/MagicMirror/node_modules/@types/glob/index.d.ts
    /home/pi/MagicMirror/node_modules/@types/unist/index.d.ts
    /home/pi/MagicMirror/node_modules/@types/vfile-message/index.d.ts
    /home/pi/MagicMirror/node_modules/@types/vfile/index.d.ts
    npm ERR! code ELIFECYCLE
    npm ERR! errno 2
    npm ERR! snowboy@1.3.1 prepublish: tsc --listFiles
    npm ERR! Exit status 2
    npm ERR!
    npm ERR! Failed at the snowboy@1.3.1 prepublish script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in:
    npm ERR! /home/pi/.npm/_logs/2019-09-15T03_46_46_443Z-debug.log

    • electron-rebuild@1.8.6
      added 91 packages from 76 contributors, removed 15 packages and audited 508 packages in 30.672s
      found 8 moderate severity vulnerabilities
      run npm audit fix to fix them, or npm audit for details
      ✔ Rebuild Complete
      electron-v3.1-linux-arm node-v64-linux-arm
      lib/node/index.js
    ? 1 Reply Last reply Sep 15, 2019, 8:32 AM Reply Quote 0
    • ? Offline
      A Former User @binaryhellstorm
      last edited by Sep 15, 2019, 8:32 AM

      @binaryhellstorm

      ✔ Rebuild Complete
      electron-v3.1-linux-arm node-v64-linux-arm
      lib/node/index.js

      means you completed installation finally.

      1 Reply Last reply Reply Quote 0
      • B Offline
        binaryhellstorm
        last edited by Sep 15, 2019, 12:42 PM

        Ah Ok, I guess I assumed the errors were bad.

        So then I guess my next question is, why would Hotword detection not work? I’ve enabled it in the config.js and I get the Google Assistant icon at the bottom of my screen, but no hotword icon, and saying any of the built in hotwords doesn’t seem to do anything.

        I’ve done test recordings from command line and the microphone is picking up audio, but just no dice on getting the mirror to respond to voice commands.

        ? 1 Reply Last reply Sep 15, 2019, 12:46 PM Reply Quote 0
        • ? Offline
          A Former User @binaryhellstorm
          last edited by Sep 15, 2019, 12:46 PM

          @binaryhellstorm
          First, you’d better check Hotword standalone without other modules in config.js (to make things simple)
          Backup your current config.js and make a new one, which has only MMM-Hotword and other modules be removed.
          Then try to execute and see the log (It is convenient to use npm start dev instead pm2), If there is some issue, it will be logged.
          Then show me your config.

          1 Reply Last reply Reply Quote 0
          • B Offline
            binaryhellstorm
            last edited by Sep 15, 2019, 1:06 PM

            Ok, here’s the bog standard config with just the hotword module loaded, still don’t get an icon for it.
            I am noticing that in the terminal window there is a
            [HOTWORD] No model to load

            Even though there are models in the directory
            /home/pi/MagicMirror/modules/MMM-Hotword/models
            as well as
            /home/pi/MagicMirror/modules/MMM-Hotword/snoboy/resources/models

            /* Magic Mirror Config Sample
            *

            • By Michael Teeuw http://michaelteeuw.nl
            • MIT Licensed.
            • For more information how you can configurate this file
            • See https://github.com/MichMich/MagicMirror#configuration

            */

            var config = {
            address: “localhost”, // Address to listen on, can be:
            // - “localhost”, “127.0.0.1”, “::1” to listen on loopback interface
            // - another specific IPv4/6 to listen on a specific interface
            // - “”, “0.0.0.0”, “::” to listen on any interface
            // Default, when address config is left out, is “localhost”
            port: 8080,
            ipWhitelist: [“127.0.0.1”, “::ffff:127.0.0.1”, “::1”], // Set [] to allow all IP addresses
            // or add a specific IPv4 of 192.168.1.5 :
            // [“127.0.0.1”, “::ffff:127.0.0.1”, “::1”, “::ffff:192.168.1.5”],
            // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
            // [“127.0.0.1”, “::ffff:127.0.0.1”, “::1”, “::ffff:192.168.3.0/28”],

            language: "en",
            timeFormat: 24,
            units: "metric",
            
            modules: [
            	{
            		module: "alert",
            	},
            	{
            		module: "updatenotification",
            		position: "top_bar"
            	},
            	{
            		module: "clock",
            		position: "top_left"
            	},
            	{
            		module: "calendar",
            		header: "US Holidays",
            		position: "top_left",
            		config: {
            			calendars: [
            				{
            					symbol: "calendar-check",
            					url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"					}
            			]
            		}
            	},
            	{
            		module: "compliments",
            		position: "lower_third"
            	},
            	{
            		module: "currentweather",
            		position: "top_right",
            		config: {
            			location: "New York",
            			locationID: "",  //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
            			appid: "YOUR_OPENWEATHER_API_KEY"
            		}
            	},
            	{
            		module: "weatherforecast",
            		position: "top_right",
            		header: "Weather Forecast",
            		config: {
            			location: "New York",
            			locationID: "5128581",  //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
            			appid: "YOUR_OPENWEATHER_API_KEY"
            		}
            	},
            	{
            		module: "newsfeed",
            		position: "bottom_bar",
            		config: {
            			feeds: [
            				{
            					title: "New York Times",
            					url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
            				}
            			],
            			showSourceTitle: true,
            			showPublishDate: true,
            			broadcastNewsFeeds: true,
            			broadcastNewsUpdates: true
            		}
            	},
            	//Hotword Module
            

            {
            module: “MMM-Hotword”,
            config: {
            record: {
            recordProgram : “arecord”,
            device : “plughw:1”,
            },
            autostart:true,
            onDetected: {
            notification: function (payload) {
            return “ASSISTANT_ACTIVATE”
            },
            payload: function (payload){
            return {
            profile: payload.hotword
            }
            }
            },
            },
            },
            ]

            };

            /*************** DO NOT EDIT THE LINE BELOW ***************/
            if (typeof module !== “undefined”) {module.exports = config;}

            ? 1 Reply Last reply Sep 15, 2019, 6:12 PM Reply Quote 0
            • ? Offline
              A Former User @binaryhellstorm
              last edited by Sep 15, 2019, 6:12 PM

              @binaryhellstorm
              You haven’t described “models” in your configuration.
              https://github.com/eouia/MMM-Hotword/blob/master/documents/config.md

              1 Reply Last reply Reply Quote 0
              • B Offline
                binaryhellstorm
                last edited by Sep 21, 2019, 11:45 PM

                Awesome! That was it, thanks so much for the help.

                ? 1 Reply Last reply Sep 29, 2019, 5:38 AM Reply Quote 0
                • ? Offline
                  A Former User @binaryhellstorm
                  last edited by Sep 29, 2019, 5:38 AM

                  @binaryhellstorm After fixing this error, Does your magic mirror in snowboy,hotword is work on Google Ai?

                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    binaryhellstorm
                    last edited by Sep 29, 2019, 9:49 PM

                    The hotword detection is working and it’s passing it to the Google Assistant module and that module is working too

                    ? 1 Reply Last reply Oct 2, 2019, 2:20 PM Reply Quote 1
                    • ? Offline
                      A Former User @binaryhellstorm
                      last edited by Oct 2, 2019, 2:20 PM

                      @binaryhellstorm Can you show me the modified config file or e-mail it to me?

                      citizendevpiC S 2 Replies Last reply Oct 4, 2019, 2:34 AM Reply Quote 0
                      • 1
                      • 2
                      • 1 / 2
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy