Commit Graph

3387 Commits (sj201r5)

Author SHA1 Message Date
Michael Hansen 4159f9d646 Clear properties changed event in network connect 2021-12-08 15:48:54 -05:00
Michael Hansen a303177ed5 Check wifi/ethernet device states directly for connectivity 2021-12-08 15:17:56 -05:00
Michael Hansen 4ff744f1b4 Add dbus default settings to mycroft.conf 2021-12-08 12:03:59 -05:00
Michael Hansen 9e67748bea Use configuration for dbus address 2021-12-08 11:08:35 -05:00
Michael Hansen 46b02e25cc Make clock sync activity synchronous 2021-12-07 22:39:52 -05:00
Michael Hansen e16e9478e3 Add activity/__init__.py 2021-12-07 17:22:03 -05:00
Michael Hansen f0eb10d5ea Move some DBus code back into network_utils 2021-12-07 17:21:47 -05:00
Michael Hansen 8f0a5d65a4 timedatectl still failing in mark2 2021-12-07 16:28:12 -05:00
Michael Hansen 7fb2847d53 Merge branch 'feature/mark-2-boot' of https://github.com/MycroftAI/mycroft-core into feature/mark-2-boot 2021-12-07 15:18:57 -05:00
Michael Hansen 07c88b980d Add clock sync activity 2021-12-07 14:32:57 -05:00
Chris Veilleux 6e5f46cbac added a wait into the synchronize clock method 2021-12-07 13:27:51 -06:00
Michael Hansen d233fbd2a0 Merge branch 'feature/mark-2-boot' of https://github.com/MycroftAI/mycroft-core into feature/mark-2-boot 2021-12-07 14:12:58 -05:00
Michael Hansen 369dee5ec1 Add network/internet connect activities 2021-12-07 14:10:41 -05:00
Chris Veilleux ea5cf61361 Added a function to determine if time is synchronized via NTP and an activity in the enclosure service to leverage it. 2021-12-07 13:06:57 -06:00
Chris Veilleux 7f2d4bd25f Defining message bus event handlers before a message bus connection is established can cause errors. 2021-12-06 10:53:40 -06:00
Chris Veilleux 0eb5a1fc44 Fix a race condition when waiting for initialized services 2021-12-03 18:14:21 -06:00
Kris Gesling 294be08efc Prevent loss of data when migrating from latest to stable
The XDG migration code was replacing newer directories with
old blank ones.
2021-12-03 09:39:23 +09:30
Chris Veilleux 712110e17f Removed DevicePrimer class. All functionality moved to enclosure 2021-12-02 16:04:37 -06:00
Chris Veilleux 409fff9390 Removed if statement that checked for the existence of an enclosure. The create_enclosure() method always returns an instance of an Enclosure class 2021-12-02 16:04:37 -06:00
Chris Veilleux 9819dbf2f7 Logging improvements 2021-12-02 16:04:37 -06:00
Michael Hansen c49868905c Remove DEBUG log from mark2 connectivity check 2021-12-02 16:04:17 -06:00
Michael Hansen a296952efa Add network/internet polling thread to mark2
====  Tech Notes ====
Mark2 enclosure uses NetworkManager to poll for network/internet
connectivity.

On state change, outputs:
mycroft.network.connected
mycroft.network.disconnected
mycroft.internet.connected
mycroft.internet.disconnected

Every polling interval, outputs:
mycroft.network.state (data.state=connected/disconnected)
mycroft.internet.state (data.state=connected/disconnected)
2021-12-02 16:04:17 -06:00
Chris Veilleux 0328043f7c Added log messages, changed mycroft.ready to mycroft.started and added handler for mycroft.started 2021-12-02 13:09:21 -06:00
Chris Veilleux 4b7dd93b85 Fixed bug with method signature and added log message for device ready for use. 2021-12-02 13:08:42 -06:00
Michael Hansen 7f19bad4f3 Add unit tests for NetworkManager
==== Fixed Issues ====
Added unit tests for NetworkManager.
Restart DBus thread if an error occurs.
2021-12-02 11:07:47 -05:00
Michael Hansen 503c081d95 Add NetworkManager for checking connectivity
====  Tech Notes ====
Connects to org.freedesktop.NetworkManager over DBus to determine
connectivity status.

==== Environment Notes ====
Adds dbus-next Python package as a requirement
2021-12-01 16:15:02 -05:00
Kris Gesling be45edb54f autoformat 2021-12-01 09:32:24 +09:30
Kris Gesling ae99974398
Merge pull request #3045 from forslund/bugfix/config-creation-at-import
Do not create configs folders until writing
2021-12-01 09:17:41 +09:30
Kris Gesling d479a79b7e
Merge pull request #3033 from forslund/bugfix/config
Fix config priority
2021-12-01 09:13:28 +09:30
Åke Forslund 6b5d45e507 Do not create configs folders until writing
This replaces save_*_path with usage of the xdg_*_home when handling
config files. This means the config folders will not be created unless
actually written to.

