Lucky number 0.9.13
forslund
released this
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
TODO:
penrods
released this
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
released this
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
Mark 1 Boot Sequence
penrods
released this
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
released this
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.awokenis now sent when speech client is awoken from sleep. #1279- fix status messages sent from msm to mycroft messagebus. #1275
API updates
forslund
released this
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
released this
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
released this
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 listcommand to show already installed skills; andmsm 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
released this
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".