Disappointing start: a lot of skills are not properly working

Good call @Old-Lodge-Skins - we accept Issues and PRs on docs-rewrite - if you wanted to write an Issue for this then I won’t forget it.

Hello, thank you for the responses.
I am now running Mycroft from the master branch.

I said “Hey Mycroft, what’s the weather?”

19:32:00.239 - __main__:handle_wakeword:56 - INFO - Wakeword Detected: hey mycroft
19:32:02.014 - __main__:handle_utterance:61 - INFO - Utterance: [u'the weather']
I'm not sure I understood you.

On startup, I got plenty of warnings:

19:31:43.987 - mycroft.skills.core:load_skill:106 - INFO - ATTEMPTING TO LOAD SKILL: fallback-unknown.mycroftai with ID 4592314002753225598
/opt/mycroft/skills/fallback-unknown.mycroftai/__init__.py:15: RuntimeWarning: Parent module 'fallback-unknown' not found while handling absolute import
from os.path import join
/opt/mycroft/skills/fallback-unknown.mycroftai/__init__.py:16: RuntimeWarning: Parent module 'fallback-unknown' not found while handling absolute import
from mycroft.skills.core import FallbackSkill
/opt/mycroft/skills/fallback-unknown.mycroftai/__init__.py:17: RuntimeWarning: Parent module 'fallback-unknown' not found while handling absolute import
from mycroft.util.parse import normalize
19:31:43.995 - mycroft.skills.core:load_skill:124 - INFO - Loaded fallback-unknown.mycroftai
19:31:43.997 - mycroft.skills.core:load_skill:106 - INFO - ATTEMPTING TO LOAD SKILL: mycroft-naptime.mycroftai with ID -6232656834462942501
/opt/mycroft/skills/mycroft-naptime.mycroftai/__init__.py:15: RuntimeWarning: Parent module 'mycroft-naptime' not found while handling absolute import
from adapt.intent import IntentBuilder
/opt/mycroft/skills/mycroft-naptime.mycroftai/__init__.py:17: RuntimeWarning: Parent module 'mycroft-naptime' not found while handling absolute import
from mycroft import MycroftSkill, intent_handler
/opt/mycroft/skills/mycroft-naptime.mycroftai/__init__.py:18: RuntimeWarning: Parent module 'mycroft-naptime' not found while handling absolute import
from mycroft.messagebus.message import Message
/opt/mycroft/skills/mycroft-naptime.mycroftai/__init__.py:19: RuntimeWarning: Parent module 'mycroft-naptime' not found while handling absolute import
from mycroft.audio import wait_while_speaking
/opt/mycroft/skills/mycroft-naptime.mycroftai/__init__.py:21: RuntimeWarning: Parent module 'mycroft-naptime' not found while handling absolute import
import time
19:31:44.002 - mycroft.skills.core:load_skill:124 - INFO - Loaded mycroft-naptime.mycroftai
19:31:44.004 - mycroft.skills.core:load_skill:106 - INFO - ATTEMPTING TO LOAD SKILL: mycroft-timer.mycroftai with ID 4622552063409481092
/opt/mycroft/skills/mycroft-timer.mycroftai/__init__.py:15: RuntimeWarning: Parent module 'mycroft-timer' not found while handling absolute import
import time
/opt/mycroft/skills/mycroft-timer.mycroftai/__init__.py:17: RuntimeWarning: Parent module 'mycroft-timer' not found while handling absolute import
from adapt.intent import IntentBuilder
/opt/mycroft/skills/mycroft-timer.mycroftai/__init__.py:18: RuntimeWarning: Parent module 'mycroft-timer' not found while handling absolute import
from mycroft.skills.core import (
/opt/mycroft/skills/mycroft-timer.mycroftai/__init__.py:22: RuntimeWarning: Parent module 'mycroft-timer' not found while handling absolute import
from mycroft.util.log import LOG
/opt/mycroft/skills/mycroft-timer.mycroftai/__init__.py:23: RuntimeWarning: Parent module 'mycroft-timer' not found while handling absolute import

19:31:44.023 - mycroft.skills.core:load_skill:106 - INFO - ATTEMPTING TO LOAD SKILL: mycroft-personal.mycroftai with ID -6638984081336391494
/opt/mycroft/skills/mycroft-personal.mycroftai/__init__.py:15: RuntimeWarning: Parent module 'mycroft-personal' not found while handling absolute import
from os.path import dirname
/opt/mycroft/skills/mycroft-personal.mycroftai/__init__.py:17: RuntimeWarning: Parent module 'mycroft-personal' not found while handling absolute import
from adapt.intent import IntentBuilder
/opt/mycroft/skills/mycroft-personal.mycroftai/__init__.py:18: RuntimeWarning: Parent module 'mycroft-personal' not found while handling absolute import
from mycroft.skills.core import MycroftSkill
/opt/mycroft/skills/mycroft-personal.mycroftai/__init__.py:19: RuntimeWarning: Parent module 'mycroft-personal' not found while handling absolute import
from mycroft.util.log import getLogger
19:31:44.032 - mycroft.skills.core:load_skill:124 - INFO - Loaded mycroft-personal.mycroftai
19:31:44.033 - mycroft.skills.core:load_skill:106 - INFO - ATTEMPTING TO LOAD SKILL: mycroft-fallback-duck-duck-go.mycroftai with ID 1409275767528477626
/opt/mycroft/skills/mycroft-fallback-duck-duck-go.mycroftai/__init__.py:14: RuntimeWarning: Parent module 'mycroft-fallback-duck-duck-go' not found while handling absolute import
import re
/opt/mycroft/skills/mycroft-fallback-duck-duck-go.mycroftai/__init__.py:15: RuntimeWarning: Parent module 'mycroft-fallback-duck-duck-go' not found while handling absolute import
import sys
/opt/mycroft/skills/mycroft-fallback-duck-duck-go.mycroftai/__init__.py:17: RuntimeWarning: Parent module 'mycroft-fallback-duck-duck-go' not found while handling absolute import
from mycroft.skills.core import FallbackSkill
/opt/mycroft/skills/mycroft-fallback-duck-duck-go.mycroftai/__init__.py:18: RuntimeWarning: Parent module 'mycroft-fallback-duck-duck-go' not found while handling absolute import
from mycroft.util import LOG
/opt/mycroft/skills/mycroft-fallback-duck-duck-go.mycroftai/__init__.py:23: RuntimeWarning: Parent module 'mycroft-fallback-duck-duck-go' not found while handling absolute import
import duckduckgo as ddg
19:31:44.036 - mycroft.skills.core:load_skill:143 - ERROR - Failed to load skill: mycroft-fallback-duck-duck-go.mycroftai
Traceback (most recent call last):
File "/home/zgantner/src/mycroft-core/mycroft/skills/core.py", line 111, in load_skill
skill_descriptor["name"] + MainModule, *skill_descriptor["info"])
File "/opt/mycroft/skills/mycroft-fallback-duck-duck-go.mycroftai/__init__.py", line 23, in <module>

… etc.

Those are the steps that I did:

git clone https://github.com/MycroftAI/mycroft-core.git
cd mycroft-core/
git checkout master
bash dev_setup.sh
./start-mycroft.sh debug

Again, maybe I missed an important step?

No I don’t think you’ve missed a step - @forslund can you see anything amiss here? Is this a Python 3 glitch?

As that’s on master it shouldn’t be related to python3.

It looks a bit like the python environment is not quite alright.

I can’t see a missed step. can you check git status to see that the directory is clean?

> git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

> python --version
Python 2.7.12

> python3 --version
Python 3.5.2

> printenv | grep PY
PYENV_VIRTUALENV_INIT=1
PYENV_SHELL=bash
PYTHONPATH=./plugins/

How do I find out if my Python environment is “not quite alright”?

All other Python software (2 and 3) runs okay on my machine.

To be able to install different versions of modules than are found on the system mycroft creates a virtualenvironment when dev_setup.sh is run (residing in ~/.virtualenvs/mycroft).

The virtualenv is then invoked by the start_mycroft-script

If I were you I’d try to remove ~/.virtualenvs/mycroft and then run dev_setup.sh again to have it recreated just to be sure.

/Åke

1 Like

Deleted the virtual env and rerun the setup script.

I am currently on the master branch, commit e8907fc38489c50a3bfc63565d8852e61f154b98 (May 24) – that is version version 18.2.7.

No error messages any more. Thank you for all the hints!

Still not working:

  • “Hello”
  • “Help”

Q: List installed skills.
A: Huh, I don’t understand.

Q: Where am I?
A: I’m in Lawrence Kansas United States
Q: Where are you?
A: My settings tell me I’m at Lawrence Kansas United States
Q: Set location to Berlin, Germany.
A: You might have to say that a different way.
Q: How can I set the location?
A: Huh, I don’t understand.

Q: How is the weather in Berlin?
A: (nothing)
C: Why?

Q: How will the weather be tomorrow?
A: Tuesday the high will be 32 and the low 23, with clear conditions

Q: How will the weather be in Berlin, Germany tomorrow?
A: (again, nothing)

Q: What’s up?
A: Sorry I didn’t catch that.
Q: Hey Mycroft, what’s up?
A: Hello, human.
C: Why the difference?

Q: What can I do?
A: Sorry, don’t understand.

Q: How long is a marathon?
A: Sorry, I don’t understand.
Q: Hey Mycroft, How long is a marathon?
A: (42.15 to 42.24) km (kilometers), (according to IAAF standard)
C: Why the difference?

Q: What is the value of pi?
A: I don’t know what that means.
Q: Hey Mycroft, what is the value of pi?
A: 3.141592653589793238462643383279502884197169399375105820974…

Q: How far is Berlin from Hamburg?
A: I don’t understand, but I’m learning new things everyday.
Q: Mycroft, how far is Berlin from Hamburg?
A: 157.8 miles
C: Hm, I had set Mycroft to metric units.

Q: Hey Mycroft, how many kilometers is Berlin from Hamburg?
A: 254 km (kilometers)
C: Again – why is there a difference between prepending “Hey Mycroft” and not? Also, why “km (kilometers)”? For spoken text I would just expect “kilometers”.

Q: What time is it?
A: Seven zero fifty two.
C: How can I set my location?

Q: Hey Mycroft, what time is it in Berlin?
A: I could not find the time zone for Berlin ?
Q: Hey Mycroft, what time is it in Berlin
A: fourteen fifty five
C: Aha, does not seem to like the question mark.

Q: What time is it in Germany
A: I could not find the time zone for germany.
Q: What time is it in Berlin Germany
A: I could not find the time zone for berlin germany.
C: In general does not seem to work for countries and states. The following cities did not work: Haifa, Munich, Tel Aviv, Mountain View, Stuttgart

Q: What time is it in Bavaria
A: Currently zero eight zero three
C: Which Bavaria is this?

Q: Hey Mycroft, open firefox
A: Huh, I don’t understand.

Q: Hey Mycroft, what is frankenstein
A: (after a long pause) I don’t understand, but I’m learning new things every day.

There are of course things that can be improved with our skills (Like the datetime skill basically only takes city names when checking time at a location.) but I’m not having as extreme issues as you are seeing (hearing is it may be).

The km issue is a valid point that should be expanded to kilometers. Currently this depends abit on the TTS service you’re using but seems like mimic doesn’t expand it.

For example “what is frankenstein” responds with “Frankenstein is a novel written by English author Mary Shelley that tells the story of Victor Frankenstein”

Are all these text inputs or spoken?

You set your location easiest at home.mycroft.ai. In the drop down menu in the top right selct devices, click on your device and set the location for the device there.

The Miles when asking the distance between berlin to hamburg is due to Wolframalpha defaulting to miles. This can also be improved.

Q: Hey Mycroft, what is frankenstein?
A: (after fairly long delay): Please rephrase your request.

Can I somehow debug what is happening here?
The “log output” does not show anything.

I got some older error message, though:

14:17:24.907 - mycroft.skills.settings:_poll_skill_settings:399 - ERROR - Failed to fetch skill settings: HTTPError('The supplied authentication is invalid',)
Traceback (most recent call last):
File "/home/zgantner/src/mycroft-core/mycroft/skills/settings.py", line 396, in _poll_skill_settings
self.update_remote()
File "/home/zgantner/src/mycroft-core/mycroft/skills/settings.py", line 373, in update_remote
skills_settings = self._request_my_settings(hashed_meta)
File "/home/zgantner/src/mycroft-core/mycroft/skills/settings.py", line 441, in _request_my_settings
settings = self._request_settings()
File "/home/zgantner/src/mycroft-core/mycroft/skills/settings.py", line 457, in _request_settings
"path": self._api_path
File "/home/zgantner/src/mycroft-core/mycroft/api/__init__.py", line 62, in request
return self.send(params)
File "/home/zgantner/src/mycroft-core/mycroft/api/__init__.py", line 119, in send
return self.get_response(response)
File "/home/zgantner/src/mycroft-core/mycroft/api/__init__.py", line 127, in get_response
self.refresh_token()
File "/home/zgantner/src/mycroft-core/mycroft/api/__init__.py", line 74, in refresh_token
"Authorization": "Bearer " + self.identity.refresh
File "/home/zgantner/src/mycroft-core/mycroft/api/__init__.py", line 119, in send
return self.get_response(response)
File "/home/zgantner/src/mycroft-core/mycroft/api/__init__.py", line 129, in get_response
raise HTTPError(data, response=response)
requests.exceptions.HTTPError: The supplied authentication is invalid

