• 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.

Need help for testing modules

Scheduled Pinned Locked Moved Development
14 Posts 5 Posters 5.8k 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.
  • ? Offline
    A Former User
    last edited by A Former User Sep 25, 2017, 8:01 PM Sep 25, 2017, 8:00 PM

    Hi, everyone.

    I’m building another(!) voice commander & assistant module for MagicMirror. Yes. I know already there are plenty of modules about it. Anyway, I think mine is somehow different, at least more fit for myself.

    It supports;

    • Google Assistant is embedded with gRpc. (not with python library). You don’t need to manage another daemon to use Google Assistant. It would start and stop with MagicMirror together. All features are controlled in MagicMirror.
    • snowboy hotwords detection is embedded. You can use 2 hotwords for Assistant mode and Command mode.
    • Speech-To-Text recognition engine is implemented. Currently google-cloud-speech API is used. I consider adding additional engines.
    • Pico2Wave is used for the response of command. I also consider adding other TTS solutions.
    • Module developers can add their command easily. It is really easy.
    • Ability(but limited) for foreign language besides English.

    sounds nice?

    But my brain is exhausted now. I am on the verge of hating development of this. hundreds of times for testing and debugging makes me disgusted. Thus I need your help.
    I think it’s better to open this before my interesting gone away. Bits of the help from people could make me gain concentration again. So please test this module and report issues on Github.

    What I want;

    • Check whether there be wrong instruction or information.
    • Check installation process. I doubt I might miss something else.
    • Check running. Report bug or problem.
    • And any suggestion will be welcomed.

    [card:eouia/MMM-Assistant]
    Read wiki first.

    Thanks in advance.

    1 Reply Last reply Reply Quote 0
    • G Offline
      gauravsacc Module Developer
      last edited by Sep 25, 2017, 9:44 PM

      @Sean said in Need help for testing modules:

      f the help from people could make me gain concentration again. So please test this module and report issues on Github.

      Nice @Sean ! I wrote a basic Google Assistant module https://github.com/gauravsacc/MMM-GoogleAssistant a while back and haven’t had time to implement all the features I wanted to. If you look at the readme you can tell i had the same ideas as you :) Happy to help test!

      ? 1 Reply Last reply Sep 25, 2017, 10:34 PM Reply Quote 0
      • ? Offline
        A Former User @gauravsacc
        last edited by Sep 25, 2017, 10:34 PM

        @gauravsacc Frankly, start of this module was stimulated by your module. ;)

        1 Reply Last reply Reply Quote 0
        • T Offline
          TheOmran
          last edited by Oct 2, 2017, 11:26 PM

          Running into the following errors installing the module.

          pi@raspberrypi:~/MagicMirror/modules/MMM-Assistant $ npm install --save-dev electron-rebuild && ./node_modules/.bin/electron-rebuild --pre-gyp-fix
          MMM-TelegramBot@1.0.0 /home/pi/MagicMirror/modules/MMM-Assistant
          └── electron-rebuild@1.6.0 
          
          npm WARN MMM-TelegramBot@1.0.0 No repository field.
          npm WARN MMM-TelegramBot@1.0.0 No license field.
          ✖ Rebuild Failed
          
          An unhandled error occurred inside electron-rebuild
          gyp info it worked if it ends with ok
          gyp info using node-gyp@3.6.2
          gyp info using node@6.11.3 | linux | arm
          gyp http GET https://atom.io/download/electron/v1.7.8/iojs-v1.7.8.tar.gz
          gyp http 200 https://atom.io/download/electron/v1.7.8/iojs-v1.7.8.tar.gz
          gyp http GET https://atom.io/download/electron/v1.7.8/SHASUMS256.txt
          gyp http 200 https://atom.io/download/electron/v1.7.8/SHASUMS256.txt
          gyp info spawn /usr/bin/python2
          gyp info spawn args [ '/home/pi/MagicMirror/modules/MMM-Assistant/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/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy/build/config.gypi',
          gyp info spawn args   '-I',
          gyp info spawn args   '/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/node-gyp/addon.gypi',
          gyp info spawn args   '-I',
          gyp info spawn args   '/home/pi/.electron-gyp/.node-gyp/iojs-1.7.8/common.gypi',
          gyp info spawn args   '-Dlibrary=shared_library',
          gyp info spawn args   '-Dvisibility=default',
          gyp info spawn args   '-Dnode_root_dir=/home/pi/.electron-gyp/.node-gyp/iojs-1.7.8',
          gyp info spawn args   '-Dnode_gyp_dir=/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/node-gyp',
          gyp info spawn args   '-Dnode_lib_file=/home/pi/.electron-gyp/.node-gyp/iojs-1.7.8/(target_arch)/iojs.lib',
          gyp info spawn args   '-Dmodule_root_dir=/home/pi/MagicMirror/modules/MMM-Assistant/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 make
          gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
          make: Entering directory '/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy/build'
            CXX(target) Release/obj.target/snowboy/swig/Node/snowboy.o
            SOLINK_MODULE(target) Release/obj.target/snowboy.node
          /usr/bin/ld: cannot find -lcblas
          collect2: error: ld returned 1 exit status
          snowboy.target.mk:130: recipe for target 'Release/obj.target/snowboy.node' failed
          make: Leaving directory '/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy/build'
          make: *** [Release/obj.target/snowboy.node] Error 1
          gyp ERR! build error 
          gyp ERR! stack Error: `make` failed with exit code: 2
          gyp ERR! stack     at ChildProcess.onExit (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/node-gyp/lib/build.js:258:23)
          gyp ERR! stack     at emitTwo (events.js:106:13)
          gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
          gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:219:12)
          gyp ERR! System Linux 4.9.41-v7+
          gyp ERR! command "/usr/bin/node" "/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/.bin/node-gyp" "rebuild" "--target=1.7.8" "--arch=arm" "--dist-url=https://atom.io/download/electron" "--build-from-source" "--module_name=snowboy" "--module_path=/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy/lib/node/binding/Release/electron-v1.7-linux-arm" "--remote_path=./snowboy/v1.2.0/Release/" "--package_name=snowboy-v1.2.0-electron-v1.7-linux-arm.tar.gz" "--host=https://snowboy-release-node.s3-us-west-2.amazonaws.com"
          gyp ERR! cwd /home/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy
          gyp ERR! node -v v6.11.3
          gyp ERR! node-gyp -v v3.6.2
          gyp ERR! not ok 
          
          Failed with exit code: 1
          
          Error: gyp info it worked if it ends with ok
          gyp info using node-gyp@3.6.2
          gyp info using node@6.11.3 | linux | arm
          gyp http GET https://atom.io/download/electron/v1.7.8/iojs-v1.7.8.tar.gz
          gyp http 200 https://atom.io/download/electron/v1.7.8/iojs-v1.7.8.tar.gz
          gyp http GET https://atom.io/download/electron/v1.7.8/SHASUMS256.txt
          gyp http 200 https://atom.io/download/electron/v1.7.8/SHASUMS256.txt
          gyp info spawn /usr/bin/python2
          gyp info spawn args [ '/home/pi/MagicMirror/modules/MMM-Assistant/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/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy/build/config.gypi',
          gyp info spawn args   '-I',
          gyp info spawn args   '/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/node-gyp/addon.gypi',
          gyp info spawn args   '-I',
          gyp info spawn args   '/home/pi/.electron-gyp/.node-gyp/iojs-1.7.8/common.gypi',
          gyp info spawn args   '-Dlibrary=shared_library',
          gyp info spawn args   '-Dvisibility=default',
          gyp info spawn args   '-Dnode_root_dir=/home/pi/.electron-gyp/.node-gyp/iojs-1.7.8',
          gyp info spawn args   '-Dnode_gyp_dir=/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/node-gyp',
          gyp info spawn args   '-Dnode_lib_file=/home/pi/.electron-gyp/.node-gyp/iojs-1.7.8/(target_arch)/iojs.lib',
          gyp info spawn args   '-Dmodule_root_dir=/home/pi/MagicMirror/modules/MMM-Assistant/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 make
          gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
          make: Entering directory '/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy/build'
            CXX(target) Release/obj.target/snowboy/swig/Node/snowboy.o
            SOLINK_MODULE(target) Release/obj.target/snowboy.node
          /usr/bin/ld: cannot find -lcblas
          collect2: error: ld returned 1 exit status
          snowboy.target.mk:130: recipe for target 'Release/obj.target/snowboy.node' failed
          make: Leaving directory '/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy/build'
          make: *** [Release/obj.target/snowboy.node] Error 1
          gyp ERR! build error 
          gyp ERR! stack Error: `make` failed with exit code: 2
          gyp ERR! stack     at ChildProcess.onExit (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/node-gyp/lib/build.js:258:23)
          gyp ERR! stack     at emitTwo (events.js:106:13)
          gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
          gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:219:12)
          gyp ERR! System Linux 4.9.41-v7+
          gyp ERR! command "/usr/bin/node" "/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/.bin/node-gyp" "rebuild" "--target=1.7.8" "--arch=arm" "--dist-url=https://atom.io/download/electron" "--build-from-source" "--module_name=snowboy" "--module_path=/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy/lib/node/binding/Release/electron-v1.7-linux-arm" "--remote_path=./snowboy/v1.2.0/Release/" "--package_name=snowboy-v1.2.0-electron-v1.7-linux-arm.tar.gz" "--host=https://snowboy-release-node.s3-us-west-2.amazonaws.com"
          gyp ERR! cwd /home/pi/MagicMirror/modules/MMM-Assistant/node_modules/snowboy
          gyp ERR! node -v v6.11.3
          gyp ERR! node-gyp -v v3.6.2
          gyp ERR! not ok 
          
          Failed with exit code: 1
              at SafeSubscriber._error (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/spawn-rx/lib/src/index.js:267:84)
              at SafeSubscriber.__tryOrUnsub (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/rxjs/Subscriber.js:238:16)
              at SafeSubscriber.error (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/rxjs/Subscriber.js:197:26)
              at Subscriber._error (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/rxjs/Subscriber.js:128:26)
              at Subscriber.error (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/rxjs/Subscriber.js:102:18)
              at MapSubscriber.Subscriber._error (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/rxjs/Subscriber.js:128:26)
              at MapSubscriber.Subscriber.error (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/rxjs/Subscriber.js:102:18)
              at SafeSubscriber._next (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/spawn-rx/lib/src/index.js:241:65)
              at SafeSubscriber.__tryOrSetError (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/rxjs/Subscriber.js:247:16)
              at SafeSubscriber.next (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/rxjs/Subscriber.js:187:27)
          
          

          Solution was to (after going back and forth for hours) install the following.

          sudo apt-get install libatlas-base-dev
          

          Right now it seems to be installing, still at 2% but will update when it’s done!

          Oh, and great plugin man! :)

          ? 1 Reply Last reply Oct 2, 2017, 11:28 PM Reply Quote 0
          • ? Offline
            A Former User @TheOmran
            last edited by Oct 2, 2017, 11:28 PM

            @TheOmran thanks. Maybe i missed something in manual. I’ll check and add your result to wiki. Thanks again.

            1 Reply Last reply Reply Quote 0
            • C Offline
              cxlwill
              last edited by Oct 9, 2017, 7:33 AM

              I just starred your plugin while wandering at Github and go back to find the post at forum. I’m so excited that this plugin actually published with high level of completeness. You did a wonderful job!

              ? 1 Reply Last reply Oct 9, 2017, 8:51 AM Reply Quote 0
              • ? Offline
                A Former User @cxlwill
                last edited by Oct 9, 2017, 8:51 AM

                @cxlwill Thanks for your words. I hope I could find some nice East Asian Alternatives.

                1 Reply Last reply Reply Quote 0
                • T Offline
                  Txukie
                  last edited by Oct 15, 2017, 4:16 PM

                  I have been trying to make this work for a couple of days but I don’t seem to be able to achieve this. I have installed it correctly and add it to my screen, it does detect when I say “snowboy” but then it fails miserably.
                  This is the error it throws:

                  0|mm       | [ASSTNT] Conversation Error: Service unavailable.
                  0|mm       | Recording 16384 bytes
                  0|mm       | Recording 16384 bytes
                  0|mm       | [ASSTNT] Conversation Error: { Error: Unknown Error.
                  0|mm       |     at ClientDuplexStream._emitStatusIfDone (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/google-assistant/node_modules/grpc/src/node/src/client.js:201:19)
                  0|mm       |     at ClientDuplexStream._receiveStatus (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/google-assistant/node_modules/grpc/src/node/src/client.js:180:8)
                  0|mm       |     at /home/pi/MagicMirror/modules/MMM-Assistant/node_modules/google-assistant/node_modules/grpc/src/node/src/client.js:649:14
                  0|mm       |   code: 2,
                  0|mm       |   metadata: Metadata { _internal_repr: { 'content-disposition': [Object] } } }
                  
                  

                  This is the configuration file

                  {
                                    module: 'MMM-Assistant',
                                    position: 'bottom_left',
                                    config: {
                                      assistant: {
                                        auth: {
                                          keyFilePath: "secret.json", //When you want to change the location of this file, set this.
                                          savedTokensPath: "resources/tokens.js" //When you want to change the location of this file, set this.
                                        },
                                        audio: {
                                          encodingIn: "LINEAR16", //Ignore this. I think you don't need to change this.
                                          sampleRateOut: 16000 //Ignore this. I think you don't need to change this.
                                        }
                                      },
                                      snowboy: {
                                        models: [
                                          {
                                            file: "resources/smart_mirror.pmdl",
                                            sensitivity: 0.5,
                                            hotwords : "MIRROR" //One of models should be "MIRROR"
                                          },
                                          {
                                            file: "resources/snowboy.umdl",
                                            sensitivity: 0.5,
                                            hotwords : "ASSISTANT" //One of models should be "ASSISTANT"
                                          }
                                        ]
                                      },
                                      record: {
                                        threshold: 0, //Ignore this. I think you don't need to change this.
                                        verbose:true, //true for checking recording status.
                                        recordProgram: 'rec', //You can use 'rec', 'sox'. But I recommend use 'arecord'.
                                        silence: 2.0 //Ignore this. I think you don't need to change this.
                                      },
                                      stt: {
                                        auth: [{
                                          projectId: 'magicmirror-gassistant', //ProjectId from Google Console
                                          keyFilename: 'keyfile.json'
                                        }], //You can use multi accounts for saving money.
                                        request: {
                                          encoding: 'LINEAR16', //Ignore this. I think you don't need to change this.
                                          sampleRateHertz: 16000, //Ignore this. I think you don't need to change this.
                                          languageCode: 'en-US' //See https://cloud.google.com/speech/docs/languages
                                        },
                                      },
                                      speak: {
                                        useAlert: true, //If you want to show the text of speech, set this true. But It could be ignored by command of modules directly.
                                        language: 'en-US', //If you want to set the default language of speech of command result, set this.
                                      },
                                      alias: [
                                        {
                                          "help :command" : ["teach me :command", "what is :command"]
                                        }
                                      ] // You can use aliases for difficult pronunciation or easy using.
                                    }
                                  }
                  
                  

                  Any help with this would be greatly appreciated

                  ? 1 Reply Last reply Oct 15, 2017, 6:20 PM Reply Quote 0
                  • ? Offline
                    A Former User @Txukie
                    last edited by Oct 15, 2017, 6:20 PM

                    @Txukie
                    Have you tried changing recordProgram to arecord?

                    1 Reply Last reply Reply Quote 0
                    • T Offline
                      Txukie
                      last edited by Oct 15, 2017, 6:44 PM

                      I have, it fails with another error:

                      [ASSTNT] Assistant Activated
                      Recording with sample rate 16000...
                      Recording 4000 bytes
                      End Recording: 431.071ms
                      Recording 12044 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      Recording 4000 bytes
                      (node:10777) Warning: No such label 'End Recording' for console.timeEnd()
                      [ASSTNT] Conversation Error: { Error: Received RST_STREAM with error code 0
                          at ClientDuplexStream._emitStatusIfDone (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/google-assistant/node_modules/grpc/src/node/src/client.js:201:19)
                          at ClientDuplexStream._receiveStatus (/home/pi/MagicMirror/modules/MMM-Assistant/node_modules/google-assistant/node_modules/grpc/src/node/src/client.js:180:8)
                          at /home/pi/MagicMirror/modules/MMM-Assistant/node_modules/google-assistant/node_modules/grpc/src/node/src/client.js:649:14 code: 13, metadata: Metadata { _internal_repr: {} } }
                      
                      
                      ? 1 Reply Last reply Oct 15, 2017, 7:54 PM 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