Skip to content

Releases: OpenVoiceOS/ovos-core

Release 0.0.4

18 Aug 19:20
Compare
Choose a tag to compare

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:

Fixed bugs:

Read more

Release 0.0.3

09 May 23:07
b6981b8
Compare
Choose a tag to compare

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!

Full Changelog

Fixed bugs:

Implemented enhancements:

"Breaking" changes:

Tests and Automations:

Read more

0.0.1 - OpenVoiceOS - core

14 Nov 13:55
Compare
Choose a tag to compare

🎉 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)

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 and wikipedia 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() and self.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

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
  • 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
  • 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
  • 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...
Read more