Releases: OpenVoiceOS/ovos-core
Release 0.0.4
Release Notes
- users can now override default resource files, this means you can add language support to skills locally or personalize the spoken dialog files locally - #131
# you can add translations by simply creating the correct files, they will be picked up by core
{$XDG_DATA_HOME}/mycroft/resources/{skill_id}/locale/{lang}/some_file.intent
- audio files can now be queued together with TTS, this means you no longer need to manage the playback and can be sure they wont play over mycroft speech but after it, allowing for richer skills with sound effects - #180
# in a skill you can queue audio with this message
msg = Message("'mycroft.audio.queue'", {"filename": "path/to/file"})
self.bus.emit(msg)
-
common query functionality has been made into a first class intent stage, in mycroft-core it is a fallback skill with special treatment, this means the skill can get out of sync with core or incompatible between branches such as dev and mark2, skill-ovos-common-query is now
⚠️ deprecated⚠️ - #127 -
the utterance examples based intent parser in mycroft is padatious, however this requires libfann2 which makes things a bit troublesome to package, it is also copyleft which makes it incompatible with our universal donor policy, as such this release allows you to replace padatious with padacioso, a more deterministic and regex based alternative with similar performance - #183
{"padatious": {"regex_only": true}}
-
OCP is now natively supported by core, it remains as a plugin for compatibility with mycroft-core but is now the default playback manager and can not be disabled in ovos-core. automated unittests have been added to OCP both for mycroft-core and ovos-core - #154
-
Configuration handling has been refactored, a new filewatch utility was introduced that makes config changes be picked up instantaneously, many thanks to @forslund for all the help and feedback - #105
-
Skill settings changes on disk will now be picked up by core without needing a restart - #139
Changelog
V0.0.4 (2022-08-18)
Implemented enhancements:
- Bump dependencies to non-alpha versions #176 (NeonDaniel)
- add Workshop integration tests #187 (NeonDaniel)
- feat/integration_tests #184 (NeonJarbas)
- refactor/padacioso #183 (NeonJarbas)
- feat/queue_audio #180 (NeonJarbas)
- refactor/native_sources #179 (NeonJarbas)
- Add Translations and Language support for de es pt it fr nl #177 (AIIX)
- Adds advanced configuration GUI interface for drop down menu #174 (AIIX)
- refactor/ovos_config_pkg #167 (NeonJarbas)
- Add display configuration for smartspeakers #164 (AIIX)
- feat/yaml_support #162 (NeonJarbas)
- Update default cache directory to
XDG_CACHE_HOME
#159 (NeonDaniel) - feat/speak_error_flag #152 (NeonJarbas)
- refactor/rename_audiospeech_services #151 (NeonJarbas)
- refactor/native_ocp #154 (NeonJarbas)
- Add About Page To Additional Settings and SmartSpeaker Extension #149 (AIIX)
- Refactor audio module into service #146 (NeonDaniel)
- refactor/ready_check_bus_spam #144 (NeonJarbas)
- refactor/skill_reload #143 (NeonJarbas)
- feat/feat/improve_cq_matching #141 (NeonJarbas)
- Add color scheme modes and color scheme custom generator support #140 (AIIX)
- feat/skill_settings_filewatch #139 (NeonJarbas)
- feat/setup_events #136 (NeonJarbas)
- feat/user resources #131 (NeonJarbas)
- port of the resource file handling refactor from mk2 #130 (NeonJarbas)
- refactor/improve_config #105 (NeonJarbas)
- refactor/tts_mode #128 (NeonJarbas)
- feat/common_query service #127 (NeonJarbas)
Fixed bugs:
- refactor/gui_cleanup #182 (NeonJarbas)
- Update references to
ovos_config
#178 (NeonDaniel) - Update release tag workflows to include version change commits #175 (NeonDaniel)
- Prevent duplicate language intent registration #173 (NeonDaniel)
- Handle 'None' configuration values for deprecated directory params #172 (NeonDaniel)
- Add config reference for backwards-compat #171 (NeonDaniel)
- Handle recursive inspection of resource directories #170 (NeonDaniel)
- fix/hotword reload #169 (NeonJarbas)
- Move ovos_workshop import out of top-level to allow load without skills extra #166 (NeonDaniel)
- Patch typo in warning log #165 (NeonDaniel)
- Resolve occasional config init bug #161 (NeonDaniel)
- Fix typo in resource resolver #158 (NeonDaniel)
- fix/skill_settings_callback #155 (NeonJarbas)
- Use phal instead of enclosure and enable venv #157 (AIIX)
- fix bigscreen start #156 (AIIX)
- Update changelog action #148 (NeonDaniel)
- hotfix/deprecated_method #147 (JarbasAl)
- fix/core_resources #145 (NeonJarbas)
- fix/config_hotreload #142 (NeonJarbas)
- Fix/qml resources #135 (NeonJarbas)
- fix/filesystem_path_collision #138 (NeonJarbas)
- fix/identity_file migration [#134](https://git...
Release 0.0.3
Release Notes
- runs offline by default!
- introducing gui extensions
- introducing fallback STT
- introducing VAD plugins
- deprecate enclosure in favor of PHAL
- support for multiple hotwords
- skills can now live in XDG directories, no longer in /opt/mycroft, this solves a lot of permission related issues while enabling multi user setups
- skills can now provide a setup.py, this means they can be pip installed and managed like regular packages
- goodbye msm, you wont be missed
Changelog
V0.0.3 (2022-05-09)
NOTE: due to a technical error 0.0.2 was skipped, this was meant to be 0.0.2!
Fixed bugs:
- fix/handle bad VAD plugin #117 (JarbasAl)
- fix/audio service duplicate code #109 (NeonJarbas)
- Fix/plugins shutdown #110 (NeonJarbas)
- py3.10 compat #108 (NeonJarbas)
- remove skill settings bad migration path #107 (NeonJarbas)
- Fix additional settings UI #106 (AIIX)
- fix/skill settings using wrong xdg path #104 (NeonJarbas)
- fix/remove skill updater lock #103 (NeonJarbas)
- Add is_alive service check support to GUI Service #102 (AIIX)
- Fix bug in streaming STT audio stream handling #98 (NeonDaniel)
- Fix/tts logs and shutdown #96 (NeonJarbas)
- fix/fallback_tts #95 (NeonJarbas)
- monitor all logs #94 (NeonJarbas)
- fix/loop_race_condition #93 (NeonJarbas)
- fix/mycroft_ready #92 (NeonJarbas)
- fix/double_stt #91 (NeonJarbas)
- Fix/ready timeout #88 (NeonJarbas)
- Handle empty priority/blacklist configuration params #85 (NeonDaniel)
- call device prepare after skill manager has started #80 (AIIX)
- Mismatched converse event names #68
- Fix/unify converse namespace #71 (JarbasAl)
- Fix/changelog text #70 (JarbasAl)
- Copyleft detected - list of deps & util to detect them #51
- Port mk2 GUI service with additional improvements to core #66 (AIIX)
- fix/skill_manager_events #62 (NeonJarbas)
- Fix/adapt lang missing #61 (NeonJarbas)
- Fix/intent issues #59 (NeonJarbas)
- fix/skill_settings backwards compat #55 (NeonJarbas)
- fix/log config #48 (NeonJarbas)
- fix/speech #47 (NeonJarbas)
- speech client systemd hooks #39 (NeonJarbas)
- feat/ovos_lf + fix timezone issues #37 (NeonJarbas)
- Fix: show text delegate as per autofit label refactor #36 (AIIX)
- fix/default_xdg #31 (JarbasAl)
- fix/priority_skills #23 (JarbasAl)
- fix/RemoteTTS+remove_requests_futures_dep #14 (JarbasAl)
- refactor/better_sleep_mode #10 (JarbasAl)
Implemented enhancements:
- refactor/default_offline #113 (NeonJarbas)
- Implement Color Schemes and Settings UI updates #97 (AIIX)
- Port/vad #81 (NeonJarbas)
- Rewrite MutableStream class for microphone. #82 (NeonJarbas)
- SmartSpeaker Extension: Add GUI interface for additional settings #86 (AIIX)
- feat/fallback_stt #77 (NeonJarbas)
- Add GUI Extensions Support #73 (AIIX)
- port - mk2 gui refactor #42
- Refactor/skill process status #67 (NeonJarbas)
- feat/configurable_fallback_tts #49 (NeonJarbas)
- msm disabled by default #24
- feat/PHAL #46 (NeonJarbas)
- refactor/settings continued #44 (NeonJarbas)
- feat/ovos_conf from ovos_utils #34 (NeonJarbas)
- Refactor/converse #32 (NeonJarbas)
- Refactor/standardize skill id usage #28 (JarbasAl)
- Refactor/ simplify skill loading #27 (JarbasAl)
- refactor/combo_lock #15 (JarbasAl)
- refactor/settings #11 (JarbasAl)
- Feat/skill plugins #9 (JarbasAl)
- refactor/gui_launcher #8 (JarbasAl)
- feat/extra_skill_dirs #7 (JarbasAl)
- refactor/ovos_utils #5 (JarbasAl)
- feat/multiple_wakewords #2 (JarbasAl)
- feat/ovos_plugin_manager #1 (JarbasAl)
"Breaking" changes:
- deprecate/optional_xdg #112 (NeonJarbas)
- refactor/add_deprecated_module #99 (NeonJarbas)
- deprecate DevicePrimer #87 (JarbasAl)
- Refactor/deprecate enclosure #29 (JarbasAl)
- refactor/goodbye_msm #25 (JarbasAl)
- refactor/deprecate mycroft.tts #16 (JarbasAl)
Tests and Automations:
0.0.1 - OpenVoiceOS - core
🎉 ovos-core exists now!
Configuration
- audio backends deactivated by default if not present in config ec8ac01
- optional ntp sync 62f322d
- offline support (do not wait for internet to load skills) 6160306
- optional msm e0b2ffe
- optional backend fd9a01c
- tts cache
min_free_percent
is now configurable (per TTS engine) a07378c - dedicated bus connection per skill 1f4fe33
- instant_listen 127dad4
- experimental config option to not require the pause between "hey mycroft" and actually issuing an order
- skill permissions - initial experiments a169ad8
- converse handling
- skill whitelist/blacklist mode - restrict converse to certain skill_ids
- configurable converse timeout
- can be set globally and per skill
- initial concept of converse priority, needs to be set per skill in .conf
- converse activations
- skill whitelist/blacklist mode - restrict converse (de)activation to certain skill_ids
- cross (de)activation setting - only skills can (de)activate themselves
- configurable max consecutive number of skill activations (per minute)
- can be set globally and per skill
- fallback handling
- skill whitelist/blacklist mode (restrict fallbacks to certain skill_ids)
- fallback skill priority override (user defines fallback order)
- no fallback priority limit (can go above 100 now)
- converse handling
Features
- skills full XDG support aaa159a
- will load skills from all XDG dirs, skills are considered data, not code
- the "classic" skills folder is loaded last and has the highest priority, this ensures backwards compatibility
- skill_ids need to be unique and correspond to the skill folder name, by convention repo.author
- skills in higher priority directories replace skills with same skill_id in previous directories (no duplicate skill loading)
- empty folders are assumed to mean the skill should not be loaded, ie, a user can disable a system skill without uninstalling or messing with .conf
- if a new skill is detected and a loaded skill exists with same id, the loaded skill will be unloaded (assuming the new skill is in higher priority directory)
- audio service support for media player seek bar 8d881f5
- get_track_length
- set_playback_time
- get_playback_time
- all methods now support timedelta objects
- new messagebus api to clear config cache (force a reload on
Configuration.get()
) 434da34 - add phonetic spellings for
ip
andwikipedia
to help TTS say it right 41bec48 - allow all TTS engines to have a persistent cache (creation of the cache is out of scope) 6b86f00
- used to be mimic2 exclusive functionality
- active skill events - enhanced version of mycroft-core/pull/1468
- adds
self.activate()
andself.deactivate()
in MycroftSkill class - adds "intent.service.skills.deactivated" event when IntentService removes a skill from active list
- adds "intent.service.skills.activated" event when IntentService adds a skill to active list
- adds
def handle_deactivate(self, message):
callback in MycroftSkill class - adds
def handle_activate(self, message):
callback in MycroftSkill class
- adds
Language support
- fix pairing (replace hardcoded english utterance with bus event) cf4e994
- fix locale switching + timezone handling f0b07d9
- all individual services setup the locale (timezone + default lang) on loading, this means not-skills-service (eg. a TTS engine) using lingua_franca will have the correct locale
- timezone conversion utilities made wrong assumptions about UTC and naive datetimes
⚠️ bug still present in lingua_franca MycroftAI/lingua-franca#209- recommended that you import the time utilities from
mycroft.util.time
- if running under mycroft-core or using lingua_franca you get wrong timezones, if running under ovos-core you get the fix
- recommended that you import the time utilities from
- flexible lang dialect support f002001
- when loading resources check for all language code variations and returns best
- changing language to en-gb should load british dialect variations if available, but en-us should still be used if en-gb missing
- keep original message.data in intents b175e4e
- intent handlers now get the same info that
converse
does + intent data - helps with language support, where language can come from STT/wakeword/config
- intent handlers now get the same info that
- add multi lingual support 7e43162
- every bus message can now request/inform about a specific language
- Wakeword/STT can detect language
- Hivemind voice satellite can send it's own language
- introduce the concept of
secondary_languages
- load resources and intents for all configured languages
- every bus message can now request/inform about a specific language
- skills self.lang is now session based instead of loaded once from .conf c967826
- intent engine per language 8c96e5e
- Improves accuracy since only lang specific intents are taken into account now
- make the dialog_renderer load lang resources on demand
- Remove fallback to en-us for missing resource files
HiveMind support
- the whole language support section is relevant to hivemind, scroll up if you didn't read it!
- make audio service respect target/destination in message.context c100394
- ensure usage of .forward and .reply methods 26aaadc
- covers skills / intents / scheduled events
- skill_id is now always included in message.context
Bug fixes
- refactor/readiness+enclosure 847e822
- the generic enclosure partially handled some onboarding functions that dont belong there
- completely remove mk1 specific code to mk1 enclosure class (was duplicated)
- move readiness check from enclosure to skills service (enclosure is optional)
- make readiness conditions configurable to account for headless installs and other setup specific considerations
- hotfixes: 9257bc9
- dont raise exception on directory creation error
- hotfix/phoneme_bug
- fix/signal_remove_race_condition
- make merge_dict return the modified dict for convenience (sync with ovos_utils)
- handle missing dialogs in get_response method fa40029
- fix process_status report ready at correct time 758ce53
- support optional stt credentials (google works with None) 5d2307a
- make mycorft.conf priority skill list use deterministic skill_id instead of skill name 58427c1
- fix stop handling cfc5fb6
- if skill failed to load stop was called and could throw an exception (skill not fully initialized!)
- if stop took more than 100ms it was assumed to be handled and a message was wrongly sent
- remove tts audio extension assumptions, determine extension on the fly a07378c
- ipc signal permissions c1ff029
- ensure reload_skill flag is respected 7e440b0
- this probably wasn't happening in the wild at all, refactored while searching for a related bug
- it is still important for derivative projects importing mycroft as a lib
- allow event_scheduler to run as a daemon c1ce28f
- fix skill shutdown sequence, order of operations was not safe befbc55...