Beginner questions

I have just finished installing mycroft on my raspberry pi 4. While I was unable to run the picroft image (it seems not supported on pi 4 yet), I successfully installed mycroft by cloning the core repo and setting stuff up by hand. I have then successfully paired the device, and while running the services in debug mode, I was also able to ask mycroft for basic stuff, e.g. the current time.

So while this basically seems to work, I have some beginner questions I could not figure out:

  1. When doing the manual setup, there was no audio setup as compared to the picroft approach, and when asking for the time, the time was printed only in the CLI, but not spoken via speakers. How do I tell mycroft which devices to use?

  2. After the setup mycroft installed quite a few skills, most of which I uninstalled using the msm, however when starting mycroft later again, it seems to reinstall those. How can I get rid of skills I don’t want?

  3. Following the guide here, I have switched the language to german (“de”), set the TTS to google with language “de-de”, and set STT to use a local deepspeech server (which I have running on port 8080). However, when I start mycroft again, the CLI will print several attempts to install various skills, stating that they are not available in german, but then somehow seems to get stuck. There is no voice recognition, e.g. no reaction on the wake word. What am I missing here?

This is my config:

{
  "skills": {
    "blacklisted_skills": [
      "mycroft-configuration.mycroftai",
      "mycroft-pairing.mycroftai"
    ]
  },
  "stt": {
    "deepspeech_server": {
      "uri": "http://127.0.0.1:8080/stt"
    },
    "module": "deepspeech_server"
  },
  "tts": {
    "module": "google",
    "google": {
      "lang": "de-de"
    }
  },
  "max_allowed_core_version": 20.2,
  "lang": "de"
}

For 3), this is the logs in the CLI:

 13:47:07.287 | INFO     |  1117 | mycroft.skills.skill_loader:load:114 | ATTEMPTING TO LOAD SKILL: fallback-wolfram-alpha.mycroftai
 13:47:07.364 | INFO     |  1117 | mycroft.skills.settings:get_local_settings:78 | /home/pi/.config/mycroft/skills/fallback-wolfram-alpha.mycroftai/settings.json
 13:47:07.393 | INFO     |  1117 | mycroft.skills.skill_loader:_communicate_load_status:280 | Skill fallback-wolfram-alpha.mycroftai loaded successfully
 13:47:07.395 | INFO     |  1117 | mycroft.skills.skill_manager:put:80 | Updating settings meta during runtime...
 13:47:07.398 | INFO     |  1117 | msm.mycroft_skills_manager | invalidating skills cache
 13:47:07.399 | INFO     |  1117 | msm.mycroft_skills_manager | building SkillEntry objects for all skills
 13:47:11.552 | INFO     |  1117 | mycroft.skills.skill_manager:send:64 | New Settings meta to upload.
Removing event mycroft-timer.mycroftai:ShowTimer
Removing event mycroft-timer.mycroftai:ShowTimer
Removing event mycroft-timer.mycroftai:ShowTimer
Removing event mycroft-timer.mycroftai:ShowTimer
Removing event mycroft-timer.mycroftai:ShowTimer
Removing event mycroft-timer.mycroftai:ShowTimer
Removing event mycroft-timer.mycroftai:ShowTimer
Removing event mycroft-timer.mycroftai:ShowTimer
 13:47:20.743 | INFO     |  1117 | mycroft.skills.padatious_service:train:100 | Training... (single_thread=False)
 13:47:21.186 | INFO     |  1117 | mycroft.skills.padatious_service:train:102 | Training complete.
  ^--- NEWEST ---^
History =======================================================================================    Log Output Legend =============================================================== Mic Level ===
                                                                                                   DEBUG output
                                                                                                   skills.log, other
                                                                                                   voice.log




Input (':' for command, Ctrl+C to quit) =========================================================================================================================================================
>

Hey there,

The Picroft image is based on Raspbian Buster, and does support Pi 4. So wondering what happened when you tried to boot that image?