The check for whether a directory needs to be created is handled behind
a lock to avoid race conditions
2021-11-30 22:50:09 +01:00
Chris Veilleux 982b79482c move enclosure logic from skill service to enclosure service 2021-11-30 15:44:09 -06:00
Chris Veilleux aca4d1a2f6 improve enclosure initialization logging 2021-11-30 15:41:57 -06:00
Chris Veilleux 53ffd737a0 move some steps in the startup sequence so that the message bus connection is established as early as possible. this will facilitate status updates occurring as soon as possible as well. 2021-11-30 15:40:40 -06:00
Chris Veilleux ef7009dfbc PEP8 refactoring 2021-11-30 15:40:40 -06:00
Chris Veilleux 3d26fa9ada Add service ready event and improve logic to determine if device is ready. 2021-11-30 15:40:27 -06:00
Kris Gesling 89cfad7943
Check if GUI is connected rather than maintain list of platforms (#3025)
* Check if GUI is connected rather than maintain list of platforms

There are already many Mycroft platforms that have GUIs
and this will only grow. We want to know if the device
has a GUI connected rather than if it is in a pre-defined
list of platforms.

* Create a mock GUI with a settable connected attribute
2021-11-24 14:51:10 +09:30
Kris Gesling 77549d01e2
Remove incorrectly added args in GUIWebsocketHandler methods (#3036)
PR #2879 updated the websocket-client and changed function
signatures to account for API changes in that package. These
were falsely changed as the GUI bus does not use the
websocket-client.

Consistency would be good however modifying the protocols
would require significant work. For now we have two slightly
different bus interfaces.
2021-11-22 15:00:20 +09:30
Åke Forslund 70df575d43 Make log settings not cache local only config
After startup the cached config would be without remote config. This
makes sure the config without remote isn't cached.
2021-11-09 21:04:58 +01:00
Åke Forslund 5ff2cb099f Fix order of configs
The old SYSTEM config was prioritized lower than the remote config
2021-11-09 20:51:38 +01:00
Genei180 ef56d71462
Added Possibility for ESpeak Config (#3020)
Added Possibility for ESpeak Config
2021-11-09 15:07:33 +09:30
Kris Gesling ea157598d7
Merge pull request #3022 from MycroftAI/bugfix/gui-namespace-race-cond
Fix race condition in GUI namespace insertion
2021-11-05 06:12:08 +09:30
Kris Gesling 131a9ed03f PEP8 2021-11-04 20:53:00 +09:30
jarbasal f8f640e3e5 fix/race condition dictionary changed iteration
bus events could cause the dict to change while being iterated
2021-11-04 13:37:54 +09:30
Siavash Mollayi dca1184bd5 Azerbaijani language support 2021-11-03 15:57:34 +03:30
Gaëtan Trellu 0247b3a4b5
[log_format] Add an option to change the log format (#3016)
* [log_format] Add an option to change the log format

Hacing an option to change the log format could be useful when logs
are shipped into an aggregator such as Elasticsearch.

The current format is very hard to parse.

* [log_format] Set default Formatter

Because mycroft.configuration.Configuration() class import LOG class,
a default Formatter have to be defined before import the
mycroft.configuration.Configuration() class.
2021-10-29 14:59:22 +09:30
Bart Ribbers 34ee3a9a84
Upgrade websocket-client to 1.2.1 (#2879)
* Upgrade websocket-client to 1.2.1

core equivalent of https://github.com/MycroftAI/mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility. Since
messagebus-client was going to depend on websocket-client 1.2.1, let's
do the same in core

* Bump message bus client and tornado versions

New version of the messagebus-client released.
Upgraded Tornado to match new function signature.

* Revert removal of websocket-client

It is still used in the `mycroft.client.text.gui_server`

Should investigate removal of this so that websocket client versions do not need to be
kept in sync between mycroft-core and mycroft-messagebus-client.

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-10-28 14:42:23 +09:30
Kris Gesling 3495acf9ab
Merge pull request #3003 from Joanguitar/dev
Add reusable PadatiousMatcher to speed up intent matching
2021-10-21 12:25:34 +09:30
Chris Veilleux 5229f61bbf Fixed formatting error in skill loader log message 2021-10-15 14:51:05 -05:00
Kris Gesling 99be84df2e Add Github Action for pushing to gitlab 2021-10-04 16:20:35 +09:30
ken-mycroft 10fd812f2b Improve confidence calculation for Common Query (#2986)
* Improve confidence calculation

* Add actual noise words file

* Update expected test confidence levels

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-09-27 14:59:57 +09:30
Kris Gesling 2a6bb90c9f
Merge pull request #2963 from forslund/feature/update-adapt-keyword-registration-message
Update key names in adapt keyword registration message
2021-09-27 10:30:12 +09:30
Åke Forslund f709bb9a1e Use IntentServiceInterface in MycroftSkill.register_vocabulary()
This moves the message logic for adapt keyword registration into a single location.
2021-09-26 19:15:21 +02:00
Åke Forslund 693100e8c6 Match keyword entity terms in Mycroft with Adapt
This changes the internally used names for entities and entity values when
sent on the messagebus and used interanally in the intent service from start / end to entity_value and entity_type.

This makes the terminology easier to understand and follow across into Adapt.

The old terms are still included and usable for compatibility but should be
removed in an upcoming major release (22.02).
2021-09-26 19:15:17 +02:00
ken-mycroft 5e81e2747b
Improve confidence calculation for Common Query (#2986)
* Improve confidence calculation

* Add actual noise words file

* Update expected test confidence levels

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-09-20 16:33:28 +09:30
Joan Palacios 0f98c566b9
Removed lru_cache 2021-09-16 13:31:22 -04:00
Joan 863e7844d1 Padatious doesn't need to run 3 times 2021-09-16 12:48:23 -04:00
Daniel McKnight 600aa76206
Add 'utterances' to message emitted to skill intent handler (#2997)
* Add 'utterances' to message emitted to skill intent handler

* Reformat comment to resolve PEP warnings

* Update comments per PR feedback

* Cut line-length for style compliance

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-09-13 11:15:57 +09:30
Chris Veilleux 06253906fc
Merge pull request #2979 from MycroftAI/bugfix/release-gui-on-shutdown
Release GUI on Skill shutdown or reload
2021-09-10 16:30:02 -05:00
Kris Gesling 4bce5345cb
Merge pull request #2985 from MycroftAI/feature/gTTS-warning
Add warning for anyone loading GoogleTTS
2021-09-07 16:09:05 +09:30
devs-mycroft 13539d3397 Version bump from 21.2.0 to 21.2.1 2021-08-27 03:02:54 +00:00
Kris Gesling 8a68c88bcf Add warning for anyone loading GoogleTTS 2021-08-27 09:49:40 +09:30
Kris Gesling 109e8ca482 resolve merge conflict 2021-08-17 23:19:14 +09:30
Kris Gesling d26201d978 Release GUI on Skill shutdown or reload 2021-08-17 16:40:05 +09:30
Aditya Mehra 9c380202bc add fullscreen fix 2021-08-17 15:58:27 +09:30
Kris Gesling 4df863633d Merge dev pre-XDG into feature/mark-2
This includes all commits up to but not including PR #2794
2021-08-17 15:56:42 +09:30
Kris Gesling 34ef8752ec Demote cpu temp and led log messages to debug 2021-08-17 15:41:58 +09:30
Chris Veilleux 8fcfa901c3
Merge pull request #2970 from MycroftAI/feature/mycroft-skills-adaptintent
Provide AdaptIntent from mycroft.skills
2021-08-13 14:53:46 -05:00
Kris Gesling 196e9750e3
Merge pull request #2967 from AIIX/fix/webview_fullscreen
add fullscreen fix for webviews
2021-08-11 09:44:05 +09:30
Kris Gesling eadb5c9985 Provide AdaptIntent from mycroft.skills
This is convenience for Skill developers who can now import
all standard items from a single level. Eg:
from mycroft.skills import MycroftSkill, intent_handler, AdaptIntent
2021-08-09 15:55:04 +09:30
Aditya Mehra 8be5e9ba72 add fullscreen fix 2021-08-06 14:32:52 +09:30
Åke Forslund 4258e2f2ed Reorder imports of mycroft.configuration 2021-08-05 10:04:45 +02:00
jarbasal 87d22d30a4 fix cyclic imports with LOG
The mycroft.util.log module called LOG.init() which needs to read the config,
the configuration module imports the log system to log causing cyclic import
issues.

This moves the LOG.init() call out of the log module making it possible
to use the normal config system to init the logs and does a slight
re-arrangement so that the uninited log can be used.
2021-08-05 10:04:45 +02:00
Åke Forslund 3fd96cf71b WIP Review comments
- Add TODO for 22.02 to remove the compatibility code
- Make Warning a single Log statement
- mycroft-config script now uses XDG-environment variable
- Remove redundant code
- Replace hard coded references to ~/.config
- Explicitly remove new path before move of "filesystem" (if needed)
2021-08-05 10:04:45 +02:00
Åke Forslund 9029dc1f41 Slight cleanup
- Make XDG usage more visible by using the xdg module prefix
- fix overloaded python keywords
- remove unused imports
2021-08-05 10:04:45 +02:00
Åke Forslund 8e69d4616d Correct resolution order for resolving log configs 2021-08-05 10:04:45 +02:00
Åke Forslund 28017993c5 Restore system locations to mycroft.configuration
Fixes issue with Timer skill
2021-08-05 10:04:45 +02:00
Bart Ribbers e20443b824 Use XDG Base directories for settings, cache and runtime data
Improve deprecation warning message
2021-08-05 10:04:45 +02:00
Kris Gesling 313f4e8759
Merge pull request #2946 from MycroftAI/refactor/vk-test-helpers
Improve the speed of waiting for dialogs helper function
2021-08-05 09:29:17 +09:30
Kris Gesling 7c413de32c
Merge pull request #2956 from AIIX/web_enable_request_feature
Add feature request functionality to webviews
2021-08-04 11:42:45 +09:30
Kris Gesling a794db0c9a Make network tests configurable
Previously test URIs were hardcoded.
They can now be configured in mycroft.conf
2021-08-02 21:00:05 +09:30
jarbasal 88818bd52f Fix loading of audioservice plugins 2021-07-26 21:17:17 +09:30
jarbasal 24c4ba4a05 Fix loading of audioservice plugins 2021-07-23 09:17:58 +02:00
Aditya Mehra 45d5d9e478 Add feature request functionality to webviews 2021-07-23 15:14:06 +09:30
Kris Gesling 31e1e2d857
Merge pull request #2927 from ChanceNCounter/fix/lang-none
stop passing lang=None to Lingua Franca
2021-07-12 21:46:17 +09:30
Chris Veilleux fbb1d06adc Merge remote-tracking branch 'origin/refactor/vk-test-helpers' into refactor/vk-test-helpers 2021-07-09 15:43:25 -05:00
Kris Gesling b3a0b3b1e4
Merge pull request #2938 from forslund/bugfix/tts-returned-cache-path
Fix TTS using the returned path
2021-07-08 11:56:32 +09:30
Chris Veilleux 18cb28088d Added comments to document race condition 2021-07-06 13:48:52 -05:00
HKalbasi 28c52fef75 fa-ir localization initialized (#2778)
==== Localization Notes ====
fa-ir: 35 strings added
2021-07-06 07:10:23 +09:30
Ken Smith ff01b7388b add pause and resume ability to tts playback thread and use it during barge in 2021-07-02 12:12:07 -04:00
Åke Forslund 0ae02b5939 Fix TTS using the returned path 2021-07-02 08:34:03 +02:00
Kris Gesling 6099da18b3
Merge pull request #2934 from MycroftAI/bugfix/tts-audio-file-path
Fix #2929: use returned TTS audio file path
2021-06-30 07:03:01 +09:30
Kris Gesling 0394568704 Use returned TTS audio file path
This reverts an unintentional breaking change.
A TTS engine may return a different file path than was requested.
This again uses the returned path but adds a deprecation warning
that this behaviour will no longer be supported in an upcoming release.

Fixes #2929
2021-06-29 21:53:53 +09:30
Kris Gesling 0cbd040a55
Merge pull request #2900 from MycroftAI/bugfix/common-play-active
Add Common Play to active Skills when invoked
2021-06-29 20:59:33 +09:30
Kris Gesling 21eabceb29 Do not create a 'None' cache directory
The persistent_cache_dir was assigned None if no preloaded_cache existed.
This was then created as a directory when it's clearly not needed.
2021-06-25 14:26:14 +09:30
ChanceNCounter a211441acc stop passing lang=None to Lingua Franca
LF's only breaking change over the past two versions has been the
deprecation of `lang=None` as a valid parameter. This is because the new
language loading paradigm wants to load certain functions on the fly,
which it cannot do when it is explicitly told to look for a null lang.

I've addressed this by passing `lingua_franca.get_default_lang()` where
the `lang=None` call remained.

Bonus: Gets rid of over 200 DeprecationWarnings in unit tests!
2021-06-23 21:56:19 -07:00
Kris Gesling 02faba9db8 fix indentation error 2021-06-17 15:25:23 +09:30
Kris Gesling aa83b9f7c0 Merge branch 'skill_control' into feature/mark-2
As requested.
2021-06-16 23:11:53 +09:30
Kris Gesling 2c598fd96b Merge branch 'dev' into feature/mark-2 2021-06-15 12:01:18 +09:30
Åke Forslund 5d3393b935 Make TTSCahce safer
Add __contains__ method to TTSCache, The cache contains a SHA if the SHA is
known and all expected files exists on disk.

This is handles unexpected system events in a more consistent manner and
will still be fast for the case where a new sentence needs to be
synthetisized.
2021-06-10 09:33:06 +02:00
Kris Gesling 6d57b4a855 Remove Mark II specific deprecation notices.
These were being perceived by the community as mycroft-core deprecations
Ducking is required on other platforms so I think it's worth waiting to
see how we implement that before actually deprecating the methods.
2021-06-10 06:47:25 +09:30
Chris Veilleux 4d7ed0f25e Added to docstring to explain why the method took a list of utterances instead of a single utterance. 2021-06-05 13:39:57 -05:00
Chris Veilleux 2a9f63c173 Fixed a bug where the highest confidence from the Adapt parser is different than the highest confidence from the Adapt intent matcher. 2021-06-05 12:15:02 -05:00
Kris Gesling 0e2a78068a
Merge pull request #2910 from MycroftAI/feature/avx-check
Check for the AVX instruction set during install
2021-06-02 06:54:08 +09:30
Kris Gesling 1cc25da144
Merge pull request #2898 from MycroftAI/bugfix/docstring-cleanup
Cleanup of documentation
2021-06-01 12:16:44 +09:30
mathmauney 305b93625a Update hotword_factory.py
Fix long line string
2021-05-28 21:48:49 +09:30
mathmauney 011c3899a9 Fix line too long 2021-05-28 21:48:49 +09:30
mathmauney 4ca656caac Issue-2232 Add warning when AVX is not detected and fallback. 2021-05-28 21:48:49 +09:30
Kris Gesling 891784a454
Merge pull request #2888 from forslund/refactor/mimic_tts-dont-load-config-on-import
Refactor mimic_tts to not load config when importing
2021-05-28 15:24:13 +09:30
Åke Forslund ad410d4bfc Remove registered keywords on skill shutdown
Uses new drop_*() methods from adapt-parser 0.4.0
2021-05-27 22:24:55 +02:00
Kris Gesling 0062b3f439 Bump version number 2021-05-26 16:29:20 +09:30
Kris Gesling 8d6759ce63 Merge 21.02 changes from 'dev' into feature/mark-2 2021-05-26 16:12:25 +09:30
devs-mycroft 6c0be727e2 Version bump from 21.2.-1 to 21.2.0 2021-05-26 04:00:38 +00:00
Kris Gesling b9f1fb7ffb Bump core version and MSM for impending core update 2021-05-20 14:17:42 +09:30
Ken Smith a6cba040e9 revert change to existing skill behavior 2021-05-19 18:53:28 -04:00
Ken Smith ccd41717d2 respond to PR feedback 2021-05-18 13:08:09 -04:00
Ken Smith c8e16f99e8 add skill states and categories and enable barge in 2021-05-17 14:34:10 -04:00
Kris Gesling c936f2f116 Fix incorrect CLI info 2021-05-11 15:12:10 +09:30
Kris Gesling 083463a75e Clean up docstrings and CLI help info 2021-05-11 15:12:10 +09:30
Åke Forslund cfc84bab27 Add approprate blank lines to fix phinxdoc warnings 2021-05-11 15:12:10 +09:30
Åke Forslund e7accacdcf Fix sphinxdoc warning in common_iot_skill.py 2021-05-11 15:10:32 +09:30
Kris Gesling e75a05557b docstring cleanup 2021-05-11 15:10:32 +09:30
Kris Gesling 9d23fad9e8 clean up non-error level logs 2021-05-11 14:17:53 +09:30
Kris Gesling 13e593740c Add enclosure logs to CLI 2021-05-11 14:15:55 +09:30
Kris Gesling 27cf725411 Merge branch 'dev' into feature/mark-2 2021-05-10 07:22:45 +09:30
Kris Gesling 6327ac5dbb
Upgrade Lingua Franca to v0.4.1 (#2890)
**Update Lingua Franca to v0.4.1**

The update from Lingua Franca v0.2.x to v0.4.x includes few
breaking changes.
- Some API methods have been updated.
- Mycroft-core tests have been updated to reflect improvements in
  Lingua Franca's formatting and parsing.
- add LF default lang setting method to config.locale 
  including warning that this method will change in the future
- Add TODO's for 21.08 - moving more methods to LF
- simplify loading and setting default of languages in Skills service
- Remove unneeded wrappers for Lingua Franca functions
- Fix documentation of format and parse utils
- Fix test warnings
2021-05-08 08:34:02 +09:30
Kris Gesling 088f563ad9
Merge pull request #2892 from MycroftAI/bugfix/consistent-temp-dir
Replace hardcoded use of /tmp directory
2021-05-08 07:28:27 +09:30
Ken Smith 249e352f65 Add Common Play to active Skills when invoked 2021-05-07 14:25:28 +09:30
Kris Gesling dc4c146f69 Fix assigning of queue without existing loader 2021-05-06 10:11:39 +09:30
Ken Smith 3e6a2a4aa4 companion to news skill branch fix_no_stop 2021-05-04 07:32:08 -04:00
Kris Gesling 784f166bc2 Raise TypeError rather than quietly fail 2021-05-03 20:13:21 +09:30
Kris Gesling 0fb90edd28 Rename to get_temp_path and add docstring 2021-04-30 16:49:59 +09:30
Kris Gesling d49ccc8b7a Fix typo and auto-format 2021-04-30 15:58:10 +09:30
dzekem christa 4547752c66 minor errors fixed 2021-04-30 14:48:15 +09:30
dzekem christa 7765d11224 ran autopep8 2021-04-30 14:48:15 +09:30
dzekem christa 3f745c52ad created temp path function 2021-04-30 14:47:49 +09:30
dzekem christa 304439ed4b minor fixes 2021-04-30 14:46:36 +09:30
dzekem christa d659179645 more fixes 2021-04-30 14:46:36 +09:30
dzekem christa 621b4ab650 spaces added and uniformity in code 2021-04-30 14:46:36 +09:30
dzekem christa 9252158829 rectified pep8 issues 2021-04-30 14:46:36 +09:30
dzekem christa 32f666edd4 Issue-2727 - fixing hard coded /tmp 2021-04-30 14:46:36 +09:30
dzekem christa a174c3c822 replaced hard coded /tmp 2021-04-30 14:46:36 +09:30
Åke Forslund d884da5b56 Be more defensive when loading mimic config
Default config will generally always have a mimic block but in
combination with newer Mycroft variants a more defensive approach is
probably good
2021-04-28 22:31:30 +02:00
Åke Forslund 5d68309523 Refactor mimic_tts to not load config when importing
Hitting the entire configuration fetching routine with call to the
backend is not polite to do when just importing the file. This moves the
config lookup out of the global scope and into special functions for
finding the mimic binary and looking up the data path for the subscriber
voices.
2021-04-28 22:31:10 +02:00
Ken Smith 74285be60b fix hardware-mycroft-mark-II/issues/62 2021-04-27 12:55:10 -04:00
Åke Forslund 344999d003 Remove option to save phonemes in string format
String format can't be loaded so it shouldn't be written either
2021-04-05 08:28:38 +02:00
Åke Forslund bea3bac2bf Make mimic get_tts() return phonemes pre-parsed
This makes the phonemes json de/encodable like mimic2
2021-04-05 08:28:38 +02:00
Kris Gesling 6f1e708f34 Merge branch 'dev' into feature/mark-2 2021-03-31 21:38:16 +09:30
Kris Gesling 356288a38f
Merge pull request #2863 from forslund/feature/mycroft-bus-client
Utilize the mycroft-messagebus-client module
2021-03-31 21:22:31 +09:30
Ken Smith cac46ad1d6 fix for jira skill-207 2021-03-29 14:49:33 -04:00
Åke Forslund 9acf5b7592 Utilize the mycroft-messagebus-client module
This utilizes the shared messagebus client implemented in the
mycroft-messagebus-client.
2021-03-22 06:31:50 +01:00
Åke Forslund 0b857e92f9 Sync tts cache dict of cached sentences on curate
This will make sure the dict of caches gets updated when curate_cache
removes files.
2021-03-21 13:33:08 +01:00
Åke Forslund 7bd27eb5df Make curate_cache() return removed files 2021-03-21 12:47:57 +01:00
Kris Gesling b1fb220858 Revert "update apt cache to allow Skill installation"
This reverts commit 9805fedd79.
2021-03-19 12:28:48 +09:30
Kris Gesling 7d3cb2d53e
Merge pull request #2869 from forslund/refactor/tts-cache-curation
Move TTS cache curation to TextToSpeechCache
2021-03-19 11:41:54 +09:30
Åke Forslund 9b4544dc7d Move cache curation to TextToSpeechCache 2021-03-18 23:02:26 +01:00
Åke Forslund 46a1de9b12 Remove unused import 2021-03-18 22:45:19 +01:00
Kris Gesling 80f65ac855
Merge pull request #2858 from MycroftAI/feature/voc_match_exact
Add exact optional param to voc_match
2021-03-18 16:43:01 +09:30
Chris Veilleux 9c864de866
Convert phoneme to a list before being passed on. (#2865)
* The phoneme needs to be converted to a list before being passed on.
2021-03-18 15:23:20 +09:30
Ken Smith 82d9030e4d fix for jira mk2-331 2021-03-16 15:17:36 -04:00
Kris Gesling cee879e7a4 Add exact optional param to voc_match
This adds the option to require an exact match of vocab. It sourced
from the Playback Control Skill.
2021-03-16 16:05:06 +09:30
Chris Veilleux 8453e79900 Merge remote-tracking branch 'origin/dev' into feature/mark-2
# Conflicts:
#	mycroft/tts/tts.py
2021-03-15 18:47:32 -05:00
Kris Gesling 0587c5d75e
Merge pull request #2856 from forslund/bugfix/stray-print
Remove stray print
2021-03-15 12:24:28 +09:30
Åke Forslund 29fd50324b Remove stray print 2021-03-14 09:32:45 +01:00
Chris Veilleux bf2670c890
Merge pull request #2853 from MycroftAI/feature/consolidate_tts_cache
Consolidate TTS cache logic
2021-03-11 16:25:19 -06:00
Kris Gesling a399b19fd6
Merge pull request #2849 from forslund/refactor/clean-intent-service
Remove intent-service backwards compatibilities
2021-03-11 15:26:26 +09:30
Kris Gesling ec00631c4b
Merge pull request #2813 from NeonAndrii/feature/issue-2812
Issue-2812 - Allow overridden converse methods to accept messages
2021-03-11 15:25:24 +09:30
Chris Veilleux ea013b26af Fixed failing unit test. 2021-03-10 21:16:34 -06:00
Chris Veilleux 62d277d612 Refactored to fix error where persistent cache directory was used when the temporary cache directory should have been. 2021-03-10 21:16:11 -06:00
Chris Veilleux 469b1d3458 Changed ordering of adding a file to cache to make more sense. 2021-03-10 15:55:21 -06:00
Chris Veilleux 86febca6a3 Fixed a bug passing None to an instance of Path 2021-03-10 15:35:38 -06:00
Chris Veilleux 5996fdbf08 Fixed a minor linting issue 2021-03-10 13:46:48 -06:00
Chris Veilleux 4d4f797c5d Add the stack trace to an error message to help with debugging. 2021-03-10 13:39:58 -06:00
Chris Veilleux 48e691a66f add deprecation warnings to the logic the new cache logic replaces. 2021-03-10 13:39:30 -06:00
Chris Veilleux 2f34df6603 enhance to use new cache logic 2021-03-10 13:39:01 -06:00
Chris Veilleux 5e90940896 new code to consolidate TTS cache handling into one module. 2021-03-10 13:38:17 -06:00
Kris Gesling 3679eb1355
Merge pull request #2838 from forslund/test/get_response-tests
get response tests
2021-03-10 23:44:48 +09:30
Kris Gesling f54300de38
Merge pull request #2844 from MycroftAI/bugfix/fake-blacklist
Remove example entries in blacklisted_skills config
2021-03-10 23:39:49 +09:30
Kris Gesling db79748faa
Merge pull request #2827 from MycroftAI/feature/converse-error-skill
add skill_id to converse error msg
2021-03-10 23:39:29 +09:30
Kris Gesling efee72549d auto-format 2021-03-09 22:04:18 +09:30
Kris Gesling 9805fedd79 update apt cache to allow Skill installation 2021-03-09 22:00:57 +09:30
Ken Smith 21c201c0f4 fix chase leds never stopping 2021-03-08 14:53:23 -05:00
Åke Forslund 203e1fc740 Remove intent-service backwards compatibility
- Remove unused ContextManager import from mycroft.skills.intent_service
- Remove Old 'intent_failure' -> fallback handler
- Remove handling of fallback messages without the fallback_range
parameter
2021-03-07 12:59:59 +01:00
Kris Gesling 17dbaa2b38
Merge pull request #2840 from DiegoAsterio/bugfix/issue-2750
Issue-2750 - Remove log pollution
2021-03-03 15:25:21 +09:30
Chris Veilleux f2ee89a3f0 promote debug messages to info messages to see how cache loading handles on boot. 2021-03-02 17:48:32 -06:00
Chris Veilleux efb7c3abb8 promote debug messages to info messages to see how cache loading handles on boot. 2021-03-02 17:39:43 -06:00
Åke 492bd22179
Merge pull request #2843 from OpenVoiceOS/fix/padatious_mess
Remove old Padatious class
2021-03-02 11:38:46 +01:00
Chris Veilleux 78da65b3b2 Merge remote-tracking branch 'origin/feature/mark-2' into feature/mark-2 2021-03-01 18:20:30 -06:00
Chris Veilleux d4d7340f3a changed the list of Raspberry Pi platforms to replace "mycroft_mark_2pi" with "mycroft_mark_2" 2021-03-01 18:20:19 -06:00
Ken Smith c8a44c206d comply with new gui requirements 2021-03-01 17:14:37 -05:00
Kris Gesling b29fe8aeed auto pep8 2021-03-01 12:59:26 +09:30
Kris Gesling 1f30fe7016 switch volume up and down buttons 2021-03-01 12:57:49 +09:30
Kris Gesling 0acc95113f nudge max volume up a little 2021-02-27 15:55:00 +09:30
Kris Gesling 7797dc855b Fix missing imports for ProcessStatus 2021-02-27 15:21:44 +09:30
Ken Smith 893dbe6080 fix volume display bug, try to use palette object rather than hard coded values, change red warning to burnt orange and make reserved led show one of four temperature ranges 2021-02-26 16:10:50 -05:00
Ken Smith f2f024e315 addresses jira mk2-249, make capabilities queryable via the msg bus 2021-02-26 15:09:39 -05:00
Ken Smith a1035cf3d2 fix mute mic led bring up bug and fix sync between buttons and volume skill and added an async volume update message so the gui can pick it up 2021-02-26 14:06:10 -05:00
Chris Veilleux 6ed674bd3e Merge remote-tracking branch 'origin/dev' into feature/mark-2
# Conflicts:
#	mycroft/audio/__main__.py
#	mycroft/client/speech/__main__.py
#	mycroft/skills/__main__.py
#	mycroft/util/process_utils.py
2021-02-26 11:49:30 -06:00
Chris Veilleux 450ba58acf remove spurious print statement 2021-02-24 10:39:33 -06:00
Chris Veilleux 9e3595cbdf Remove the newline character at the end of the pantacor device ID before sending it to Selene 2021-02-23 15:34:09 -06:00
neonandrii d69b61afb6 Issue-2812 - Allow overridden converse methods to accept messages - FIX: PEP8-line-too-long issue in MycroftSkill.converse - change required signature in MycroftSkill.converse(). 2021-02-23 14:44:12 +02:00
Kris Gesling 38839a1489
Merge pull request #1822 from forslund/feature/skill-api
Feature/skill api
2021-02-23 10:03:17 +09:30
Kris Gesling bed4c9fe28 Remove example entries in blacklisted_skills config
The default mycroft.conf included some arbitrary examples in the
actual blacklisted_skills configuration. If a user attempted to
use a Skill that matched, it would be prevented from loading.
2021-02-22 16:07:31 +09:30
Chris Veilleux 7df1f674ab Merge remote-tracking branch 'origin/feature/mark-2' into feature/mark-2 2021-02-21 20:10:05 -06:00
Chris Veilleux 8cda5b9c9c Change how pantacor device is identified to Selene 2021-02-21 20:09:08 -06:00
jarbasal 4200a38496 remove old padatious file 2021-02-18 17:19:28 +00:00
Ken Smith ba01f1d507 fix comments 2021-02-15 14:30:31 -05:00
Ken Smith b7a79f6634 add fan control 2021-02-15 14:07:06 -05:00
Diego Asterio 130d517f30 Issue-2750 - Remove log pollution
Add empty skill directories to a set and remove them whenever they are
no longer empty. Empty skill directories only appear once in the log.

==== Fixed Issues ====
log polution - #2750
2021-02-15 13:38:38 +01:00
Åke Forslund 3a6ca30b33 Fix selecting last opt by number in ask_selection()
Fix off by one issue preventing the last option to be selected by
number.
2021-02-14 17:19:31 +01:00
Ken Smith b94d5e5c58 fix audioservice bug and stop pulsing when stop detected 2021-02-11 16:09:38 -05:00
Ken Smith a22dd87dc1 scaffolding for led feedback around voice activity 2021-02-11 13:07:06 -05:00
devs-mycroft a976bd1094 Version bump from 20.8.0 to 20.8.1 2021-02-11 11:51:26 +00:00
Kris Gesling fa5576adf4
Merge pull request #2831 from MycroftAI/bugfix/google-voice
Upgrade gTTS to fix Google voice
2021-02-10 11:16:43 +09:30
Ken Smith a7873cc22f Generic hardware enclosure capabilities should work with any device like your laptop or the Mark2. Provides a view of the default input devices (keyboards and mice) and default output devices (screens). Should be safe to merge to master also. 2021-02-09 16:28:48 -05:00
Kris Gesling c8494932ac Remove deprecated Google TTS lang codes 2021-02-09 21:27:59 +09:30
Åke Forslund 9173e22460 Send correct conf to mimic when used as fallback
- Mimic is now sent the correct config when used as a fallback
- Tests updated to ensure this
2021-02-08 22:09:55 +01:00
Åke be2d3c9fb7
Merge pull request #2828 from MycroftAI/feature/mozilla-tts-validation
Add Mozilla TTS connection validation
2021-02-08 21:54:53 +01:00
Kris Gesling 5a19fc0716 Add Mozilla TTS connection validation
Replication of PR #2719
Original code from JarbasAl
2021-02-08 20:17:59 +09:30
Kris Gesling 5ca342621d add skill_id to error msg 2021-02-08 16:57:07 +09:30
Åke Forslund 1397659c77 Add skill api help to CLI 2021-02-06 17:57:38 +01:00
Åke Forslund 7f3b4e1795 Add skill_api_method decorator
The api methods are now much easier to use, almost transparent. The
current caveat is that only "standarad" python types are acceptable
(int, float, str, list, bool, None) due to the json serialization.

- api methods are now created with the skill_api_method decorator
- both arguments and keyword arguments are sent to the api method
instead of the message object
- api methods now uses a normal return statement instead of having to
handle creating response messages on the bus.

For example if the datetime skill wants to make the datetime string
fetchable simply add the skill_api_method decorator to the
get_display_date method.

    @skill_api_method
    def get_display_date(self, day=None, location=None):
        """Returns the date and time as a string."""
        [...]

The methods return value will be sent back to the caller and can be used
from a skill through

        datetime = SkillApi.get('mycroft-date-time.mycroftai')
        self.log.info(datetime.get_display_date())
2021-02-06 17:57:19 +01:00
Åke Forslund df02bf22b4 Add skill api.
The skill api allows skills to define a public api which can easily be
accessed by other skills over the message bus just as easy as working
with a normal object.

The skill api object is generated from the skill's public_api property. It's a dict where each key is turned into a method on the api object. The method is defined as
  "api_method": {
    "type": message type string
    "func": handler method
    "help": help string for cli
  }

Example skill:

class Test2(MycroftSkill):
    def __init__(self):
        MycroftSkill.__init__(self)
        self.public_api = {
            'speak': {
                'type': 't2.speak',
                'func': self.handle_speak,
                'help': 'speak the test sentence\nand another line\n\nlast'
            },
            'speak2': {
                'type': 't2.speak2',
                'func': self.handle_speak2,
                'help': 'speak the other sentence'
            }
        }

    def handle_speak(self, message):
        self.speak('This is a test')
        self.bus.emit(message.response(data=None))

    def handle_speak2(self, message):
        self.speak('This is another test')
        self.bus.emit(message.response(data=None))
2021-02-06 17:55:34 +01:00
Ken Smith 289f229630 synchronize volume between skill and switches, fix mute led bring up issue and fix color palette 2021-02-05 13:47:27 -05:00
Kris Gesling b1be522972
Merge pull request #2820 from MycroftAI/feature/gui-get
Feature/gui get
2021-02-05 14:41:03 +09:30
Kris Gesling f8f351e4da
Merge pull request #2823 from MycroftAI/bugfix/2822
Reorder operations to ensure removed Skills are first unloaded.
2021-02-05 07:43:16 +09:30
Kris Gesling bfe2b59f90 Add get method for accessing GUI values 2021-02-04 16:12:22 +09:30
Kris Gesling 688d1fe438 Reorder operations to ensure removed Skills are first unloaded.
Prevents SkillManager from attempting to reload a Skill that has
just been removed from the system which results in a
FileNotFoundError

Fixes #2822
2021-02-04 11:56:29 +09:30
Chris Veilleux 5fe7949bfd Added code to pass the packaging_type config to the pairing code endpoint. This was done to know if a device uses a Pantacor image. Selene will use this information to retrieve device information from Pantacor using their API. 2021-02-02 19:27:01 -06:00
Kris Gesling 3b4a3e709b fix missing MAX_VOL 2021-02-02 16:33:50 +09:30
Åke Forslund 3ede156c98 Only stop speaking if speaking is active
This also updates the relevant testcase
2021-02-01 20:26:44 +01:00
Åke Forslund 96bbd384ad Add proper docstring 2021-02-01 20:26:44 +01:00
Åke Forslund e3e52d63a0 Remove filesystem signal for stopping speech
The filesystem signal has not been used for quite some time and should
not be used.
2021-02-01 20:26:44 +01:00
Kris Gesling 8e51083882
Merge pull request #2815 from AIIX/Fix/SystemTextFrame
Bug Fix - Use the correct delegate, fix layouts, autofit text for System TextFrame
2021-02-01 11:57:00 +09:30
Kris Gesling e2fbda6701 auto pep8 2021-01-30 08:54:44 +09:30
Kris Gesling e645409837 reduce max volume 2021-01-30 08:53:45 +09:30
Kris Gesling f30adb85de
Merge pull request #2804 from forslund/bugfix/audioservice-issues
Bugfix/audioservice issues
2021-01-29 14:55:27 +09:30
Åke Forslund 5df15245c4 Add Todo / comment regarding startup order 2021-01-28 17:24:21 +01:00
Åke Forslund b595f6cdad Always use the plural "Skills" for the service
Change all strings referring to the service to use "Skills service"
2021-01-28 17:24:21 +01:00
Åke Forslund 94d5e34fd0 Add started and alive hooks to skills process 2021-01-28 17:24:21 +01:00
Kris Gesling 8a1ee0e106 Move ready check to enclosure; use ProcessStatus
Previously Mycroft reported mycroft.ready when Padatious had
finished it's first training run. This check has been shifted
to the enclosure service, and starts checking once the Padatious
training is complete.

Currently checks on readiness of audio, speech and skills services.
2021-01-28 17:24:21 +01:00
Kris Gesling 1273425799 add ProcessStatus to key services 2021-01-28 17:24:21 +01:00
Kris Gesling cc3bf5b45a Change names for consistency 2021-01-28 17:21:33 +01:00
Åke Forslund bea1f008c6 Add ProcessStatus class
ProcessStatus tracks the process status and allows callbacks on changes
and status queries over the messagebus.

StatusCallbackMap is used to setup the callbacks

ProcessState is an enum tracking the different states.
2021-01-28 17:21:33 +01:00
neonandrii fb84658e5d Issue-2812 - Allow overridden converse methods to accept messages - FIX: PEP8-line-too-long issue in MycroftSkill.converse 2021-01-26 19:27:33 +02:00
neonandrii 171b266ec1 Issue-2812 - Allow overridden converse methods to accept messages - modified the signature check in SkillManager.handle_converse_request and MycroftSkill.converse, and resolving PEP8 issues 2021-01-25 21:00:06 +02:00
neonandrii aca69203e6 Issue-2812 - Allow overridden converse methods to accept messages - modified the signature check in SkillManager.handle_converse_request and MycroftSkill.converse, and resolving PEP8 issues 2021-01-25 20:59:30 +02:00
Kris Gesling 73f0299cfa
Merge pull request #2722 from forslund/bugfix/latest-porcupine
Update for newer Porcupine engines
2021-01-25 16:29:48 +09:30
Åke Forslund aace28dfa3 Use lock around play and stop
Moves the stopping logic to separate method to be able to call from
locked contexts
2021-01-23 11:09:54 +01:00
neonandrii ba7b2795ec Issue-2812 - Allow overridden converse methods to accept messages - adding default message=None to MycroftSkill.converse and changing the signature check in the skill manager. 2021-01-22 17:20:48 +02:00
neonandrii 416eebfee7 Issue-2812 - Allow overridden converse methods to accept messages - adding default message=None to MycroftSkill.converse and changing the signature check in the skill manager. 2021-01-22 17:16:22 +02:00