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.

    MMM-AssistantMk2

    Scheduled Pinned Locked Moved System
    421 Posts 61 Posters 630.8k Views 57 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.
    • E Offline
      Egnos
      last edited by Egnos

      Hi @Sean.
      I have some questions to ask you:

      • I installed AssistantMK2 and Hotword successfully but the only way to wake up the assistant is to say “snowboy”. The hot word “smartmirror” and “jarvis” do not work. Can you help me? (my config.js below…)

      • When I ask for a song on youtube I can not stop the song anymore. The assistant does not listen to me. To talk to the assistant I have to wait for the end of the song. How do I solve?

      • When the assistant begins to speak, he cuts the first words, is it possible to solve?

      • The videos on youtube are reproduced in full screen. Is it possible to reproduce them in a small box (example: bottom right …)?

      Thanks you for your great work and patience! :winking_face:

      /* 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: "MMM-AssistantMk2",
      		  position: "top_right",
      		  config: {
      		    /*useWelcomeMessage: "brief today",*/
      		    deviceLocation: {
      					coordinates: { // set the latitude and longitude of the device to get localized information like weather or time. (ref. mygeoposition.com)
      					latitude: 45.200049, // -90.0 - +90.0
      					longitude: 7.568917, // -180.0 - +180.0					
                }
              },
      			profiles: {
      				"default" : { // profile name.
      				profileFile: "default.json", // profile file name.
      				lang: "it-IT",
      				//currently available (estimation, not all tested):
      				//  de-DE, en-AU, en-CA, en-GB, en-US, en-IN
      				// fr-CA, fr-FR, it-IT, ja-JP, es-ES, es-MX, ko-KR, pt-BR
      				// https://developers.google.com/assistant/sdk/reference/rpc/languages
      				}
              },
      			record: { // Full values are in `FOR EXPERTS` section.
      				recordProgram: "arecord",  // Defaults to "arecord" - also supports "rec" and "sox"
      				device: "plughw:1"        // recording device (e.g.: "plughw:1")
            },
      			play: { // Full values are in `FOR EXPERTS` section.
      				playProgram: "mpg321", // recommended.
      			},
      			notifications: {
              ASSISTANT_ACTIVATED: "HOTWORD_PAUSE",
              ASSISTANT_DEACTIVATED: "HOTWORD_RESUME",
            },        
           
      				}
          },
      		{
          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
                }
              }
            },
          },
        },	
      	
      {
        module: 'MMM-Hotword',
        config: {
          snowboy: [
        {
          hotwords: "smartmirror", //this will be sent to other module for distinguishing which hotword is detected.
          file: "resources/models/smart_mirror.umdl",
          sensitivity: '0.5',
        },
        {
          hotwords: "snowboy",
          file: "resources/models/snowboy.umdl",
          sensitivity: '0.5',
        },
        {
          file: 'resources/models/jarvis.umdl',
          sensitivity: '0.8,0.80',
          hotwords: ['jarvis','jarvis'] //Kitt.ai changed their Jarvis UMDL, it has 2 models in one file. So weird.
          //anyway, you can give different name for each. ['jarvis_1', 'jarvis_2']. Even though I think this is useless.
        }
          ],
          record: {
            sampleRate    : 16000,      // audio sample rate
            threshold     : 0.5,        // silence threshold (rec only)
            thresholdStart: null,       // silence threshold to start recording, overrides threshold (rec only)
            thresholdEnd  : null,       // silence threshold to end recording, overrides threshold (rec only)
            silence       : 1.0,        // seconds of silence before ending
            verbose       : true,      // log info to the console. Use this when you want to check mic working or not.
            recordProgram : 'arecord',  // Defaults to 'arecord' - also supports 'rec' and 'sox'
            device        : 'plughw:1'        // recording device (e.g.: 'plughw:1')
          },
          autostart: true,              // if 'false', this module will wait for 'HOTWORD_RESUME' notification to start hotwords detection at the beginning.
          autorestart: false,          // You can set this 'true' when you want this module to go back to listening mode automatically again after hotword is detected. But use this carefully when your other modules are using microphone or speaker.
      
          // customizable notification trigger
          notifications: {
            PAUSE: "HOTWORD_PAUSE",
            RESUME: "HOTWORD_RESUME",
            LISTENING : "HOTWORD_LISTENING",
            SLEEPING : "HOTWORD_SLEEPING",
            ERROR : "HOTWORD_ERROR",
          },
          onDetected: {
            notification: (payload) => {
              return "HOTWORD_DETECTED"
            },
            payload: (payload) => {
              return payload
            }
          },
        }
      },
      
      /*		{
              module: 'MMM-pages',
              config: {
                      modules:
                          [[ "weatherforecast", "newsfeed"],
                           [ "calendar", "compliments" ]],
                      excludes: ["clock", "currentweather", "MMM-page-indicator", "MMM-AssistantMk2"],
      				}
      		},
      		{
              module: 'MMM-page-indicator',
              position: 'bottom_bar',
              config: {
                  pages: 3,
      			}
      		},
      */		{
      			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-o ",
      						url: "webcal://www.calendarlabs.com/templates/ical/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/; 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://www.openweathermap.org/help/city_list.txt
      				appid: "YOUR_OPENWEATHER_API_KEY"
      			}
      		},
      		{
      			module: "newsfeed",
      			position: "bottom_bar",
      			config: {
      				feeds: [
      					{
      						title: "La Stampa",
      						url: "https://www.lastampa.it/rss.xml"
      					}
      				],
      				showSourceTitle: true,
      				showPublishDate: true
      			}
      		},
      	]
      
      };
      
      /*************** DO NOT EDIT THE LINE BELOW ***************/
      if (typeof module !== "undefined") {module.exports = config;}
      
      

      My Mirror https://forum.magicmirror.builders/topic/17262/the-raspimirror-was-born/7

      ? 1 Reply Last reply Reply Quote 0
      • ? Offline
        A Former User @Egnos
        last edited by A Former User

        @egnos

        I installed AssistantMK2 and Hotword successfully but the only way to wake up the assistant is to say “snowboy”. The hot word “smartmirror” and “jarvis” do not work. Can you help me? (my config.js below…)

        Adjust sensitivity.

        When I ask for a song on youtube I can not stop the song anymore. The assistant does not listen to me. To talk to the assistant I have to wait for the end of the song. How do I solve?

        set pauseOnYoutube:false. You can activate hotword during videoplaying and it will stop the video. Anyway, there is a risk that your video sounds could also activate hotword.

        When the assistant begins to speak, he cuts the first words, is it possible to solve?

        I think you are using HDMI as output. HDMI could have that symptom. Use other output.

        The videos on youtube are reproduced in full screen. Is it possible to reproduce them in a small box (example: bottom right …)?

        Redefine CSS selector #ASSISTANT_YOUTUBE in css/custom.css.

        E R 2 Replies Last reply Reply Quote 0
        • E Offline
          Egnos @Guest
          last edited by Egnos

          @sean said in MMM-AssistantMk2:

          Adjust sensitivity.

          The sensitivity of the microphone?
          If yes, how do you do it?

          @sean said in MMM-AssistantMk2:

          Redefine CSS selector #ASSISTANT_YOUTUBE in css/custom.css.

          Where should I make this modify?

          Thanks a lot!

          My Mirror https://forum.magicmirror.builders/topic/17262/the-raspimirror-was-born/7

          ? 1 Reply Last reply Reply Quote 0
          • ? Offline
            A Former User @Egnos
            last edited by

            @egnos

            {
                hotwords: "smartmirror", 
                file: "resources/models/smart_mirror.umdl",
                sensitivity: '0.5', // < - SENSITIVITY
              },
            

            Where should I make this modify?

            css/custom.css

            1 Reply Last reply Reply Quote 1
            • T Offline
              teitlebot @jomwells
              last edited by

              @jomwells @Sean
              I seem to have always had this problem where after a reboot I sometimes need to manually change the hardware number of my usb mic. I saw @jomwells wrote a fix by changing the .asoundrc file but for some reason my system always changes the asoundrc back after any changes I make.
              I wonder if you have any ideas of a fix for me?

              ? 1 Reply Last reply Reply Quote 0
              • ? Offline
                A Former User @teitlebot
                last edited by

                @teitlebot
                As far as I know, there be alias for device instead cardno. But not sure. I’m not familiar with these things.

                1 Reply Last reply Reply Quote 0
                • E Offline
                  Egnos
                  last edited by

                  Sorry @Sean I’m new in the MagicMirror environment and I do not know all the components.
                  Where can I find information on what is needed and how to customize the “custom.css” file?
                  What do you mean:

                  Redefine CSS selector #ASSISTANT_YOUTUBE in css/custom.css.

                  MagicMirror use the “custom.css” or “main.css”?

                  Thanks

                  My Mirror https://forum.magicmirror.builders/topic/17262/the-raspimirror-was-born/7

                  bheplerB ? 2 Replies Last reply Reply Quote 0
                  • bheplerB Offline
                    bhepler Module Developer @Egnos
                    last edited by bhepler

                    @egnos It uses both. Changes you make to custom.css will 1) be included in the mirror’s display and 2) persist if you update when new mirror code is released.

                    1 Reply Last reply Reply Quote 0
                    • ? Offline
                      A Former User @Egnos
                      last edited by

                      @egnos
                      There are 3 endpoints of CSS applied.

                      • CSS of module itself(modules/SOMEMODULE/SOMEMODULE.css) : It is predefined CSS for module by it’s developer.
                      • main magicmirror css (css/main.css) : This is common CSS for Mirror itself and basic default module CSS.
                      • custom css (css/custom.css) : When you need to modify some CSS rules over SOMEMODULE.css and main.css, You can redefine or override that CSS rules here.

                      By example;
                      #ASSISTANT_YOUTUBE is defined in modules/MMM-AssistantMk2/MMM-AssistantMk2.js like this;

                      #ASSISTANT_YOUTUBE {
                        width:100%;
                        height:100%;
                        border:none;
                        display:none;
                        position:fixed;
                        top:0;
                        left:0;
                        background-color:rgba(0,0,0,0.5);
                        z-index:99999;
                      }
                      

                      When you want to modify some CSS rules - smaller size -, you can override those rules in your css/custom.css instead modify MMM-AssisntantMk2.js directly.

                      #ASSISTANT_YOUTUBE {
                        width: 50%;
                        height:50%;
                        top: 25%;
                        left: 25%;
                      }
                      
                      1 Reply Last reply Reply Quote 1
                      • ? Offline
                        A Former User
                        last edited by

                        ADDED
                        Step-by-step guide about custom gaction to make a timer feature on wiki page.
                        https://github.com/eouia/MMM-AssistantMk2/wiki/Tip%3AMaking-Timer-with-gAction

                        B 1 Reply Last reply Reply Quote 0
                        • D Offline
                          Davido
                          last edited by

                          @Sean : First of all, great Work from your side, my Assistant is working, but I have a question: Is it possible, that the answer box from google could stay a little bit longer onscreen? I also tried your custom.css customization, but it doesn’t work, changing it in MMM-AssistantMk2.css was successful, any suggestions?

                          @Lowis : you wrote that your Radio is running, i was also successful, but are you also able to stop it with the voice command? My Mic reacts on saying the Hotword, but then nothing happens. Only a reboot stops the Radio

                          ejay-ibmE L 2 Replies Last reply Reply Quote 0
                          • ejay-ibmE Offline
                            ejay-ibm Project Sponsor Module Developer @Davido
                            last edited by

                            @davido I think the option you are looking for regarding answer of assistant duration on screen is :
                            “screenDuration”: 2000 // here for 2 seconds

                            hope this helps

                            Ejay

                            1 Reply Last reply Reply Quote 0
                            • B Offline
                              bachoo786 @Guest
                              last edited by

                              @sean hello mate

                              i want to install google assistant on my rpi 3b+. i have connected a bluetooth speaker and was wondering if it would work? i have tried in the past with my rpi2b but couldnt just install assistant.

                              also is there a ste[ by step guide on how to install assistant?

                              many thanks god bless.

                              ? 1 Reply Last reply Reply Quote 0
                              • ? Offline
                                A Former User @bachoo786
                                last edited by

                                @bachoo786 bt speaker will work. Personally I recommend.
                                And for instructions, read the github documents. And leave issues what trouble tou have. I’ll support.

                                B 1 Reply Last reply Reply Quote 0
                                • L Offline
                                  Lowis @Davido
                                  last edited by Lowis

                                  @davido could be that the radio is too loud . my running at 50% volume and it works.
                                  Hotword is “webradio” for start and stop … next hotword is “next station”

                                  At the moment i have problems with the sound config. Mic is USB MIC and Speaker HDMI from my monitor.
                                  Assistant voice is distorted but radio is clean

                                  Update: i deleted all ALSA settings in /etc/asound.conf and ~/.asoundrc and Voice works perfekt.
                                  in raspi-config i do this setting > Force HDMI

                                  1 Reply Last reply Reply Quote 0
                                  • D Offline
                                    Davido
                                    last edited by

                                    @ejay-ibm :
                                    i will try your setting, thx for your answer

                                    @Lowis :
                                    i tried it with 30% and the same result, also with the mic in front of my mouth, no action to stop … the mic onscreen reacts to my voice, but the input field leaves blank, and there is also no timeout for another input

                                    1 Reply Last reply Reply Quote 0
                                    • B Offline
                                      bachoo786 @Guest
                                      last edited by

                                      @Sean I have installed assistantmk2 correctly and have also installed hotword. However I get a blank screen but when I say ok google everything works fine.

                                      I have already been through the “electron-rebuild” step, this is what I did:

                                      pi@raspberrypi:~/MagicMirror/modules/MMM-AssistantMk2 $ npm install --save-dev electron-rebuild
                                      + electron-rebuild@1.8.4
                                      updated 1 package and audited 617 packages in 12.623s
                                      found 0 vulnerabilities
                                      
                                      pi@raspberrypi:~/MagicMirror/modules/MMM-AssistantMk2 $ ./node_modules/.bin/electron-rebuild
                                      ✔ Rebuild Complete
                                      

                                      but still no joy.

                                      and this is what I have in my config.js

                                      {
                                          module: "MMM-AssistantMk2",
                                          position: "top_right",
                                          config: {
                                            record: {
                                              recordProgram : "arecord",
                                              device        : "plughw:1",
                                            },
                                      
                                            notifications: {
                                              ASSISTANT_ACTIVATED: "HOTWORD_PAUSE",
                                              ASSISTANT_DEACTIVATED: "HOTWORD_RESUME",
                                            },
                                          }
                                        },
                                        {
                                          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
                                                }
                                              }
                                            },
                                          },
                                        },
                                      

                                      what I did notice that if I was to remove the MMM-Hotword from my config i.e. the last part of the code i.e.

                                      {
                                          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
                                                }
                                              }
                                            },
                                          },
                                        },
                                      

                                      the mirror starts working fine.

                                      Also in the hotword git I have followed all the possible solutions and also the main one which is :

                                      cd ~/MagicMirror/modules/MMM-Hotword/node_modules/snowboy
                                      nano package.json ## Or open the file with any TEXT editor
                                      Then, find this and replace From

                                      “node-pre-gyp”: “^0.6.30”
                                      To

                                      “node-pre-gyp”: “^0.12.0”
                                      Then retry npm install again in the module directory again.

                                      I have no joy buddy. Please help me

                                      1 Reply Last reply Reply Quote 0
                                      • B Offline
                                        bachoo786
                                        last edited by

                                        Hi @Sean

                                        So I managed to get it working and everything is fine. However I will be grateful if you could please help me with the following queries:

                                        1). When i say jarvis or smart mirror, the assistantmk2 module takes 1 to 2 seconds to respond i.e. the ding bell I mean after which I can ask any question. How can I remove this lag and make it instant? I have seen other people dont have this issue.

                                        2). How do I get the assistantmk2 to play youtube videos on my mirror by asking it to play something from youtube?

                                        Thanks.

                                        This is my config:

                                        {
                                            module: "MMM-AssistantMk2",
                                            position: "top_right",
                                            config: {
                                              deviceLocation: {
                                                                coordinates: { // set the latitude and longitude of the device to get localized information like weather or time. (ref. mygeoposition.com)
                                                                latitude: 51.597442, // -90.0 - +90.0
                                                                longitude: -0.338839, // -180.0 - +180.0
                                                  }
                                                },
                                              record: {
                                                recordProgram : "arecord",
                                                device        : "default",
                                              },
                                              play: { // Full values are in `FOR EXPERTS` section.
                                                      playProgram: "mpg321", // recommended.
                                              },
                                              notifications: {
                                                ASSISTANT_ACTIVATED: "HOTWORD_PAUSE",
                                                ASSISTANT_DEACTIVATED: "HOTWORD_RESUME",
                                              },
                                            }
                                          },
                                          {
                                            module: "MMM-Hotword",
                                            config: {
                                              record: {
                                                recordProgram : "arecord",
                                                device        : "default",
                                              },
                                              autostart:true,
                                              onDetected: {
                                                notification: function (payload) {
                                                  return "ASSISTANT_ACTIVATE"
                                                },
                                                payload: function (payload){
                                                  return {
                                                    profile: payload.hotword
                                                  }
                                                }
                                              },
                                            },
                                          },
                                        
                                        D 1 Reply Last reply Reply Quote 0
                                        • D Offline
                                          Davido @bachoo786
                                          last edited by Davido

                                          @bachoo786

                                          to 1) which Hardware are you using?
                                          to 2) i say the Hotword and then “play on youtube …” and it is working

                                          B 1 Reply Last reply Reply Quote 0
                                          • B Offline
                                            bachoo786 @Davido
                                            last edited by

                                            @Davido I am using raspberry pi 3b+

                                            D 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 21
                                            • 22
                                            • 1 / 22
                                            • 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