The Picroft install script has a number of extra features for handling common hardware that’s not available in the bare bones mycroft-core install.

  1. By default Mycroft will use the default pulseaudio device, but this doesn’t always work flawlessly. There’s a general Audio Troubleshooting Guide in our docs, but what sort of mic and speakers are you using?

  2. So I’m assuming even the “blacklisted_skills” are reinstalling? Is this the user level ~/.mycroft/mycroft.conf file? Does this config file persist after a reboot? If the config itself reverts it means there’s a syntax error in there somewhere.

The lack of spoken audio may also exist if it can’t get a proper response from your TTS service.

In terms of Skills not working in German, the best place to ask about this would be our German Language channel in Mycroft Chat.

I can’t see where the logs say the Skill isn’t available in German, but you can find the complete logs at /var/log/mycroft/skills.log

Thanks for your feedback.

Regarding the picroft image, the pi would just not be reachable via wired LAN. I did not have a proper HDMI cable so I was doing this headless, and could not find out what went wrong. I just read on the forums here that probably the pi 4 is still somewhat unsupported.

Regarding the other points:

  1. I found the audio troubleshooting guide also, and tried to adjust devices using the pactl tool. Also I had to manually launch the pulseaudio daemon, but all that did not help.
  2. Nope, I did not have any blacklisted skills except the two mentioned above (which was my ~/.mycroft/mycroft.conf). The file persists between runs, so there is no syntax issue.

So the reinstallation of skills upon startup is the normal behaviour? Should I just uninstall plus blacklist the skills I dont want? This is a bit confusing, especially since blacklisted skills seem to cause red error messages in the log (“failed to load”).

Regarding german language support in skills, this is actually not an issue for me, I was just mentioning what I was seeing in the logs. I am a developer coming from snips/rhasspy, and I would try to implement my own skills anyway. I would not use any of the existing skills most likely.

So since really nothing helped at all, and I was unable to get mycroft back into a state where it would capture voice again, I reflashed the buster lite image and reinstalled mycroft. Now I am back into the state where voice is detected, but no TTS output can be heard.

Steps I did:

  1. clone git repo & run setup
  2. launch mycroft/debug, microphone-meter is active
  3. no audio is captured / nothing in the logs
  4. run the audio test - it tells me pa_context_connect() failed: Connection refused
  5. run pulseaudio --start
  6. run the audio test - it works, however no sound is played
  7. adjust the audio sink using pactl
  8. run the audio test - I can hear no playback
  9. run paplay ./test/unittests/client/data/weather_mycroft.wav - I can hear the output
  10. run mycroft/debug, say “hey mycroft, what time is it”. in the CLI I see that the command is understood, and the CLI prints the current time. no TTS sound is played. I can hear the confirmation beep when the wake word is detected.

So there seems to be an issue with the TTS. there is no errors in the logs, so I don’t know how to resolve this. In the mycroft.ai account settings when pairing the device I selected “british male” as voice. On my first installation I was using google.

 08:36:09.713 | INFO     |  6274 | __main__:handle_wakeword:67 | Wakeword Detected: hey mycroft
 08:36:11.500 | INFO     |  6274 | __main__:handle_record_begin:37 | Begin Recording...
 08:36:13.190 | INFO     |  6274 | __main__:handle_record_end:45 | End Recording...
 08:36:14.573 | INFO     |  6274 | __main__:handle_utterance:72 | Utterance: ['what time is it']
 08:36:19.613 | INFO     |  6268 | ConfigurationSkill | Remote configuration updated
  ^--- NEWEST ---^
History =======================================================================================    Log Output Legend =============================================================== Mic Level ===
 what time is it                                                                                   DEBUG output
 >> It's zero nine thirty six                                                                      skills.log, other
                                                                                                   voice.log

So, to summarize:
Voice is captured successfully, but audio playback is only partially working / no TTS is working.

Regarding the installation, at least the step pulseaudio --start seems to be missing in the setup process / documentation, otherwise voice would not get captured.

How should I proceed?