Build an open future with us.

Invest in Mycroft and become a community partner.

Disappointing start: a lot of skills are not properly working


#1

Hello,

I have installed Mycroft from github on my Ubuntu 16.04 machine, following the instructions under “getting started”.

Then I tried some things (typed in, so this is not about hotword detection or speech-to-text), and it was mostly disappointing.
Even some things that were supposed to work did not.
Is the documentation outdated, are those bugs in the skills, or do I need to change something about my configuration?

What do I need to do so that it works?
I am willing to file issues, extend regular expressions, write code, create pull requests – whatever it takes!

Q: Hello
A: I’m not sure I understood you.
Comment: OK, not such a good start :wink:

Q: Help
A: I don’t understand, but I’m learning new things everyday.
C: Would expect some instructions/examples on what I could say.

Q: list skills
A: I’m not sure I understood you.
C: I would expect it would tell me which skills are installed (or how many)

Q: What’s the weather?
A: You might have to say that a different way.
C: This one is actually documented, and I am encouraged by the “Home” website to ask it. Why does it not work?

Q: How is the weather?
A: I don’t know what that means.

Q: Hey Mycroft, what’s the weather?
A: verb, face and withstand with courage,
C: Something is broken here …

Q: my mycroft, what’s up?
A: Hello, human.
C: I did a typo here, but at least it works :wink:

Q: hey mycroft, what’s up?
A: Hello, human.
C: Now without the typo.

Q: Hey Mycroft, how long is a marathon?
A: (42.15 to 42.24) km (kilometers), (according to IAAF standard)
C: OK, this works. However “km kilometers” sounds weird, and IAAF is pronounced incorrectly.

Q: tell me about sandwiches
A: I’m checking Wikipedia for sandwiches
A sandwich is a food typically consisting of vegetables …
C: Cool, that works!

Q: What is the value of pi?
A: Sorry, I didn’t catch that.

Q: How long is an ironman?
A: I don’t know what that means.
C: Tried a transfer from marathon …

Q: What is an ironman?
A: I don’t understand, but I’m learning new things everyday.

Q: tell me about Ironman
A: I’m checking Wikipedia for ironman
would you like to hear about Brett Favre, Travis Fulton, Sardar Vallabhbhai Patel, Cal Ripken, Jr. or Ivan Stewart
C: OK, it recognizes the disambiguation page on WP, but only takes the first section into account.

Q: tell me about ironman triathlon
A: Let me look up ironman triathlon
An Ironman Triathlon is one of a series of long-distance triathlon races organized by
the World Triathlon Corporation , consisting of a 2.4-mile swim, a 112-mile bicycle
ride and a marathon 26.22-mile run, raced in that order and without a break.
C: OK, now that works.

Q: How long is an ironman triathlon?
A: You might have to say that a different way.
C: Well, would be nice to somehow get it. Maybe WikiData queries could be used for such (and many other) queries?

Q: How far is Berlin from Hamburg?
A: I’m not sure I understood you.

Q: Which skills do you have?
A: I’m sorry, I don’t understand.

Q: What else can I ask you?
A: I’m not sure I understood you.

Q: help me, Mycroft
A: I don’t understand, but I’m learning new things everyday.

Q: install basic help skill
A: I didn’t find any skill name basic help skill.
C: Trying skills listed on https://mycroft.ai/documentation/skills/#community-developed-skills

Q: Tell me a joke
A: There are 2 types of people: those who can interpret incomplete data sets…
Q: Tell me another joke
A: How come there is not obfuscated Perl contest? Because everyone would win.
Q: another one
A: I’m sorry, I don’t understand.
C: The joke skill taken the context (last request) into account would be great.

Q: install better jokes
A: I didn’t find any skill name better jokes.

Q: what time is it?
A: It’s nine twenty three
C: Does not take local time into account, it was 16:23 in Berlin at that time, and the information is available from the system.

Q: open firefox
A: I’m sorry, I don’t understand.
C: This is a documented core skill, why doesn’t it work?

Q: what is frankenstein
A: I’m sorry, I don’t understand.
C: Again, a documented core skill …


#2

Edit: Even If the some of the errors are fixed by switching to the master branch…

This kind of QA feedback is priceless.

There should be a formal or automated way to submit the errors and have them addressed by category by Mycroft or the community.


A Voice UI for Mycroft that would inform users on how to use Mycroft and help users to submit errors and suggest improvements for…

Persona - Casual chit chat with Mycroft

Skills - How to use skills and recommend skills Skill-Recommendation-Skill

Help - FAQ/QA for new users


Fact retrieval and parsing of API results seems to be an ongoing battle.


Human rescursive self improvement :grinning:


#3

Thanks @Zeno_Gantner for that feedback. We’ve had several similar reports of this nature over the last couple of days from people who have fresh Linux installs using the git clone method. The root cause of the issue is that the mycroft-core default branch is dev rather than master. We’re doing a lot of work in dev at the moment to move from Python 2.7 to Python 3.4+, and part of that work changes the way msm and Skills installation works. Which is why it isn’t working.

If you do git pull origin master from within your mycroft-core directory then run ./update-dev.sh it should work for you.

Best, Kathy


#4

I’d suggest you add the command to switch to the master branch in your installation instructions, I’ve just found out myself (I was on the dev branch before) which is simply git clone -b (branch) (address)


#5

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.


#6

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?


#7

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


#8

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?


#9
> 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/

#10

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.


#11

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


#12

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.


#13

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.


#14

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.


#15

Looks a bit like it’s not paired.

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


#16

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.


#17

You’re paired :+1: Yay!


#18

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.


#19

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


#20

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?