Lucky number 0.9.13

@forslund forslund released this Jan 5, 2018 · 1 commit to dev since this release

Auto-updating skills can now be disabled #1344

The skill auto-update can now be disabled in the configuration. Thanks @JarbasAI for this contribution

Italian dialogs for core #1331

Translations for the dialogs in core for italian added by @aleale99

utterance_remainder() #1287

Messages to skills now has a method utterance_remainder() returning the utterance with the words matched by keywords removed.

Misc

  • Pull Request template added #1326
  • Code of conduct document added #1323
  • Phonetic translation added to TTS #1287
  • Model hash is now included in the wakeword sent (if opted in) #1345

TODO:

@penrods penrods released this Dec 23, 2017 · 18 commits to dev since this release

Revert "Merge pull request #1305 from MycroftAI/feature/send-platform"

This messes up Pairing so it will be reverted until there is a backend
change to support it

This reverts commit 71611ca6bef98adc5ef6738a92efb22f8afdc4a9, reversing
changes made to c7da63c536ead04d0339991f66f314db38926366.

Minor release

@forslund forslund released this Dec 18, 2017 · 40 commits to dev since this release

New text parsing util fuzzy_matching #1315

The function matches similar text like "orange" and "oranges" and gives a score 0-1.0.

Translate namedvalues #1313

