Read the statement by Michael Teeuw here.
Hello-Lucy
-
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 -
@anthony said in Hello-Lucy:
the mic icon started flashing and
i said some commands and Lucy understand. But after a few seconds no more listeningEverything you have described seems correct. And you had Lucy running according to your quote above. Please do as @sdetweil suggests and check for errors
-
@Mykle1
I made some abdjustments yesterday mostly at the order of the modules (not sure if needed) and disabled by comenting all of those I don’t have istalled in my MM. Seemed to work better with only some problem with showing pages. All modules where showing and hidding perfectly. Only it had a hard time with pages. But today nothing again. I say my keyword mut the min icon doesn’t start flashing. And I don’t get any error when I start MM in dev mode. I guess I must consider trying another mic since the current one is not a good one. -
Are you using a Pi? The Pi may struggle with this because of 1) The use of a usb microphone and 2) The amount and type of modules you are using
-
@mykle1
Yes, I am using a rpi 3b+. I know that I must be patient during commands because of the usb mic but the problem is that I have to say my keyword more than 10 times to start flashing the mic icon. After that all modules show/hide quite well and quick. Basically I did a fresh install of raspbian and MM on new 32GB SD card, hoping that it will work better but I have the same problem. It just doesn’t hear the keyword. Also I would like to ask you if it is possible the Say, ‘Hello Lucy’ message. -
check the logs… they should give you an idea what happened. What I was confronted with was a) missing variables (LD_LIBRARY_PATH= and PKG_CONFIG_PATH=). They should be added by the installation script (assuming you chose the automatic install.
After solving this issue I had b) a DEVICE BUSY due to the fact that pulseaudio was already ‘sitting’ on my microphone. -
@anthony said in Hello-Lucy:
I have to say my keyword more than 10 times to start flashing the mic icon.
I would guess that is due to the Pi’s performance and the latency introduced by the use of your USB mic. Also, a vocal accent while speaking English commands to Lucy seem to be a problem. I’ve a friend in Norway who speaks English very well but Lucy has a problem with his Norwegian accent.
With that said, I can’t help you with performance issues other than to suggest limiting or eliminating those modules that have high resource demands.
Also I would like to ask you if it is possible the Say, ‘Hello Lucy’ message.
I don’t understand the question, I’m sorry.
-
@mykle1 said in Hello-Lucy:
I don’t understand the question, I’m sorry.
Sorry I didn’t write it right. I would like to ask you if it is possible to change the Say, ‘Hello Lucy’ message to something mine. As for the mic’s latency I will buy a better one and see the difference. Thank you for your tips and “Hello Lucy” :winking_face: