Read the statement by Michael Teeuw here.
Hello-Lucy
-
I have some problems with Hello Lucy. Firstly sometimes when the MM reloads after Say"Hello, Lucy" I get an ERROR in mic’s icon place. Secondly when I don’t get the ERROR and I say : “MAGIC MIRROR” (my keyword) tha mic icon start flashing (not saying VOICE) but after that anything I say nothing is shown. And i don’t get any errors in
pm2 logs
or when I start MM withnpm start dev
. Any suggestions? -
If you reload MM while MM is running you will get “an ERROR in mic’s icon place.” If you quit MM and relaunch MM you will not get this error.
When the mic starts flashing after saying your keyword “Magic MIrror” then Lucy is expecting a command. Example: Show Weather, Show Clock, Show Page One, etc.
You have to follow the instructions in the README file precisely if you are adding modules of your own. There is a list of modules that works be default in the README, as well. Those will all work without any modification by you. Any pages you create will have to be done as described in the README.
If you have trouble with a particular module I will help you. What commands are you saying to Lucy that do not work?
-
@mykle1
I didn’t know that I must quit and restart MM for the mic to work properly. So the first problem solved. With the second one I know after the mic start flashing a command should follow but whatever I say lucy do nothing. For example after I say “Magic Mirror” and the mic icon start flashing I say “Show Clock” and nothing happens. I tried all default modules and nothing. I have added some modules to work with Lucy and did it exactly as you mentioned in the README. Also I have set in my config to start hidden and it does. It just don’t show anything. And sometimes when I say the wake word it does not even start flashing. -
Hi @Mykle1 I don’t want to pollute your thread if my post isn’t appropriate here i’ll create a new one.
I love the animated avatar, could you point me where did you get it ?
I’m looking for 2 of the same kind. One like you have, the other with moving lips so it would look like it talk when the assistant reply to you with her voice. I have in mind how to achieve this, but I’m missing the gif sources .
Thank youEjay
-
@ejay-ibm
Check this out: Original animated gif can be gotten here. It’s 60+ MB. https://github.com/HackerHouseYT/AI-Smart-Mirror/blob/master/magic_mirror/aiclient/face.gif.
It is copy pasted from Mykles1’s README file. I hope this is what you are looking for. -
@anthony Thanks , I’m looking now for the same with animated lips
https://giphy.com/gifs/geocities-sl5XI0eWn5IjK
Something like this with more style. ^^I’ll see if I can work with the 60mb file and make it move the lips .
thank you
-
-
Have you replaced the correct files as per the readme? There are 2 folders in the Hello-Lucy repo. You have to take the files from them and put them where they belong according to the README. Not all default MM modules work automatically.
-
I ant to believe that everything have been done correctly:
- Add in my modules.js folder the lines for voice control after the return wrapper.
- Add in the new voice_helper.js the lines for the new module (at the end of the last you have added) And change the names accordingly.
- In the new MMM-Voice.js folder a) add the module to the page I want to be shown and b) add the show/commands of the module again at the end of the last you have added. And every name is changed accordingly to the modules I added. The problem is that it doesn’t hear at all. My mic works when I test it. Yesterday in one of my attemps after “Magic Mirror” the mic icon started flashing and
i said some commands and Lucy understand. But after a few seconds no more listening. And from then when I restart MM I get a blach screen (start hidden) and the mic icon with "Say, ‘Hello Lucy’ and whatever I say it stays still.
Here is the MMM-voice.js with the pages of the modules I added:
else if (notification === 'SHOW_PAGE_ONE') { MM.getModules().enumerate((module) => { module.hide(1000); }); this.sendNotification('SHOW_CALENDAR'); this.sendNotification('SHOW_CLOCK'); this.sendNotification('SHOW_COMPLIMENTS'); this.sendNotification('SHOW_COWBOY'); this.sendNotification('SHOW_EARTH'); this.sendNotification('SHOW_NEWS'); this.sendNotification('SHOW_STATS'); this.sendNotification('SHOW_VOICE'); this.sendNotification('SHOW_REMOTECONTROL'); } else if (notification === 'HIDE_PAGE_ONE') { MM.getModules().enumerate((module) => { module.hide(1000); }); /////////////////////////////////////////////////////////////////////////////////////////////// } else if (notification === 'SHOW_PAGE_TWO') { MM.getModules().enumerate((module) => { module.hide(1000); }); this.sendNotification('SHOW_MOVIES'); this.sendNotification('SHOW_HOROSCOPE'); this.sendNotification('SHOW_HISTORY'); this.sendNotification('SHOW_RECIPE'); this.sendNotification('SHOW_MOON'); this.sendNotification('SHOW_COCKTAILS'); this.sendNotification('SHOW_VOICE'); this.sendNotification('SHOW_REMOTECONTROL'); } else if (notification === 'HIDE_PAGE_TWO') { MM.getModules().enumerate((module) => { module.hide(1000); }); //////////////////////////////////////////////////////////////////////////////////////////////// } else if (notification === 'SHOW_PAGE_THREE') { MM.getModules().enumerate((module) => { module.hide(1000); }); this.sendNotification('SHOW_RADIO'); this.sendNotification('SHOW_PHOTOS'); this.sendNotification('SHOW_VOICE'); this.sendNotification('SHOW_REMOTECONTROL'); } else if (notification === 'HIDE_PAGE_THREE') { MM.getModules().enumerate((module) => { module.hide(1000); }); /////////////////////////////////////////////////////////////////////////////////////////////// } else if (notification === 'SHOW_PAGE_FOUR') { MM.getModules().enumerate((module) => { module.hide(1000); }); this.sendNotification('SHOW_DARWIN'); this.sendNotification('SHOW_FLIPPER'); this.sendNotification('SHOW_PICTURES'); this.sendNotification('SHOW_BACKGROUND'); this.sendNotification('SHOW_PILOTS'); this.sendNotification('SHOW_TIDES'); this.sendNotification('SHOW_EYECANDY'); this.sendNotification('SHOW_LICE'); this.sendNotification('SHOW_LOTTERY'); this.sendNotification('SHOW_FAX'); this.sendNotification('SHOW_NASA'); this.sendNotification('SHOW_ALARM'); this.sendNotification('SHOW_WEATHER'); this.sendNotification('SHOW_VOICE'); this.sendNotification('SHOW_REMOTECONTROL'); } else if (notification === 'HIDE_PAGE_FOUR') { MM.getModules().enumerate((module) => { module.hide(1000); });
And here is the same folder with the show/hide commands of the new modules:
// MMM-voice sends notification to MMM-RadioDe to HIDE else if (notification === 'HIDE_RADIO') { this.sendNotification('HIDE_RADIO'); } // MMM-voice sends notification to MMM-RadioDe to SHOW else if (notification === 'SHOW_RADIO') { this.sendNotification('SHOW_RADIO'); } // MMM-voice sends notification to MMM-MovieInfo to HIDE else if (notification === 'HIDE_MOVIES') { this.sendNotification('HIDE_MOVIES'); } // MMM-voice sends notification to MMM-MovieInfo to SHOW else if (notification === 'SHOW_MOVIES') { this.sendNotification('SHOW_MOVIES'); } // MMM-voice sends notification to MMM-horoscope to HIDE else if (notification === 'HIDE_HOROSCOPE') { this.sendNotification('HIDE_HOROSCOPE'); } // MMM-voice sends notification to MMM-horoscope to SHOW else if (notification === 'SHOW_HOROSCOPE') { this.sendNotification('SHOW_HOROSCOPE'); } // MMM-voice sends notification to MMM-History to HIDE else if (notification === 'HIDE_HISTORY') { this.sendNotification('HIDE_HISTORY'); } // MMM-voice sends notification to MMM-History to SHOW else if (notification === 'SHOW_HISTORY') { this.sendNotification('SHOW_HISTORY'); } // MMM-voice sends notification to MMM-ImageSlideShow to HIDE else if (notification === 'HIDE_PHOTOS') { this.sendNotification('HIDE_PHOTOS'); } // MMM-voice sends notification to MMM-ImageSlideShow to SHOW else if (notification === 'SHOW_PHOTOS') { this.sendNotification('SHOW_PHOTOS'); } // MMM-voice sends notification to MMM-RemoteControl to HIDE else if (notification === 'HIDE_REMOTECONTROL') { this.sendNotification('HIDE_REMOTECONTROL'); } // MMM-voice sends notification to MMM-Remote-Control to SHOW else if (notification === 'SHOW_REMOTECONTROL') { this.sendNotification('SHOW_REMOTECONTROL'); } // MMM-voice sends notification to mmm-food2fork-recipes to HIDE else if (notification === 'HIDE_RECIPE') { this.sendNotification('HIDE_RECIPE'); } // MMM-voice sends notification to mmm-food2fork-recipes to SHOW else if (notification === 'SHOW_RECIPE') { this.sendNotification('SHOW_RECIPE'); }
And here is the lines I added affter the return wrapper of each module.js folder for voice control:
return wrapper; }, notificationReceived: function(notification, payload) { if (notification === 'HIDE_HOROSCOPE') { this.hide(1000); this.updateDom(300); } else if (notification === 'SHOW_HOROSCOPE') { this.show(1000); this.updateDom(300); } },
So take a look when you have the time and I hope you will spot if I have done something wrong and what it is. Thank you very much.
-
on the mirror screen, press ctrl-shift-i (or start the mirror in developer mode with npm start dev)
select the console tab of the dev window, and scroll back up to find any errors (red text)these will find syntax errors and other problems
the module.js side displays in the dev console
the node_helper.js side displays info in the terminal window