Releases: MycroftAI/mycroft-core
A small step for programmer, a leap for Mycroft-kind
This release marks the start of the trek towards the Mycroft Mark-2. It contains the start of a new gui framework and a sort of a gui debug console has been added to the CLI.
GUI Connection interface #1899, #1902
The enclosure client can now negotiate connections from "screens" and can send qml pages to draw and related variables.
Update msm to version 0.6x #1885
This adds better support for working with the skill manifest both as a library and as a standalone application from the command line.
Hungarian translations #1893
Bit thanks to @danielwine for supplying Hungarian translations and format/parsing functions.
Common Query Framework #1900
A system for negotiating the best result for a question. The system inherits a lot of it's design from the common play framework.
Bugfixes
- Handle invalid refresh tokens to allow the pairing skill to launch re-pairing if needed #1894
- gTTS modules updated to support latest changes on google's side. #1890
- Handle faulty configs when the logger is created. (Thanks to paul_panther in the chat for reporting) #1903
- bugfix in padaos to handle bad .intent lines without crashing the intent system #1901
release/v18.8.6
Numbers numbers numbers! #1867
New function extract_numbers()
will extract all numbers from a string. Big thanks to @JarbasAI for submitting this addition.
Improved datetime extraction #???
The extract_datetime()
function now accepts now as well as "within X minutes/hours". Once more @JarbasAI!
Bugfixes
v18.8.5
Update Readthedocs documentation #1861
Build scripts has been updated to work in the current virtualenv and skill members such as file_system and log in MycroftSkill is now documented
Extract date time function improvement #1866
Big thanks to @JarbasAI for fixing handling of phrases like "in a minute" and adds support for extracting "now".
Upgrade requests, #1862
Due to the security advisory relating to requests 2.19.x the module was updated to 2.20.
Fix incorrect path in the prepare-msm script, #1834
Big thanks to @gauravjuvekar for providing this one.
Hacktober part II
This was a rather quiet release but it introduces a mechanic to sync installed skills with the skill store. This makes way for bigger changes server side creating a better user experience.
Report load errors in skill tester #1618
The skill tester now has the ability to report the error encountered when skills fail to load.
New tests for the dialog renderer module #1848
Thanks to @nielstron the dialog module now has pretty good test coverage.
Api update Upload skills manifest #1860
Add support for uploading skill manifest listing installed skills and their status. This makes way for implementing better installation possibilities on the Marketplace.
Bugfixes
Hacktober part I
The big news in this issue is adding the CommonPlaySkill
, a subclass of the MycroftSkill adding functionality for negotiating which skill should handle a playback call. This will still need a couple of skill updates to take advantage of the system but it should be running within a day or two.
In this release we also have gotten our first couple of new hacktoberfest contributors @mpolidori and @silvia-odwyer (and @JarbasAl but he's not really new). A big thank you for these contributions, we hope you'll stick around!
Common playback skill #1843
Adds the base class for the common play skill implementing the base functionality. To create a skill import the CommonPlaySkill:
from mycroft.skills.common_play_skill import CommonPlaySkill
and create a class implementing the methods CPS_match_query_phrase
and CPS_start
. The first will parse a phrase and return a confidence level and the second will start playback:
class MyPlaybackSkill(CommonPlaySkill):
def CPS_match_query_phrase(self, phrase):
# Check if the phrase is playable and return confidence level
return return phrase, confidence, data # data can be used to send info to the CPS_start skill
def CPS_start(self, phrase, data):
# Start playback of the matched query
Fallback TTS #1840
If a remote TTS such as Mimic 2 or googleTTS is used and the network connection goes down the tts will fallback to the local version of Mimic.
Cross skill context #1815
A system for setting context for all skills was added. Big shuot out to @JarbasAI for building this!
Lock the usage of the identity file #1801, #1820, #1821, #1828, #1830
To reduce risk of multiple processes accessing the identity file a locking system was added.
Fix the problem trillions issue when formating numbers #1841
Rework and fixing of issue with trillions when using nice_number
. Many thanks to @nielstron for tackling this in an excellent way!
CentOS 7 support #1837
dev_setup.sh
can now be used on CentOS to setup mycroft. Many thanks to @JarbasAI and @assasen11
Warn when unsupported parse function is used for unsupported language #1831
Shout out to @silvia-odwyer for fixing this!
Fix invalid escape sequence in remote_tts.py #1845
Thanks to @mpolidori the invalid escape sequence was fixed!
Allow setting log level in user config #1832
The log level can now both be set in the system config and the user config. Thanks @JarbasAI !
Miscellaneous
- Fix bug causing CLI required 2 ctrl+C to exit #1826
- Reduce logging #1819
- Lock the version of get-pip used during dev_setup #1833
- Minor cleanup of
mycroft.skills.core
#1835 - Fix parsing of today, tomorrow, yesterday #1827
- Add possibility to set a separate language for GoogleCloudSTT #1842
- Use the phonetic spelling with mimic2 #1818
v18.8.2
Distro support (#1798, #1799)
Package list for Arch Linux and OpenSuse updated.
Updates for python 3.7
- Fix python 3.7 issues in padaos #1794
A couple of regexes would fail due to a minor change in how python handles incorrect escape sequences. - update pyyaml module requirement #1807
This would invariably fail to build under python 3.7, to fix the latest version was included. Big thanks to @KathyReid and @adocampo for providing the solution.
Date time updates
- a
default_time
optional parameter has been added toextract_datetime()
. #1804, #1808
This can be set to a time so if no time is included in the input string (for example on friday the 13) the time is set to the default_time instead of midnight. This can be useful when setting a reminder on a specific date for example. utc_now()
now returns datetime objects including timezone #1811
Spanish text parsing functions updated (#1571)
Adding spanish support for extract_number()
and extract_datetime()
. Huge shout out to @adocampo for providing these!
Updates for skill writers
- translate_namedvalues now produce an ordered dict so the values can be ordered by priority in the .list file. #1816
- schedule_event() now accept integers as well as datetime. #1813
An int will be considered a relative time and will schedule the event X seconds from now. - Add optional parameter
wait
tospeak
andspeak_dialog
#1812
This will make the methods block until Mycroft has finished speaking. - Strip trailing blank lines from translated files (.dialog, .list) #1817
In a few places trailing blank lines would cause issues, since these are generally not wanted they're removed.
Support for downloading precise model by wake word name #1810
When more wake words are added the precise models will now automatically download and be used if they're available, otherwise it'll fall back to pocketsphinx.
Misc
The first update has landed
The first update of the 18.08 release has landed bringing bugfixes, and a consistent array of command line tools.
Mimic 2 speech improvement #1795
The American Voice Beta voice model for mimic 2 has been improved quite a bit, to take advantage of this some of the sentence chunking code has been reworked. This will result in less unnatural pauses in the speech.
Unify the commandline experience #1784, #1788
Many of the command line tools used in the Mark-1 and Picroft was merged into the mycroft-core repo and can be found under .../mycroft-core/bin/
Local precise model #1782
A user specified precise wakeword model can now be specified in the configuration. This allows easier customization.
Workaround for arduino issue #1751
Some users experienced issues with the face plate not updating due to invalid start characters received from the Arduino, a workaround that will work in certain cases was added. Shoutout to @domcross for providing this!
Miscellaneous updates and bugfixes
v 18.8.0 Breakin' and fixin'
The long awaited 18.8 version of Mycroft-core. A couple of bigger changes to the API was included.
The following non-compatible changes has been included:
- enclosure api separated from enclosure logic, this will make it easier to create thirdparty enclosures and support future mycroft enclosures. #1767, #1760
- a couple of deprecated util functions were removed along with the deprecated DeviceApi methods
find_*
#1752, #1756 - Booleans and Numbers in websettings are now casted to the correct python type
- update to more modern python module structure, all main.py files were removed.
- remove depreciated
ScheduledSkill
#1731 MycroftSkill.get_response
announcement parameter has been removed (the dialog parameter now supports strings as well so it has become redundant) #1758
locale directory #1764, #1773
Skill vocab, dialogs and regexes can now be placed in the SKILL/locale
Simple audio service #1761, #1774
Replace the separate mpg123 and ogg123 with a "simple" audio service using simple command line tools to play mp3, ogg and wav files.
Emitter/ws -> bus #1757
The messagebus connection instances has been renamed to "bus". The old MycroftSkill.emitter
is still available for backwards compatibility but will be removed for 19.02.
Skill tester improvements
Misc
- Fix skill listing in CLI #1759
- Fix building mimic if the path contains spaces. Big thanks to @el-tocino for this fix. #1772
- msk updated to 0.3.11 adding better branching support #1769
- msm updated to 0.5.19 setting default branch to 18.08 #1776
The last 18.2 release
Lots of minor improvements and preparations for moving to the 18.8 release.
Support for installing Beta skills #1747
Skill manager will now allow "beta-skills" installed by the installer skill.
Mycroft CLI updates #1738, #1745
- Fixed lockups
- Updated simple CLI to show Mycroft speech
- Updated code handling non-ascii encodings to work well on a wider range of Locales
Improved Camel Case Splitting #1727
Big thanks to @juliengk for improving the camel case splitting of skill names.
Fixed caching mimic outputs #1716, #1720
Mimic outputs weren't being cached since the phoneme files weren't written to disk correctly. Big thanks to @ndarilek for reporting and supplying code to identify and fix the issue.
Mimic 2 improvements #1724, #1740, #1748, #1737
- Fix isSpeaking signal for mimic2
- Improve pronounciation of years
- Expand numbers to words
Clean up isSpeaking signal #1721
The is isSpeaking signal is now cleaned up when audio service is started. Big thanks to @JarbasAl for providing this fix.
v18.2.12 Mycroft's New Voice!
New Mimic voice technology (#1708)
Mycroft now has full support for the new Mimic2 voice technology. This includes support for synchronized viseme display to animate the mouth. The first beta voice can be selected under Basic Settings at home.mycroft.ai as the American Male. This voice is generated by the Home server rather than locally due to high computational demands.
Improved Padatious support (#1709/#1713)
Previously, Adapt intents would always match before Padatious intents. Now a high Padatious match (95% confidence or greater) will win.
Additionally, the message that indicates Padatious training is still occurring during boot is now spoken rather than just blocking. (#1706)
Misc improvements
-
The latest versions of the Mycroft Skill Manager (msm), Mycroft Skill Kit (msk), and Padaos for Padatious have been linked to Mycroft Core. (#1698)
-
Add mycroft.util.play_ogg(), similar to play_mp3(). This requires ogg123 on the system to function, it hasn't been made a dependency. Thanks @joshuacox! (#1678)
-
Improve Docker support by explicitly calling python3 and eliminating the venv for Docker installs. Also cleaned up shell scripts for consistency. Thanks @juliengk! (#1703/#1710/#1711)
-
Now start-mycroft.sh automatically starts the Enclosure when on a Mark 1 platform (#1707)
-
Add scientific-notation support for pronounce-number, allowing handling of MUCH larger numbers -- up to 1e3003. Thanks for thinking big, @JarbasAI (#1653)
-
Unified logging to all occur under the /var/log/mycroft/ directories. Previously a start-mycroft.sh Github install would log into a subfolder of the Github directory. The Debian package still used /var/log/mycroft-*.log files, but that will change in the near future for consistency. (#1712)
Bugfixes
-
Previously the EventScheduler add/delete/change operations were kept in independent queues, so the order of operations wasn't always as expected. Now locks are used for multithread synchronization and queuing has been eliminated. In addition events weren't fully disconnected, resulting in duplication of handlers if they were recreated later under the same name/handler. (#1705)
-
Fix CLI screen corruption in some SSH clients, plus made the redraw slightly cleaner/faster overall. (#1704)
-
Correct hard-coded "/opt/mycroft" in prepare-msm.sh script, now honoring configuration settings. Thanks @Whisprin! (#1700)
-
Force-remove any leftover and orphaned .git/index.lock files from Skills at Mycroft startup. These would prevent a skill from updating. (#1715)