Skip to content
This repository has been archived by the owner on Sep 8, 2024. It is now read-only.

AudioService, DisplayManager, Skill Settings

Compare
Choose a tag to compare
@aatchison aatchison released this 04 Aug 03:41
· 3467 commits to dev since this release

It's Christmas in July! Lots of goodies to unwrap in this one.

FEATURE: Audio Service (#433)

Major unification of audio handling in Mycroft. The AudioService now manages all sound output, including text to speech, music files and audio streams. This enables several new capabilities and behaviors:

  • Audio will lower/pause and resume when Mycroft speaks
  • Skills can queue-up multiple audio files/streams for playback
  • Unified playback skip/pause/resume/stop
  • Audio can be redirected to external players besides the local speakers. Currently supports VLC and Mopidy. (Kodi and Chromecast on the way!) "Hey Mycroft, play the news in the kitchen"

See the NPR News (https://github.com/MycroftAI/skill-npr-news) and Playback Control (https://github.com/MycroftAI/skill-playback-control) skills for examples of interacting with the service.

FEATURE: Skill Graphic Output / DisplayManager (#838)

Skills can draw to the Mark 1 face (or future enclosures) by sending encoded or PNG graphics.

Graphics are sent via EnclosureAPI.mouth_display_png(). Graphics are automatically converted to two colors if necessary.

Also created the concept of an active skill which owns the display. Say "Hey Mycroft, what time is it?" and see https://github.com/MycroftAI/skill-date-time for an example of a Skill drawing to the display when it is 'inactive'.

FEATURE: Skill Settings Web UI (#933)

Skill developers can now add a settingsmeta.json file into their skill. Then mycroft-core will automatically upload the file to home.mycroft.ai, allowing users to input the settings via a web UI. Entered values are sent back as a settings.json file that can be used by the skill.

Example settingsmeta.json:

{
   "identifier": "PandoraSkill",
   "name": "Pandora",
   "skillMetadata": {
      "sections": [
         {
            "name": "Login",
            "fields": [
               {
                  "name": "email",
                  "type": "email",
                  "label": "Email",
                  "value": ""
               },
               {
                  "name": "password",
                  "type": "password",
                  "label": "Password",
                  "value": ""
               }
            ]
         }
      ]
   }
}

FIXES

  • ISSUE #960: Stop command would stop stopping if any skill handler for mycroft.stop has an error (and stops). (#961)
  • ISSUE #950: Upgrade netifaces in requirements.txt to netifaces==0.10.6 (#951)
  • FIX: Using an undeclared "logger" could crash during exception handling (#963,#964)

MSM Enhancements

  • Clarified MSM return codes, distinguishing 'duplicate' and 'missing' skill requests (thanks el-tocino!) (#945)
  • FIX: Correct user ownership on /opt/mycroft subdirectories when needed (#947)

Misc

  • Add a standard commit message template (#952)
  • Restrict requirement to mock==2.0.0 (#949)
  • Upgrade requirement to netifaces==0.1.6 (#951)