the MycroftSkill class now has a translate_namedvalues() method returning a dict with keys in the current language. The dict is read from a csv file in the `/xx-xx/File.values looking something like:

# List colors and their hex RGB values
alice blue, #F0F8FF
antique white, #FAEBD7
aqua, #00FFFF

Misc

  • improved standard of README generated by skiller.sh script and improve some text resources #1311
  • Fix PgUp and PgDn for VT100 #1310

Mark 1 Boot Sequence

@penrods penrods released this Dec 14, 2017 · 54 commits to dev since this release

Visual Cues during Mark 1 Boot Sequence (#1308)

The Main focus of this release is creating visual feedback during the Mark 1 boot
sequence. The eyes and faceplate now provide indicators of the stage of the system:

  • Spinning gray eyes
    The system just started, Arduino running and Pi booting
  • Solid gray eyes
    Pi booted
  • (Optional) Orange eyes, update message on faceplate
    Flashing new sketch to the Arduino
  • Yellow eyes
    Mycroft starting, waiting on internet connection
  • Yellow eyes, update message on faceplate
    Updating software from the web
  • Blue eyes (or user selected color)
    Mycroft ready for use!

Additionally, the gray eye color and an update message will return during system upgrades.

Command Line Interface (CLI) (#1299)

Two new minor feature for the mycroft-cli-client:

  • Ctrl+Right and Ctrl+L allow scrolling through the command line history
  • New ':clear log' command cleans out the old log message from the display

Bugfixes

  • Values in the settings.json were overwritten if skills initialize self.settings['key'] in init (#1304)
  • Bad settingsmeta.json prevented skill from loading and showed a convoluted error. Now a useful message is logged with the JSON error message and the skill continues to load. (#1300)
  • Add missing 'self.' in an obscure corner of the Enclosure code. Thanks JarbasAI! (#1302)
  • The MycroftSkill.translate*() functions were not correctly rendering mustache values with 'double mustaches', such as "This a a {{value}}" (#1303)
  • Fix Unicode issues in Portugese version of extract_datetime() utility. (#1301)
  • Missing space in shell script prevented creation of a directory when switching to Github install in mycroft-use.sh utility (#1298)

Skill creators rejoice

@forslund forslund released this Dec 11, 2017 · 76 commits to dev since this release

Get response #1278

get_response() method added to MycroftSkill. The method allow skill creators to synchronously wait for a users response inside an intent handler. The method takes a dialog reference as argument. The referenced dialog will be spoken and listening will be triggered. The user response will be returned from the method.

    def echo(self, message):
        response =self.get_response('what.should.I.repeat')
        self.speak(response)

Global skill settings #1290

Skill settings are now default per user not per device. This means instead of having multiple entries for a skill under the "Skills" tab a single entry will be visible and used by all devices.

Skiller #1282

skiller.sh script updated. The skiller.sh script creates a standard template for building a new skill, including skill class, readme and license.

Translate text #1288

New translate methods to help internationalization of skills. The new methods are translate(), translate_template() and translate_list().

        body = self.translate_template('email.template', {'from': data['name']})
        self.send_email(self.translate('You have a message!'), body)

Above example will get the localized version of the email.template.dialog file and render one of the entries as a string. The string will then be sent as body in an e-mail message.

Unnamed intents #1280

IntentBuilder can now be used with empty names: IntentBuilder('').require('intent').... If left empty the handler method name will be used.

Misc changes

  • Corrected test coverage #1272
  • Speech related fixes, correct isSpeaking #1283, Fix protection from intermixing utterances. #1291
  • Update CLI, minor fixes and changes to keyboard interface. #1284
  • mycroft.awoken is now sent when speech client is awoken from sleep. #1279
  • fix status messages sent from msm to mycroft messagebus. #1275

API updates

@forslund forslund released this Nov 26, 2017 · 135 commits to dev since this release

Send E-mail #1230

The skills API now includes a self.send_email() method allowing the skill to send an e-mail to the user. Practical if the skill wants to send a link to the user or for things such as shopping lists.

Metrics #1247

The DeviceApi now includes a metrics method allowing skills and core to upload information to the Mycroft server should the user allow it. The method is very general purpose and can take any method as long as it can be serialized to json.

Skills developer can easily access this functionality using the self.report_metric method in the Skill API.

Misc

  • Added support for Google Cloud API SST, big thanks to @ahayworth for providing this. #1226
  • The AudioService can now add files to currently playing playlist #1197
  • Listening can now be triggered from the messagebus by sending mycroft.mic.listen #1244
  • Remove pystache dependency #1235
  • Improve lip synch #1242
  • Code cleanup and bugfixes, Many thanks to @gauravMann for cleaning up the usage of mutables as default arguments.

Packaging fix

@devs-mycroft devs-mycroft released this Nov 10, 2017 · 179 commits to dev since this release

Minor release with a critical Debian packaging fix to v0.9.5 that corrected a mistake creating incorrect ownership of the /etc/sudoers file.

Introducing Precise

@penrods penrods released this Nov 13, 2017 · 180 commits to dev since this release

Precise wake word engine #1199, #1207

New machine-learning based wake word listener. This system includes a feedback loop, allowing user-contributed information to be incorporated into the training database, improving the wake-word performance. This happens when Opt In has been chosen at home.mycroft.ai.

Precise is enabled by changing /etc/mycroft/mycroft.conf to include:
{"hotwords": {"hey mycroft": {"module": "precise"}}}.

API enhancements

  • Add MycroftSkill.get_intro_message() method which skills can override when they wish to provide instructions to the user after installation. (#1211)
  • Extend scheduled event mechanism with MycroftSkill.get_event_status(), MycroftSkill.remove_event() (#1193)

Utility changes

  • Add msm list command to show already installed skills; and msm info <skill> command to display info from the README.md in the skill's Github repo. Thanks @theCalcaholic! (#1201, #1202, #1203 )
  • Add 'all' option for mycroft-stop utility to mirror mycroft-start (#1212)
  • Changed mycroft-use utility to autoremove when switching from unstable to stable builds. (#1213)
  • Add 'home' and 'home-test' options to mycroft-use to simplify backend testing. Also added platform support and extended the 'github' option. (#1182)

Misc

  • Wakeword validation, defaulting to "Hey Mycroft" when user-entered settings fail. (#1188)
  • Add event scheduler tests (#1189)
  • Reduced requirements.txt to only the packages actually used by mycroft-core, removing those only needed for default skills. (#1192, #1215, #1216)
  • Added stop() to the AudioService. Thanks, @akailash! (#1194)
  • Configuration system fix (#1196)
  • Padations 0.3.7, fixing several minor bugs (#1198)
  • The remote configuration file was prematurely loaded at import time. Now it is loaded when the Session is created. (#1204)

New Voice, moved default-skills to repo

@penrods penrods released this Oct 31, 2017 · 241 commits to dev since this release

New Voice!

The long-awaited new feminine voice for Mycroft is now available! Members at home.mycroft.ai can choose the 'American Female' voice at https://home.mycroft.ai/#/setting/basic. The Alan Pope voice still is and always will be available for all. (#1173)

Default skills...redefined

The core default skills are now defined by a list on the mycroft-skills repo (see https://github.com/MycroftAI/mycroft-skills/blob/master/DEFAULT-SKILLS). This decouples the list from a specific build, allowing new defaults to be added at any time. Additionally, platforms can also have unique defaults -- for example allowing a KDE installation of Mycroft to pull down KDE/desktop related skills (see https://github.com/MycroftAI/mycroft-skills/blob/master/DEFAULT-SKILLS.kde). The current list of platforms is 'picroft', 'mark-1' and 'kde'.

The list of default skills is defined by the community run Mycroft Skills Team.

Portuguese Internationalization

Fixes

  • The Chromecast audio backend would stop playback on initial connection, sometimes interfering with existing playback. (#1123)
  • ISSUE #1141: The TTS audio cache could be cleared before or during playback, occasionally interfering with responses (especially when the disk is nearly full). Also allowed minimum_size not just a minimum percentage, which is less useful when dealing with very large drives. (#1168)
  • Upgraded to Padatious 0.3.6, fixing issues with registering entities. (#1149)
  • Modified dev_setup.sh build of py2cairo and pygobject to avoid "too many arguments" message on Arch Linux. Thanks @DarkPhoenix! (#1157)
  • The next spoken utterance was consumed if no speech was occurring when mycroft.audio.stop_speaking() was called. (#1167)
  • Error messages were spoken during skill download even when "speak=False" was specified (#1183)

Misc

  • Major refactor of the mycroft.configuration module. This clarifies and simplifies some of the logic and allows patches to survive a reload of the config. (#1110, #1176, #1179)
  • Allow msm.sh, mycroft-start.sh and mycroft-stop.sh to be invoked from different working directories. Thanks @roadriverrail! (#1021)
  • Added g++ to dev_setup.sh dependencies (#1150)
  • Reduced some of the 'noise' in the logs. (#1180)
  • Disabled experimental "Location" context from the default. It was lingering and causing confusion at times, but is still available for more experimentation. (#1181)
  • In the 'mycroft-use' utility, separated the connection between the mycroft-core implementation and the backend. Now specifying 'stable' and 'unstable' only changes the Debian package. To change the backend connection, specify 'home' or 'home-test' in a subsequent call, e.g. "mycroft-use unstable" followed by "mycroft-use home-test".