Text input. I wanted to keep speech-to-text issues out first.

Cool. This is now set.

Should I ticket this somewhere?

Thank you for all those details! Very much appreciated.

Looks a bit like it’s not paired.

What happens if you enter “pair device” in the cli?

1 Like

pair device

Now I am ready for use. Try asking me things like “hey mycroft, what’s the weather”, “hey mycroft, tell me about abraham lincoln”, or “hey mycroft, play the news”. If you need to stop me talking at any time, just push my button.

1 Like

You’re paired :+1: Yay!

Can you run down those questions again with the device paired? I’m curious as to which one of the questions actually fell through our fallback skills and which were pairing issues.

1 Like

When I run this I get: “Frankenstein is a novel written by English author Mary Shelly that tells the story of Victor Frankenstein”

I can confirm that with speaking the input, I get the same results.
However, why does Mycroft sometimes interpret the keyboard input okay, and sometimes not?
This is kind of inconsistent.
Is keyboard input processed differently?

OK, no I tried all queries with voice input. Here are my experiences:

Still not working:
“Hello”, “Help”, “How can I use you”,
“which skills are installed”, “List installed skills”

Q: Where am I?
A: I’m in Berlin Berlin Germany
C: Maybe do not mention the state name for places in Germany.

Q: Where are you?
A: My settings tell me I’m at Berlin Berlin Germany
C: Sounds a bit weird.

Q: Set location to Berlin, Germany.
A: You might have to say that a different way.
Q (after long pause): How can I set the location?
A: I’m sorry, I don’t understand.

Works:
How is the weather in Berlin?
How will the weather be tomorrow?
How long is a marathon?
What is the value of pi?
How far is Berlin from Hamburg? (except for the miles vs. km issue)
How many kilometers is Berlin from Hamburg? (except for “km kilometers”)
What time is it?
Hey Mycroft, what time is it in Berlin?

Q: How will the weather be in Berlin, Germany tomorrow?
A (after the long pause):
Console says
18:24:47.868 - mycroft-weather_mycroftai:handle_current_weather:152 - INFO - Doing a forecast2018-06-21 00:00:00 2018-06-22 00:00:00
… but Mycroft stays silent.

Q: What’s up?
A: Uttar Pradesh is a state in northern India.
C: I see, you resolve “UP”

Q: What can I do?
A: I don’t know what that means

Q: What time is it in LA?
A: 18:29
C: No it’s not.

Q: What time is it in LA, California?
A: I could not find the time zone for la california

Q: What time is it in Los Angeles?
A: It is 18:30.
C: No it’s not.

Q: What time is it in Boston?
A: It is 18:30.
C: No it’s not.

Q: What time is it in Germany
A: I could not find the time zone for germany.
Q: What time is it in Berlin Germany
A: I could not find the time zone for berlin germany.
C: In general does not seem to work for countries and states. The following cities did not work: Haifa, Munich, Tel Aviv, Mountain View, Stuttgart

Q: What time is it in Bavaria
A: I could not find the time zone for Bavaria

Q: Hey Mycroft, open firefox
A: Sorry, I didn’t catch that.

The STT is quite impressive. But I guess you are still using Google, so this is no surprise :wink:

The necessary pause after saying “Hey Mycroft” is a bit long.
Maybe this can be improved by

  1. Training/setting up skills to still understand transcriptions where the start is missing.
  2. Do not wait with recording until the “ring” has stopped (judging from the recordings I heard during tagging, you seem to be doing this already).
  3. Make wakeword detection react faster.

Hi. I had problems to make skill-desktop-laucher works properly. The issue was due Python missing library gi. I follow the instructions from here: Desktop launcher skill

The GI module is for python2. For python3 you need the GI from PyGobject. For me to get it working I had to;

source /home//mycroft-core/.venv/bin/activate

The uninstall gi, if installed;

pip uninstall gi

And than instal the PyGobject by:

pip install PyGobject

However I was missing some dev bindings, so for it to succeed I needed to install some dependencies by;

sudo apt-get install libgirepository1.0-dev
sudo apt-get install libcairo2-dev

Then the “pip install PyGobject” succeeded. You should then see the;

“/home//mycroft-core/.venv/lib/python3.6/site-packages/gi” folder and the Skill should load.

1 Like

Thanks @Jhonathan_Moran for posting your solution - appreciate it!