Releases: MycroftAI/mycroft-core
v21.2.2
Features
- Improve confidence calculation for Common Query. This provides a better mechanism for determining which Common Query Skill returned the best answer. (#2986) by @ken-mycroft
- Add 'utterances' to message emitted to skill intent handler. Allows intent handlers to access all possible transcriptions and makes
message.data
consistent with converse. (#2997) by @NeonDaniel - Extended the idea of the Voight Kampff CriteriaWaiter (#3002) by @chrisveilleux. This introduces three new tools for use in Voight Kampff test Steps:
- VoightKampffMessageMatcher: checks for the specified message type.
- VoightKampffCriteriaMatcher: checks not only the message type, but also that the payload data matches the given critiera.
- VoightKampffDialogMatcher: checks for the specified dialog output.
- Reduce duplication of Padatious matching during low priority fallbacks (#3003) by @Joanguitar
- Add an option to change the format of log output (#3016) by @goldyfruit
- Add ESpeak TTS configuration options (#3020) by @Genei180
➔ See the Mycroft documentation for more information - Initial Azerbaijani language support (#3021) by @saymantech-co
- Install pip for the python version specified by argument in
dev_setup.sh
(#3042) by @HFabi
Bugfixes
- Release GUI on Skill shutdown or reload (#2979) by @krisgesling
- Fix messages clearing in the
InterceptAllBusClient
(#2990) by @chrisveilleux - Fix pulseaudio daemon failing to start in CI (#2992) by @krisgesling
- Patch dependencies that use the deprecated
use_2to3
(#2996) by @krisgesling - Alter AVX test to accomodate aarch64 (#3000) by @el-tocino
- Fixed an error with message formatting in a ValueError message (#3001) by @chrisveilleux
- Fixed formatting error in skill loader log message (#3010) by @chrisveilleux
- Fix setup process for installs without Precise (#3012) by @in03
- Fix
mycroft-config
set using pre-XDG path (#3015) by @goldyfruit - Fix race condition in GUI namespace insertion (#3022) by @krisgesling
- Check if GUI is connected rather than maintain list of platforms (#3025) by @krisgesling
- Fix config priority issue in XDG changes (#3033) by @forslund
- Remove incorrectly added args in
GUIWebsocketHandler
methods (#3036) by @krisgesling - Update Gentoo libffi dependency reference (#3039) by @rooky-c3bo
Other changes
- Refactor/shellcheck bin (#3019) by @forslund
- Upgrade websocket-client to 1.2.1 (#2879) by @PureTryOut
- Update key names in adapt keyword registration message (#2963) by @forslund
- Voight Kampff: Only stop Mycroft services if running in CI. This allows for faster development workflow when running Voight Kampff tests locally. (#2975) by @krisgesling
- Add warning for anyone loading GoogleTTS. This module uses the Google Translate TTS API and is not intended for production usage. (#2985) by @krisgesling
- Bump pillow from 8.2.0 to 8.3.2 (#2995) by @dependabot[bot]
- Update link for Hub to point to official Github version (#3028) by @krisgesling
- Do not create configs folders until writing (#3045) by @forslund
Big shout out and thanks to our Community Contributors for this release:
🎉 @el-tocino
🎉 @forslund
🎉 @Genei180
🎉 @goldyfruit
🎉 @HFabi
🎉 @in03
🎉 @Joanguitar
🎉 @NeonDaniel
🎉 @PureTryOut
🎉 @rooky-c3bo
🎉 @saymantech-co
v21.2.1
Mycroft-core v21.2.1 is an iterative release with a whole smattering of goodies.
Most noticeably mycroft-core is becoming compliant with the XDG Base Directory specification. This moves some files from their traditional directories, to those defined by the XDG spec:
- settings to $XDG_CONFIG_DIR/mycroft, which most of the time is ~/.config/mycroft
- data to $XDG_DATA_DIRS/mycroft, which most of the time is ~/.local/share/mycroft
- cache to $XDG_CACHE_HOME/mycroft, which most of the time is ~/.cache/mycroft
Mycroft Skills currently remain at /opt/mycroft/skills/
A series of improvements have also been made to the Voight Kampff test suite to make them more reliable and robust. The better our tests, the quicker we can push other updates.
Features
- Do not attempt update when only launching CLI (#2715) by @el-tocino
- Initial XDG Base Directory specification compliance (#2794) by @PureTryOut and @forslund
- Remove registered keywords on Skill shutdown (#2877) by @forslund
- Add Farsi support with upgrade of Lingua Franca from v0.4.1 > v0.4.2 (#2908) by @HKalbasi and @ChanceNCounter
- Update Adapt intent parser from v0.3.7 to v0.5.1 (#2909, #2960) by @clusterfudge and @forslund
➔ See the release notes for more information - Check for the AVX instruction set during install (#2910) by @mathmauney and @krisgesling
- fa-ir localization of mycroft-core (#2943) by @HKalbasi
- Improve the speed of waiting for dialogs helper function (#2946) by @chrisveilleux
- Add feature request functionality to webviews (#2956) by @AIIX
- scripts: Support busybox chown (#2966) by @rzr
- Make network tests configurable (#2962) by @krisgesling
- Add fullscreen fix for webviews (#2967) by @AIIX
Bugfixes
- Add Common Play to active Skills when invoked (#2900) by @krisgesling
- Make TTSCache safer (#2914) by @forslund
- stop passing
lang=None
to Lingua Franca (#2927) by @ChanceNCounter - Stop creation of 'None' cache directory (#2931) by @JarbasAI @HelloChatterbox
- Fix #2929: use returned TTS audio file path (#2934, #2938) by @JarbasAI @HelloChatterbox, @krisgesling and @forslund
- Fix loading of audioservice plugins (#2957) by @forslund and @JarbasAI @HelloChatterbox
- Install pulseaudio-utils on Fedora (#2971) by @strugee
Tests
- Add update comment logic to Jenkins (#2807) by @forslund
- Fix Voight Kampff race condition in MycroftSkill.get_response() (#2937) by @chrisveilleux
- Use unique paths for temp file storage (#2944) by @krisgesling
- Added comments to document race condition (#2945) by @chrisveilleux
- Fix Possible Voight Kampff message race (#2948) by @forslund
- Use event handler to capture messages in
then_wait()
(#2951) by @forslund - Remove mycroft-stock from Voight Kampff install list (#2954) by @forslund
- Voight Kampff: No skill updates at runtime (#2968) by @forslund
Other changes
- Revert a temporary bugfix from PR #2626 (#2741) by @krisgesling
- Fix broken link in Contributor Guide (#2693) by @krisgesling
- Refactor mimic_tts to not load config when importing (#2888) by @forslund
- Cleanup of documentation (#2898) by @krisgesling
- ReadTheDocs documentation: Fetch Mycroft-core version from mycroft.version (#2903) by @forslund
- Bump pillow from 8.1.1 to 8.2.0 (#2917) by @dependabot[bot]
- Remove docs encouraging Skill config via mycroft.conf (#2936) by @krisgesling
- Expose AdaptIntent from mycroft.skills (#2970) by @krisgesling
Thanks as always to our Community Contributors for this release:
🎉 @AIIX
🎉 @ChanceNCounter
🎉 @clusterfudge
🎉 @el-tocino
🎉 @forslund
🎉 @HKalbasi
🎉 @JarbasAI
🎉 @mathmauney
🎉 @PureTryOut
🎉 @rzr
🎉 @strugee
v21.2.0
Features
- Allow overridden converse methods to accept messages (#2813) by @NeonAndrii
- Add Skill API (#1822) by @forslund
➔ Find out more - Add
skill_id
to converse error msg (#2827) by @krisgesling - Install Alpine deps to a virtual meta package (#2841) by @PureTryOut
- Add optional paramater to
voc_match
for exact matching (#2858) by @JarbasAl and @krisgesling - Upgrade Lingua Franca to v0.4.1 (#2890) by @ChanceNCounter and @krisgesling
- Replace hardcoded use of
/tmp
directory (#2892) by @dzekem and @krisgesling
Bugfixes
- Fix dev_setup.sh max cores detection (#2857) by @forslund
- Sync curated cache with dict of cached sentences (#2870) by @forslund
- Remove example entries in blacklisted_skills config (#2844) by @krisgesling
- Fix loading Mimic phonemes from cache (#2871) by @forslund
- Fix replacement of existing Skill loader in queue (#2899) by @krisgesling
Tests
- Add tests for
get_response
(#2838) by @forslund - Old skill tester: Fix Padatious setup and fallback intents (#2894) by @forslund
Other changes
- Remove log pollution (#2840) by @DiegoAsterio
- Remove duplicated Padatious code (#2843) by @JarbasAl
- Remove intent-service backwards compatibilities (#2849) by @forslund
- Consolidate TTS cache logic (#2853) by @chrisveilleux
- Remove stray print (#2856) by @forslund
- Utilize the mycroft-messagebus-client module (#2863) by @forslund
- The phoneme needs to be converted to a list before being passed on. (#2865) by @chrisveilleux
- Upgrade pillow from 7.1.2 to 8.1.1 (#2868) by @dependabot[bot]
- Move TTS cache curation to TextToSpeechCache (#2869) by @forslund
- Upgrade pyyaml from 5.1.2 to 5.4 (#2873) by @dependabot[bot]
- Upgrade requests to 2.25.1 (#2783) by @PureTryOut
- Update Readthedocs config to handle mycroft-messagebus-client (#2887) by @forslund
- Bump core version and MSM for v21.02 (#2907) by @krisgesling
Deprecations
- Support for Python 3.5 has been deprecated as it has reached EOL.
v20.8.1 Farewell to 2020
Features
- Add Plugin system for STT, TTS, Wake Word engines and Audioservices (#2594) by @forslund and @JarbasAl
➔ Find out more - Add ProcessStatus to all Mycroft Services providing a consistent interface for querying their state. (#2648) by @krisgesling and @forslund
➔ Find out more - Add new CPS_extend_timeout method to Common Play Skill (#2666) by @JarbasAl
- Add support for
doas
, asudo
alternative (#2690) by @pixelherodev - Local changes to Skill settings will now persist until a change is made to remote settings (#2707) by @forslund
- Add config flag to disable all Skill settings syncing (#2734) by @JarbasAl
- Add Mozilla TTS support (#2713) by @domcross
➔ Find out more - Validate the Mozilla TTS connection (#2828) by @JarbasAl
- Add engine configuration option for Polly TTS (#2706) by @joshuajaharwood
- Add
self.gui.connected()
to check if a GUI is connected (#2682) by @JarbasAl - Add
self.gui.get()
to safely access values in GUI dict (#2820) by @krisgesling - Add
self.gui.release()
to signal that the Skill is no longer using the GUI (#2766) by @JarbasAl - Upgrade Mycroft Skills Kit to v0.3.16 (#2688) by @krisgesling
➔ Find out more
Bugfixes
Skills
- Don't reload skill if a mod time is in the future (#2659) by @forslund
- Initialize status members before bus handlers (#2681) by @forslund
- Fix
dialog_renderer
when no dialog or locale directory exists (#2685) by @katridi - Reorder operations to ensure removed Skills are first unloaded. (#2823) by @krisgesling
- ensure load_status is initialized on load failure (#2735) by @krisgesling
- Handle anonymous adapt intent (#2767) by @forslund
- Fix intent_api following refactor (#2786) by @JarbasAl
Audio Services
- Fix Audioservice startup on system time change (#2689) by @forslund
- Fix UnboundLocalError in AudioProducer (#2780) by @dalgwen
- Add the
--no-video
flag to VLC audio backend (#2791) by @JarbasAl - Improve safety of audioservice calls, particularly in VK tests (#2804) by @forslund
Other Mycroft Services
- Settings - Add optional message argument (#2704) by @krisgesling
- Update to pyee 8.1.0 - improved handling of multithreaded environments (#2724) by @forslund
- Config - Stop location being referenced before assignment (#2809) by @PureTryOut
- Ensure messagebus is connected before reporting that the Enclosure service is ready (#2758) by @krisgesling
- Unshadow Message class in
_handle_pairing_complete
(#2790) by @forslund - Fix typo preventing STT plugins to load (#2748) by @forslund
TTS Engines
- Mimic - Fix
duration_stretch
configuration (#2691) by @forslund - Mimic - Fix memory calculation causing build failures on ARM (#2716) by @el-tocino
- Mimic - Handle missing binary properly (#2718) by @forslund
- Mimic - Send correct conf to Mimic when used as fallback (#2829) by @forslund
- Mimic2 - Fix cache directory error (#2800) by @chrisveilleux
- Google - Fix pronounciation of "m." (#2699) by @gaganpreet
- Google - Upgrade gTTS to v2.2.0 (#2763) by @marvin-w
- Google - Upgrade gTTS to v2.2.2 to fix Google voice (#2831) by @krisgesling
Wake Word Engines
- PocketSphinx - Fallback to English model if configured model does not exist (#2692) by @katridi
- Porcupine Wake Word - Update for newer engines (#2722) by @forslund
GUI
- Fix missing
skill_id
parameter for page interaction and focus events (#2732) by @AIIX - Fix missing remove page implementation, show idle if all pages removed (#2781) by @AIIX
- Don't clear namespace on every system page call (#2814) by @AIIX
- Use the correct delegate, fix layouts, autofit text for System TextFrame (#2815) by @AIIX
Tests
- Voight Kampff - add Given steps to set test timeout (#2663) by @forslund
- Add basic test cases for GUI interface (#2697) by @forslund
- Voight Kampff - fix reset of patched config (#2742) by @forslund
- Only build Mimic once during travis tests (#2745) by @forslund
- Enable simultaneous CI jobs and provide Mycroft logs on failure (#2762) by @krisgesling
- Voight Kampff - Improve error handling (#2793) by @forslund
- Voight Kampff - add method to wait for audio service (#2808) by @krisgesling
- Implement GitHub Actions for linting and unit tests (#2819) by @chrisveilleux
- Use OS default gcc in github workflow (#2830) by @forslund
- Run unit tests on python 3.9 (#2739) by @forslund
Documentation
- Fix documentation for
Lock.exists()
(#2721) by @Nihvel - Point sphinxdocs to new requirements.txt location (#2731) by @forslund
- Add Plugin base classes APIs to readthedocs (#2736) by @forslund
- Fix readthedocs build (#2749) by @forslund
- Clarify that
gui.clear
does not close a Skill (#2769) by @krisgesling - Fix simple typo, retruns -> returns (#2785) by @timgates42
- Add filesystem documentation to readthedocs (#2805) by @forslund
Other changes
- Refactor intent service (#2599) by @forslund
- DeepSpeech - Remove English-only error. DS now supports other languages. (#2705) by @el-tocino
- Setup - allow variants of arch (archarm, ...) to fetch dependencies (#2725) by @emphasize
- Add warning if MSM is using an appstore other than Mycroft Marketplace (#2737) by @JarbasAl
- Setup - Enable utf-8 encoding during dev-setup.sh (#2746) by @forslund
- Run CLA check on all branches (#2759) by @krisgesling
- Remove six from dependencies (#2782) by @PureTryOut
- Refactor - common bus connection method (#2792) by @krisgesling
- Refactor - stop speaking (#2821) by @forslund
v20.08 - It has to be Spring somewhere
Features:
- Allow override of platform animations like talking and thinking to prevent interrupting existing content #2657
- Add more detailed Track Status to Common Play Skill. Provides distinct status codes for different layers of media handling #2674
Bugfixes:
- Fix ValueError on check of file modification date - do not check if list of files is empty #2662
- Fix fresh MSM initialization with no internet connection - adds a missing argument #2677
- A recent change allowed default Skills to update even if the autoupdate flag was set to false. This ensures that flag is respected. #2680
Removal of deprecated items:
pyee.EventEmitter
and our ownThreadedEventEmitter
converted to new Emitters available in pyee #2667- Hardcoded recording timeouts should now be configured in
mycroft.conf
#2668 skills.converse.error
will no longer be emitted, please useskills.converse.response
instead #2669- Internal
startListening
signal will no longer be checked #2670 DialogLoader
class removed in favor of newload_dialogs
function #2671get_http
andremove_last_slash
string utils have been removed #2672- Audio utils that had previously been moved from
mycroft.util
have had their references removed. This includesmycroft.util.is_speaking
,mycroft.util.wait_while_speaking
, andmycroft.util.stop_speaking
. The methods should be called from their new modulemycroft.audio
#2678 - The
imp
package has been completely replaced withimportlib
. This was located in the Audio service loading and loading of the old integration test environment #2679. Audioservice submodules names are now prepended with "audioservice_" to prevent module naming collisions #2684
v20.2.5 The less notorious B.I.G
Features
Add callback hooks to run Mycroft as a service #2601
This adds a simple system of callback hooks to run mycroft as a service or through a single executable. It allows the definition of a wrapper script with handlers for ready states, error states and a watchdog to ensure the system is still running.
The current watchdog implementations are currently only for the speech client (voice data is received from the mic) and the Skills process (skills are updated) due to their natural cyclic structure.
Big thanks to @forslund for this and all his contributions to this release. There are too many to count!
Add GUI support for animated images #2616
New method show_animated_image()
added to Qt GUI framework providing a GUI page for displaying animated gif files. Thanks to @JarbasAl for this and all his new GUI Skills.
Add method for updating playback information from Skills #2619, #2655
This adds a common method for Skills to send playback information and status to the Common Play Skill. There are ongoing discussions about the complete management of playback between Skills, Common Play, and audio services. Special thanks to @AIIX and @JarbasAl for their ongoing work on this.
Gentoo Linux support added to setup scripts #2583
Gentoo users can now run the standard dev_setup.sh
script and their OS will be detected allowing the correct dependencies to be installed. Big thanks to @doczkal for this one!
Snapcraft CI #2597
Continuous Integration implemented for Mycroft Snap releases.
Add 'Skill should not reply' test #2618
A new Voight Kampff Step was added allowing integration tests to check that a particular Skill does not respond to some utterance. This helps to ensure your Skill only responds to questions it can handle reducing unexpected errors.
Add wait_for_message() method #2628
This method will wait for a message of a specific type to be detected on the messagebus, returning the message if detected before the timeout has expired.
Add Festival TTS support #2643
Thanks to @jmontane for this addition, enabling on-device TTS for Catalan (and other language) speakers!
Bug fixes
Workaround for issue on older versions of ncurses #2591
get_wch()
can at times throw errors as reported in Issue #2523, this creates a function wait_for_any_key()
handling the error and retrying.
Prevent audio playing between recording and handling of utterance #2621, #2625
This maintains silence for a short period while Mycroft is actively processing a request providing a better experience for the user. It means media playback completely stops the moment a user asks it to, and prevents short snippets of audio playback if Mycroft is formulating a response.
Fix Skill submodule loading and replace imp with importlib #2327
Replaces the current imp based Skill loader with an importlib based solution. Adds a small change allowing better use of submodules allowing them to reload together with the main module.
Fix Common IoT Skills unable to register entities and scenes #2636
Thanks to @jamesmf for this fix!
Ensure custom timeout is passed to wait_for_response method #2634
Fix Mimic builds on Fedora #2521
Thanks to @countcretinos for this one!
Fix writing multiple settings to file #2652
Thanks to @emphasize for reporting this one.
Improve language configuration handling in IntentService #2650
If the STT service does not send a language code with the message, then the Intent Service will now fallback to the globally defined language, or en-us if none is defined.
Ensure default Skills are installed before initial load #2644
This adds a quick check on load to ensure default Skills are installed, unless they are blacklisted. If not installed it will do so before finalising Mycroft's boot sequence. This will only extend the boot time if important default Skills are not available.
Update Lingua Franca to v0.2.2 #2654
Primarily bug fixes - see release notes for more details. Thanks to @ChanceNCounter, @emphasize, @forslund and @PureTryOut
Disable wake word uploads in preparation for API deprecation #2661
The API endpoint used to upload wake words will be deprecated in the near future and instead shifted to Selene (home.mycroft.ai). To ensure older devices are not making unnecessary post requests to a dead endpoint, the upload has been disabled for devices running v20.2.
Other improvements
- Refactor wake-word waiting and record phrase #2589
- Cleanup settings system #2560
- Improved list of available commands in
mycroft-help
#2613 - Update pyee to v7.0.1 - replaces home-spun threadpool based emitter with ThreadExecutor from pyee #2507
- CI improvements #2537, #2541
- Remove duplicate check for supported languages of Lingua Franca methods #2649. Another thanks to @emphasize for reporting this one.
Community Contributors
Another big thanks to all the Mycroft Community members that contributed to this release:
v20.2.4 Long live the King
Padatious Intent Parser v0.4.8 #2595
This release of Padatious adds support for saving and loading intent models courtesy of @repodiac, and better handles apostrophes thanks to @stratus-ss.
Voight Kampff updated #2576, #2592
Added support for setting user configurations through Given
Steps in the form: "Given the user's {config} is {value}"
.
Added a clean command to remove any test, step and configuration files that have been copied to the Voight Kampff directory by the test runner. To clean up use ./start-mycroft.sh vktest clear
, mycroft-start vktest clear
or mycroft-skill-testrunner vktest clear
.
Updated dependency handling #2562, #2571, #2575
Added "loose" requirements option, allowing pip install to use ">=" instead of "==" for all packages. This is done by setting the MYCROFT_LOOSE_REQUIREMENTS
environment variable. The intention is to make mycroft packaging for linux distributions easier while allowing the git installation to still use a locked set of module versions.
The ever growing requirements.txt has also been split into core requirements, and a range of optional requirements files. This reduces the number of packages being installed unless the system will actually make use of them. It also paves the way for automatic installation of plugin dependencies. Big thanks to @PureTryOut for this one.
Removed xmlrunner
as it is no longer used.
Added initial support for XDG Base Directory Specification #2559
Skills will now read and store settings in the XDG_CONFIG_DIR
if it is set and the device isn't already using the existing settings location in each Skill directory.
Added support for Alpine Linux installation #2584
The standard setup script will now detect Alpine Linux and install the appropriate dependencies. Another big thanks to @PureTryOut for this and the range of work that has gone into making Mycroft compatible!
Fixed add_context decorator #2577
The @adds_context
decorator has optional content that should be passed to the set_context()
method. This was not being passed along. This has been resolved with tests added.
Fixed remove_fallback using original handler #2588
Allows the removal of a fallback handler using the original handler, and not the wrapped handler used internally. Along with a range of tests to verify setup and shutdown of Fallback Skills.
Modernize ESpeak TTS #2581
ESpeak output was produced directly from the executable, this is now through the standard TTS output queue like the other TTS modules. This resolves an issue with wait_while_speaking
.
Added Polly TTS support - for real this time #2585
This got missed in the last release but is definitely included this time. To get setup check out the documentation. Thanks again to JarbasAl from the Chatterbox team for this one!
Bugfix audio service crashes if started without internet connection #2598
The audio service would crash whilst importing the google_tts module on startup if no internet connection was available as it failed to fetch a list of supported languages. This update prevents the crash and adds a cached to use if the remote list is unavailable.
Test, test, test, test, test, test, test...
Mycroft Skills Kit v0.3.15
This release of Mycroft Skills Kit v0.3.15 switches Github authentication to use Personal Access Tokens as the existing username and password method is being deprecated. A huge thanks to Andlo for all his work on this. It also includes a small bugfix to respect the --repo-cache argument courtesy of Jarbas.
IBM Cloud Text to Speech (TTS) #2548
The IBM Cloud Text to Speech connector has been rewritten to handle IBM's new authentication mechanism. Massive thanks to @CodyReinold for this one.
Contributor guidelines cleanup #2551
This update improves clarity, fixes broken links and makes it easier for new developers to contribute to the project . Another big thanks to @CodyReinold
Czech and Polish support #2554, #2556
Initial language support added for Czech by @Tony763 and Polish by @RafalJanicki. Support for these languages is also underway in our Lingua Franca library.
Mimic1 add default core param #2558
When installing Mimic1 with no core paramater, it will now default to a safe value running on a single core. Thanks to @el-tocino for this.
MOAR Tests! #2496, #2569, #2573
A wide range of tests have been added to various utilities and functions. This includes tests for audio, caching, downloads, files, strings and time.
The test runner has also had some tweaks. It will explicitly execute with Python 3, addressing an issue where the system would hang if a generic Python alias did not exist. It will also ignore directories not intended to be tested with Pytest. Big thanks to @PureTryOut for both of these fixes!
Dependency updates #2551
Pillow has been updated to v7.1.2
The only thing better than a test is... many tests
This release is focused on testing and includes the Voight Kampff test suite along with improved unit tests. Of course, the wheels of the community is always spinning so there are some juicy additions and fixes as well.
Voight Kamff #2506, #2530, #2540, #2522,
The new behavioral skill / core test suite is run on each PR to mycroft-core and mycroft-skills allowing easier identification of bugs and bad behavior. For more information on how to write this type of test check out the official documentation. The system is still in early development and will be built out more and more to completely replace the current test system.
Enable multiple snowboy hotwords #2499
Thanks to awesome work by @dalgwen Mycroft now supports using multiple snowboy hotwords.
Add config options for listening timeouts #2536
To allow longer voice input or timeout after silence these new config options can be used.
Polly TTS
@JarbasAI polished up his old Polly TTS Pull request and it finally got merged, giving mycroft the ability to use Polly for rendering speech of a variety of languages.
Google TTS automatic language #2534
The Google TTS backend no longer require a specific configuration, instead it tries to determine the correct language code to use from the global lang config option. Many thanks to @luca-vercelli for this contribution
Fix IBM Watson TTS #2514
IBM Watson's TTS Api has been updated and now Mycroft's interface has been updated as well to match.
Shutdown sequence #2529, #2538, #2543
These updates fixes a couple of issues with the shutdown process of skills and enclosure allowing them to be shutdown without being killed.
Support for reading the Mark-1's Eye colour #2471
@JarbasAI's second PR this release, this adds an interface to retrieve the current color of the Mycroft Mark-1 eyes.
Simplify Mycroft gui bus connection #2533
The GUI interface was simplified to use a single websocket connection while still isolating the clients, this fixed a regression due to upgrade of Tornado.
Upgrade lingua-franca to 0.2.1 #2512, #2515
This fixes some issues with rendering numbers and dates. Many thanks to @ChanceNCounter and the LF-crew for this.
Add tests and fix bugs surrounding the converse system #2503
Adding tests is always a good way to find and squash bugs. This handles a couple of modification during iteration issues.
Miscellaneous
- Spelling fixes courtesy of the very nice person @tycrek #2487
- Simplify the converse system using the
wait_for_response()
method #2479 - Upgrade psutil to version 5.6.6 #2501
- Improve Danish translations by the very friendly @andlo #2520
- Non Mark-1 devices now also updates the version on the webpage #2528
- Update documentation of running core without backend by the friendly @kelnos #2531
- Fix possible voice client crash if mic is initialized muted #2542
A big thanks to all who has contributed to this release, you are all my favorite persons in the world.
v20.2.1
This contains mainly minor bugfixes.
Upgrade msm to 0.8.7 #2484
Fixes issues loading skills if a skill is installed using a git/git+ssh url
Fix reset converse #2491
Fixes an issue where converse state wasn't informed on user silence
Update enclosure version #2489
Fixes updating the enclosure firmware on each boot.