Mycroft Core, the Mycroft Artificial Intelligence platform.

Overview

License CLA Team Status

Unit Tests codecov PRs Welcome Join chat

Mycroft

Mycroft is a hackable open source voice assistant.

Table of Contents

Getting Started

First, get the code on your system! The simplest method is via git (git installation instructions):

  • cd ~/
  • git clone https://github.com/MycroftAI/mycroft-core.git
  • cd mycroft-core
  • bash dev_setup.sh

This script sets up dependencies and a virtualenv. If running in an environment besides Ubuntu/Debian, Arch or Fedora you may need to manually install packages as instructed by dev_setup.sh.

NOTE: The default branch for this repository is 'dev', which should be considered a work-in-progress. If you want to clone a more stable version, switch over to the 'master' branch.

Running Mycroft

Mycroft provides start-mycroft.sh to perform common tasks. This script uses a virtualenv created by dev_setup.sh. Assuming you installed mycroft-core in your home directory run:

  • cd ~/mycroft-core
  • ./start-mycroft.sh debug

The "debug" command will start the background services (microphone listener, skill, messagebus, and audio subsystems) as well as bringing up a text-based Command Line Interface (CLI) you can use to interact with Mycroft and see the contents of the various logs. Alternatively you can run ./start-mycroft.sh all to begin the services without the command line interface. Later you can bring up the CLI using ./start-mycroft.sh cli.

The background services can be stopped as a group with:

  • ./stop-mycroft.sh

Using Mycroft

Home Device and Account Manager

Mycroft AI, Inc. maintains a device and account management system known as Mycroft Home. Developers may sign up at: https://home.mycroft.ai

By default, mycroft-core is configured to use Home. By saying "Hey Mycroft, pair my device" (or any other request verbal request) you will be informed that your device needs to be paired. Mycroft will speak a 6-digit code which you can enter into the pairing page within the Mycroft Home site.

Once paired, your unit will use Mycroft API keys for services such as Speech-to-Text (STT), weather and various other skills.

Skills

Mycroft is nothing without skills. There are a handful of default skills that are downloaded automatically to your /opt/mycroft/skills directory, but most need to be installed explicitly. See the Skill Repo to discover skills made by others. Please share your own interesting work!

Behind the scenes

Pairing Information

Pairing information generated by registering with Home is stored in: ~/.config/mycroft/identity/identity2.json <-- DO NOT SHARE THIS WITH OTHERS!

Configuration

Mycroft's configuration consists of 4 possible locations:

  • mycroft-core/mycroft/configuration/mycroft.conf(Defaults)
  • Mycroft Home (Remote)
  • /etc/mycroft/mycroft.conf (Machine)
  • $XDG_CONFIG_DIR/mycroft/mycroft.conf (which is by default $HOME/.config/mycroft/mycroft.conf) (USER)

When the configuration loader starts, it looks in these locations in this order, and loads ALL configurations. Keys that exist in multiple configuration files will be overridden by the last file to contain the value. This process results in a minimal amount being written for a specific device and user, without modifying default distribution files.

Using Mycroft Without Home

If you do not wish to use the Mycroft Home service, before starting Mycroft for the first time, create $HOME/.config/mycroft/mycroft.conf with the following contents:

{
  "skills": {
    "blacklisted_skills": [
      "mycroft-configuration.mycroftai",
      "mycroft-pairing.mycroftai"
    ]
  }
}

API Key Services

The Mycroft backend provides access to a range of API keys for specific services. Without pairing with the Mycroft backend, you will need to add your own API keys, install a different Skill or Plugin to perform that function, or not have access to that functionality.

These are the keys currently used in Mycroft Core through the Mycroft backend:

Using Mycroft behind a proxy

Many schools, universities and workplaces run a proxy on their network. If you need to type in a username and password to access the external internet, then you are likely behind a proxy.

If you plan to use Mycroft behind a proxy, then you will need to do an additional configuration step.

NOTE: In order to complete this step, you will need to know the hostname and port for the proxy server. Your network administrator will be able to provide these details. Your network administrator may want information on what type of traffic Mycroft will be using. We use https traffic on port 443, primarily for accessing ReST-based APIs.

Using Mycroft behind a proxy without authentication

If you are using Mycroft behind a proxy without authentication, add the following environment variables, changing the proxy_hostname.com and proxy_port for the values for your network. These commands are executed from the Linux command line interface (CLI).

$ export http_proxy=http://proxy_hostname.com:proxy_port
$ export https_port=http://proxy_hostname.com:proxy_port
$ export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,0.0.0.0,::1"

Using Mycroft behind an authenticated proxy

If you are behind a proxy which requires authentication, add the following environment variables, changing the proxy_hostname.com and proxy_port for the values for your network. These commands are executed from the Linux command line interface (CLI).

$ export http_proxy=http://user:[email protected]_hostname.com:proxy_port
$ export https_port=http://user:[email protected]_hostname.com:proxy_port
$ export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,0.0.0.0,::1"

Getting Involved

This is an open source project. We would love your help. We have prepared a contributing guide to help you get started.

If this is your first PR, or you're not sure where to get started, say hi in Mycroft Chat and a team member would be happy to mentor you. Join the Mycroft Forum for questions and answers.

Links

Comments
  • The dev_setup.sh script should ensure that it is not run with sudo, or at least ask.

    The dev_setup.sh script should ensure that it is not run with sudo, or at least ask.

    After going through the register process the mycroft client doesn't seem to realize that it has been registered and continues to say that the device is not registered and gives a registration code. Restarting all of mycroft's processes after registration, and then restarting has no effect. The website itself appears to have worked, the device id on the web page matches the id in the identity.json file on my machine.

    commit: 9aa9f47f720736e0330854bd0d9ef5af0604808c

    Type: Bug - complex 
    opened by LongBoolean 45
  • Use XDG Base directories for settings, cache and runtime data

    Use XDG Base directories for settings, cache and runtime data

    Description

    This makes Mycroft use the XDG Base Directory specification. Data is now saved to:

    • settings to $XDG_CONFIG_DIR/mycroft, which most of the time equals to ~/.config/mycroft
    • data to $XDG_DATA_DIRS/mycroft, which most of the time equals to ~/.local/share/mycroft
    • cache to $XDG_CACHE_HOME/mycroft, which most of the time equals to ~/.cache

    Since this changes the default location of pretty much everything, please test it well!

    Goal is to support and read from the old ~/.mycroft location if it already exists, but save to the XDG Base Directories and read from it on new installations.

    Together with #2559 this should be full XDG Base Directory compliance.

    How to test

    First of all, run this PR with an existing installation, and check if everything is loaded from the usual locations. Then shut it down and restart to make sure it has saved to the new locations. Then, completely remove any trace of Mycroft settings from your system. Easiest would be to fully deinstall (remove /opt/mycroft), remove ~/.mycroft, and the XDG Base directories mentioned above. Now reinstall Mycroft (with this PR applied) and start and connect it. Check if ~/.mycroft is not created anymore and ~/.config/mycroft, ~/.local/share/mycroft and ~/.cache/mycroft are with the correct files and directories in them.

    Contributor license agreement signed?

    CLA [x]

    Status: Work in progress CLA: Yes Type: Enhancement - roadmapped 
    opened by PureTryOut 39
  • Pure-try-out's XDG config PR with changed Jenkinsfile

    Pure-try-out's XDG config PR with changed Jenkinsfile

    Description

    This is PR #2578 with added Jenkinsfile change for the identity location.

    Contributor license agreement signed?

    CLA [ Yes ] (Whether you have signed a CLA - Contributor Licensing Agreement

    CLA: Yes 
    opened by forslund 37
  • Upgrade websocket-client to 1.2.1

    Upgrade websocket-client to 1.2.1

    Description

    This is the 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 0.58.0, let's do the same in core

    How to test

    Run this combined with https://github.com/MycroftAI/mycroft-messagebus-client/pull/21 and an upgraded websocket-client, see if everything still works as expected.

    Contributor license agreement signed?

    CLA [x]

    CLA: Yes 
    opened by PureTryOut 35
  • feat/gui video common play

    feat/gui video common play

    Starts integrating gui video playback into the common play framework

    • adds self.gui.play_video
    • makes gui video playback respond to playback control skill
      • pause
      • resume
      • stop

    see usage here https://github.com/JarbasSkills/skill-dagon/blob/feat/gui_common_play/init.py#L124

    Status: To be reviewed CLA: Yes Type: Enhancement - roadmapped Status: Abandoned by author 
    opened by JarbasAl 34
  • Issue #279 - Added results property to skills

    Issue #279 - Added results property to skills

    Also added default of the skills name to the extras. Skills should now be able to call the inherited 'add_extra' method to add extras to its responses ref issue #279

    opened by joshymcd 34
  • Audio service

    Audio service

    In late November @penrods led a discussion about how an audio service in Mycroft could work. This is a simple implementation of what was discussed. This is a quick implementation of the system as I understood it and I think this can be used to continue the discussion. Ideas and suggestions on improvements are very welcome.

    The PR adds support for commands like

    "Hey Mycroft, play the news in the livingroom"

    Backends

    The current system includes support for the following "backends"

    • Mpg123, very limited implementation
    • VLC
    • Mopidy

    "backends" currently in the works:

    • Chromecast
    • Kodi

    Backends are quite easy to add and an existing baseclass can be extended to add new ones.

    AudioService

    Skill creators will use an audio service interface to communicate with the audio service / playback control. the AudioService interface uses the standard message bus.

    from mycroft.skills.audioservice import AudioService
    [...]
      as = AudioService()
    [...]
      as.play(file_or_uri) # handles both lists and single uris
    

    See the npr_news skill for basic usage.

    The AudioService currently only support play and track_info requests but this will probably be expanded for increased usefulness.

    Playback control skill

    Features:

    • backend/location selection from utterance ("...in kitchen" etc.)
    • lowering volume while Mycroft speaks
    • playback control (Pausing/Resuming, skipping, Stopping)

    The backend/location selection is currently done using basic string parsing and should probably be done using adapt instead.

    This skill removes much of the basic functions that needs to be implemented for an audio playback skill and the skill creator can focus on the trickier parts.

    Currently most of the audio logic is implemented in the playback control skill and should maybe be moved but this was a good starting point.

    Configuration

    A Configuration the audio services:

    {
      "Audio": {
        "backends": {
          "local": {
            "type": "mpg123",
            "active": true
          },
          "kitchen": {
            "type": "mopidy",
            "url": "http://localhost:6680",
            "active": true
          },
          "livingroom": {
            "type": "mopidy",
            "url": "http://192.168.10.232:6680",
            "active": false
          },
          "vlc": {
            "type": "vlc",
            "active": true
          }
        },
        "default-backend": "local"
      }
    }
    

    If you try it I suggest you install vlc and pyvlc and use the vlc backend since mpg123 only has basic functionallity.

    I've tested this mainly with the mopidy skill and the npr_news skill.

    Todo

    • more backends, Kodi and chromecast is a minimum
    • possibly separate the backends from the playback control skill
    • populate the AudioService interface with more functions so skill creators can do more interesting things with the audio (A music quiz-skill should be able to skip ahead in the playlist when a correct answer is provided)
    • More configuration options
    • Maybe some way to send credentials from a skill to the backend to access some music services
    • Better utterance parsing when starting playback, along with more keywords (like half volume)
    opened by forslund 27
  • UnicodeDecodeError in setup

    UnicodeDecodeError in setup

    Hi, I'm trying to set up Mycroft on an Ubuntu 18.0.4 Docker container that I've got some other stuff in, but am running into an issue when I try to run "start_mycroft.sh". I've followed the installation instructions in the README but run into this error: Already up to date. Starting all mycroft-core services Initializing... Changing ownership of /opt/mycroft to user: with group: root Starting background service bus CAUTION: The Mycroft bus is an open websocket with no built-in security measures. You are responsible for protecting the local port 8181 with a firewall as appropriate. Starting background service skills Starting background service audio Starting background service voice Starting background service enclosure Starting cli Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main mod_name, mod_spec, code = _get_module_details(mod_name, _Error) File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details import(pkg_name) File "/opt/mycroft/mycroft/init.py", line 17, in from mycroft.api import Api File "/opt/mycroft/mycroft/api/init.py", line 22, in from mycroft.configuration import Configuration File "/opt/mycroft/mycroft/configuration/init.py", line 15, in from .config import Configuration, LocalConf, RemoteConf File "/opt/mycroft/mycroft/configuration/config.py", line 23, in from mycroft.util.json_helper import load_commented_json, merge_dict File "/opt/mycroft/mycroft/util/init.py", line 35, in from .parse import extract_datetime, extract_number, normalize File "/opt/mycroft/mycroft/util/parse.py", line 32, in import lingua_franca.parse File "/usr/local/lib/python3.6/dist-packages/lingua_franca/parse.py", line 21, in from lingua_franca.lang.parse_pt import * File "/usr/local/lib/python3.6/dist-packages/lingua_franca/lang/parse_pt.py", line 200, in class PortugueseNormalizer(Normalizer): File "/usr/local/lib/python3.6/dist-packages/lingua_franca/lang/parse_pt.py", line 202, in PortugueseNormalizer _default_config = json.load(f) File "/usr/lib/python3.6/json/init.py", line 296, in load return loads(fp.read(), File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 602: ordinal not in range(128)

    I've run dev_setup.sh and such, so not really sure what I'm doing wrong. I'm aware of the docker container available, I'm trying to rig one up myself though. Let me know if I missed anything!

    opened by cmburn 26
  • initial work on danish.

    initial work on danish.

    DescriptionInitial work on adding Danish to core

    How to test

    difficult to test without translating some basic skills - fallback-unknown is one important one…..

    Contributor license agreement signed?

    CLA [ X ] (Whether you have signed a CLA - Contributor Licensing Agreement

    CLA: Yes 
    opened by andlo 25
  • msm updated for issue 807

    msm updated for issue 807

    Several updates.

    • parameter issue also fixed now.
    • picroft/mycroft can both be handled
    • alternate directory can be used if exported in env for mycroft_skills_directory
    • default calls install with a list
    • install handles a list of parameters
    • very simple search function (name only) added

    The pip and git parts of the install function will need to be worked over further at some point in the future.

    opened by el-tocino 25
  • Refactor intent service

    Refactor intent service

    Description

    The intent handling has been spread out over a bunch of files and this sort of collects it back into a single location makes the entire flow viewable from a single handler for the old recognizer_loop:utterance message.

    The resolution order is the same as before only expressed as a single list instead of a series of checks and fallbacks interlaced.

    • Converse
    • Padatious High Confidence
    • Adapt
    • Fallback High priority
    • Padatious Medium Confidence
    • Fallback Medium priority
    • Padatious Last ditch effort
    • Fallback Low priority

    This collects the many parts of where intent is handled into a single location handling the entire flow.

    The idea is that, in the end, all the skill calling should be done from this method. The main intent parsers does this but the converse and fallback still calls directly.

    Future work: Converse and fallback still triggers handlers directly.

    How to test

    Best way to test this is to make sure the voight kampff tests are still passing.

    Contributor license agreement signed?

    CLA [ Yes ]

    CLA: Yes 
    opened by forslund 24
  • unmet dependencies error on Ubuntu 22.04.1 LTS

    unmet dependencies error on Ubuntu 22.04.1 LTS

    Describe the bug when running bash dev_setup.sh

    it errors out

    Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:

    The following packages have unmet dependencies: libicu-dev : Depends: libicu70 (= 70.1-2) but 70.1-2ubuntu1 is to be installed E: Unable to correct problems, you have held broken packages.

    $ dpkg -l | grep libicu ii libicu70:amd64 70.1-2ubuntu1 amd64 International Components for Unicode

    To Reproduce

    bash dev_setup.sh

    Expected behavior

    No error.

    Log files

    /var/log/mycroft# cat setup.log Y - using 'master' branch Y - update automatically Y - Mimic will be built Y - Adding Mycroft commands to your PATH Will install PEP8 pre-commit hook... Interactive portion complete, now installing dependencies... Installing packages for Debian/Ubuntu/Mint...

    Environment (please complete the following information):

    • Device type: desktop
    • OS: ubuntu 22.04.1 LTS
    • Mycroft-core version: git master version

    Additional context nope

    bug 
    opened by XracerX 0
  • Unsupported locale setting with debug

    Unsupported locale setting with debug

    Describe the bug On my raspberry pi 2b, when i run ./start-mycroft debug, i get the following error: [email protected]:~/mycroft-core $ ./start-mycroft.sh debug Already up to date. Starting all mycroft-core services Initializing... Starting background service bus CAUTION: The Mycroft bus is an open websocket with no built-in security measures. You are responsible for protecting the local port 8181 with a firewall as appropriate. Starting background service skills Starting background service audio Starting background service voice Starting background service enclosure Starting cli Traceback (most recent call last): File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/pi/mycroft-core/mycroft/client/text/__main__.py", line 21, in <module> from .text_client import ( File "/home/pi/mycroft-core/mycroft/client/text/text_client.py", line 40, in <module> locale.setlocale(locale.LC_ALL, "") # Set LC_ALL to user default File "/usr/lib/python3.7/locale.py", line 604, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting

    To Reproduce Steps to reproduce the behavior:

    1. Do ./start-mycroft debug
    2. See error in logs

    Expected behavior Starting the debug

    Environment (please complete the following information):

    • Device type: Raspberry Pi 2 Model B Rev 1.1
    • OS: Raspbian GNU/Linux 10 (buster) armv7l
    • Mycroft-core version: just downloaded from main github today
    bug 
    opened by FQQD 0
  • Bump pillow from 8.3.2 to 9.3.0

    Bump pillow from 8.3.2 to 9.3.0

    Bumps pillow from 8.3.2 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    CLA: Needed dependencies 
    opened by dependabot[bot] 2
  • Starting as superuser will break permissions of tmp files

    Starting as superuser will break permissions of tmp files

    Describe the bug Launching start_mycroft.sh as superuser makes the files in /tmp/mycroft only readable to root. This crashes the bus when launched in non-superuser. Launching as root causes other issues.

    To Reproduce Steps to reproduce the behavior:

    1. Run sudo ./start-mycroft.sh all
    2. Run sudo ./stop-mycroft.sh
    3. Run ./start-mycroft.sh all
    4. Run ./start-mycroft.sh cli
    5. Check logs, see crash.

    Expected behavior CLI connects to bus.

    Log files

    PermissionError: [Errno 13] Permission denied: '/tmp/mycroft/service.pid'
    2022-11-19 00:39:20.714 | INFO     | 95140 | __main__:main:50 | Starting message bus service...
    Traceback (most recent call last):
      File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
        exec(code, run_globals)
      File "[removed by SekoiaTree]/mycroft-core/mycroft/messagebus/service/__main__.py", line 72, in <module>
        main()
      File "[removed by SekoiaTree]/mycroft-core/mycroft/messagebus/service/__main__.py", line 52, in main
        lock = Lock("service")
      File "[removed by SekoiaTree]/mycroft-core/mycroft/lock/__init__.py", line 119, in __init__
        self.create()
      File "[removed by SekoiaTree]/mycroft-core/mycroft/lock/__init__.py", line 173, in create
        self.touch()
      File "[removed by SekoiaTree]/mycroft-core/mycroft/lock/__init__.py", line 160, in touch
        with open(self.path, 'w') as L:
    PermissionError: [Errno 13] Permission denied: '/tmp/mycroft/service.pid'
    
    **Environment (please complete the following information):**
     - Device type: desktop
     - OS: Ubuntu (Pop!_OS)
     - Mycroft-core version: 21.2.2
    
    **Additional context**
    Probably shouldn't run it as sudo, but still, feel like it's worth reporting. Maybe a check if running as root with a warning and an override?
    
    Since the broken files are in /tmp/mycroft/, removing those files fixes this entirely (until you run the bus as superuser again).
    help wanted bug 
    opened by SekoiaTree 2
  • latest picroft install stuck in CLI

    latest picroft install stuck in CLI "please wait a moment as I finish......."

    install picroft on rpi 4. at point where docs say the cli should show the reg code, instead, after waiting 20 minutes and speaking to picroft, it STILL SAYS

    Please wait a moment as I finish booting up.

    what is broken?

    help please?

    core 21.2.2

    bug 
    opened by geetee24 0
  • Mycroft-config: Fix deprecated --tempfile in nano

    Mycroft-config: Fix deprecated --tempfile in nano

    Description

    As described in Issue #3124, --tempfile was deprecated in Nano version 5.0.

    Switching to --saveonexit would break function on older versions (Ubuntu 20.04 LTS use 4.8 version).

    Thankfully, the short version of those two is still the same -t. Using it will preserve function on older systems and fix function on newer ones.

    How to test

    Try to edit config.

    Contributor license agreement signed?

    CLA [x] (Whether you have signed a CLA - Contributor Licensing Agreement

    CLA: Yes hacktoberfest-accepted 
    opened by Tony763 2
Releases(release/v21.2.2)
  • release/v21.2.2(Dec 13, 2021)

    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: :tada: @el-tocino :tada: @forslund :tada: @Genei180 :tada: @goldyfruit :tada: @HFabi :tada: @in03 :tada: @Joanguitar :tada: @NeonDaniel :tada: @PureTryOut :tada: @rooky-c3bo :tada: @saymantech-co

    Source code(tar.gz)
    Source code(zip)
  • release/v21.2.1(Sep 3, 2021)

    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: :tada: @AIIX :tada: @ChanceNCounter :tada: @clusterfudge :tada: @el-tocino :tada: @forslund :tada: @HKalbasi :tada: @JarbasAI :tada: @mathmauney :tada: @PureTryOut :tada: @rzr :tada: @strugee

    Source code(tar.gz)
    Source code(zip)
  • release/v21.2.0(May 26, 2021)

    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.
    Source code(tar.gz)
    Source code(zip)
  • release/v20.8.1(Feb 18, 2021)

    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, a sudo 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
    Source code(tar.gz)
    Source code(zip)
  • release/v20.8.0(Sep 3, 2020)

    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 own ThreadedEventEmitter 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 use skills.converse.response instead #2669
    • Internal startListening signal will no longer be checked #2670
    • DialogLoader class removed in favor of new load_dialogs function #2671
    • get_http and remove_last_slash string utils have been removed #2672
    • Audio utils that had previously been moved from mycroft.util have had their references removed. This includes mycroft.util.is_speaking, mycroft.util.wait_while_speaking, and mycroft.util.stop_speaking. The methods should be called from their new module mycroft.audio #2678
    • The imp package has been completely replaced with importlib. 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
    Source code(tar.gz)
    Source code(zip)
  • release/v20.2.5(Aug 17, 2020)

    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:

    Source code(tar.gz)
    Source code(zip)
  • release/v20.2.4(May 29, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • release/v20.2.3(May 8, 2020)

    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

    Source code(tar.gz)
    Source code(zip)
  • release/v20.2.2(Apr 23, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • release/v20.2.1(Mar 9, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • release/v20.2.0(Feb 27, 2020)

    We're not out of beta but we're releasin' on time! In the best possible way!

    A major release like this is an opportunity for us to clean up some of the older things and make future development easier and cleaner. The improvements over 19.08.0 are now many thanks to the work of the core team and the awesome community of developers and users.

    v20.02 brings some changes, some old deprecated code has been removed making core a little bit leaner and some huge contributions has made it in (targeted messages) along with the usual bag of minor fixes, and improvements.

    Breaking changes in 20.02

    • Skill settings are now a simple dict (Deprecated 19.08) Skill settings are now a simple dict and procedure for registring settings changed callback and forcing a disk write of the settings has been updated

    Registering settings changed callback (docs):

        def initialize(self):
            self.settings_change_callback = self.my_callback
    
        def my_callback(self):
            ...
    

    Write settings to disk:

    from mycroft.skills.settings import save_settings
    
    ...
    
        def skill_method(self, _):
            save_settings(self.root_dir, self.settings)
    
    • The ConfigurationManager has been removed (Deprecated 18.02) #2470

    • The backwards compatibility language for extract_datetime() has been removed. #2469 The function now follows the documentation and returns None if the utterance doesn't include a date or time.

    • audio accuracy test is now wake word test The test is moved from the mycroft module into the test folder.

    Improvements, fixes and other greatness

    Targeted messages #2461, #2476, #2478, #2481

    This is something that has been discussed for a long time and now the implementation by @jarbasal is here. The system allows for multiple clients to be connected to Mycroft and only returning the response to the caller client that called. For an example implementation check out the Hive Mind Voice Sat.

    Added the commandline tool mycroft-listen #2460

    @FruityWelsh created a simple commandline tool to trigger mycroft listening. Many thanks!

    Make listener audio storage location configurable #2477

    Thanks to @ludwhe the storage of utterances and detected wake words can be configured.

    IntentQueryApi #2468

    An API allowing a skill or application to query the state of the intent service, listing things such as registered intents, skill ids and other things. This is also the work of @jarbasal

    Deprecate use of # in config file #2472

    Using only // as comment makes the config compatible with tools such as jsmin. Big thanks to @belvederef for the initiative and implementation.

    Improve Mimic2 error handling #2473

    Server errors generating Mimic2 audio will now be caught and Mimic1 will be used as fallback.

    Common Play tests and cleanup #2459

    A series of unittests has been added to test the common play skill base class and the audioservice. As these were added a couple of minor bugs were resolved and the code was cleaned up slightly.

    Tests for common query #2462

    Adds test and fixes detection of visual platforms.

    Simplify dialog loading #2422

    The DialogLoader class is now deprecated instead a simple get_dialog() function is used.

    Source code(tar.gz)
    Source code(zip)
  • release/v19.8.7(Jan 30, 2020)

    Few PR's lots of code changes!

    The big change in this release is the removal of the language parsing/formatting code and instead relies on the lingua-franca module run by the Mycroft community (and @JarbasAI in particular who set up the project originally). Much discussion is going on in the mycroft chat language channel, if you're interested join us there!

    Replace language parsing and formatting with lingua-franca #2438, #2464

    This basically cuts 20 000 lines of code from mycroft-core (roughly 50% of the python code). Stubs still remains to retain backwards compatibility.

    Allow stop-mycroft.sh to stop Mycroft if launched through other python module #2449

    This relates to the work @andlo is making to make the skills easier to run in various IDEs. Big thanks to him for improving this side of things!

    Upgrade pip to latest version #2458

    The dev_setup.sh script will now install pip 20.0.2, besides bringing us uptodate this allows installs on bleeding edge systems running Python 3.9.

    Source code(tar.gz)
    Source code(zip)
  • release/v19.8.6(Jan 16, 2020)

    I saw the future clearly. It was 20/20...

    Mycroft has now entered the new year with a release, we're happy for all contributors old and new that are joining us in this Brave New World of 2020.

    Documentation updates

    • @TheLastProject corrected the non-metric version of the unit config in #2441
    • @notdefine corrected the documentation on how to start the unittests with start-mycroft.sh
    • The MycroftSkill members root_dir and settings_change_callback were added to the readthedocs documentation.

    Test updates #2443, #2442, #2450

    Tests were extended for the mycroft_skill, tts and audio modules, increasing code coverage by a couple of percent. In doing this some issues were identified and squashed.

    • Mimic2 preprocessing is now active
    • The fallback TTS can now trigger listening
    • vlc playback backend works with tracks with mime-info

    Make venv-activate work with sh and zsh #2439

    We're always grateful when contributors make our scripts work with more platforms and tools. Big thanks to @notdefine for fixing this.

    Make padatious multithreading configurable #2448

    Padatious will default run multithreaded to speed up training but this is now configurable thanks to @andlo.

    Upate gtts backend to be compatible with newer versions #2447

    This allows mycroft to work with v2.1.0 and above of gTTS. Many thanks to @ansgar-t for this update.

    Update msm to 0.8.5 #2452

    This allows the installer skill to detect errors when installing.

    End of playlist message

    The audioservice will now send an end of playlist message after the last track has been played. This will be useful for restoring the resting screen after the last track or detecting the end of a sequence of steps in an prerecorded situation.

    Source code(tar.gz)
    Source code(zip)
  • release/v19.8.5(Dec 20, 2019)

    The Mycroft Christmas release comes with a small bag of goodies this year, even if I won't be doing any rhyming like I did last year.

    We've had 25 releases this year (unless this release is messed up somehow that's how we'll end). These 25 releases include the code contributions from no less than 41 community members (just on mycroft-core).

    Settingsmeta stability #2370, #2433

    The biggest thing in this release is an attempt to stabilize the settings upload. This will make sure that the skills page on Mycroft Home is populated as soon as the device is paired. It also tries to guarantee that the skills manifest is uploaded before any new changes to the settingsmeta are pushed making modifying skills easier.

    Upgrade python dependency on Red Hat #2412

    @maxbachmann replaced the old python34 package with the generic python package installing a more modern python version on Red Hat systems. Many thanks for that!

    Allow Gui to connect again #2416

    This is a quick work-around allowing the gui to connect to core over the enclosure bus again. A change in the recently upgraded tornado made this fail.

    Allow showing DEBUG in CLI #2421

    The cli now always disregards the DEBUG message filter, relying solely on the log level setting.

    Fix Hotword selection when precise development models are activated #2418

    The recent update of hotword config loading included a bug where the settings from different places wasn't merged correctly. This fix handles the merging properly.

    Support for Porcupine hotword engine #2139, #2424

    @alumae submitted a PR to allow the usage of the porcupine hotword engine by picovoice. Many thanks for this awesome feature.

    Langauge parsing

    • Handle extracting number from strings with %, many thanks @ChanceNCounter #2413
    • Clean up time resolution code, also @ChanceNCounter! #2432

    Documentation

    • Readthedocs generation code was cleaned up #2399
    • Typo fix, thanks @PFischbeck for spotting and fixing #2427
    Source code(tar.gz)
    Source code(zip)
  • release/v19.8.4(Dec 6, 2019)

    This release comes with many small updates and more excitingly a couple of new contributors

    Geolocation API #2393

    The API is now prepared for the comming update of the mycroft backend offering a geolocation api. This will enable retrieving coordinates from names of places.

    dev_setup.sh update #2388, #2390, #2401, #2403, #2406, #2414

    • The dev_setup.sh os install instructions has been separated into separate functions to make the script a bit more easy to read. In addition to this the installer for Arch Linux and certain versions of Debian has been fixed. In addition a --clean option now exists allowing to wipe Mycroft from the system. Big thanks to @gbaptista, @maxbachmann for helping out with this.

    msk 0.3.14

    The latest release of msk adds License selections and the option to add a manifest.yml at skill creation time. And some splashes of color to make it more readable.

    Python 3.8 #2391, #2400

    Python 3.8 is now included in the Travis tests and is running the mycroft stack nicely.

    Handle missing .intent files #2411

    @domcross added a fallback to the en-us folder in case the .intent file doesn't exist. This allows skills that aren't fully translated to be loaded. Many thanks.

    Language improvements

    • Improve dutch language functions, thanks @mikewoudenberg #2385
    • Speed up extract_number, thanks @maxbachmann #2402
    • make time output more natural, thanks @maxbachmann #2386

    Misc

    • Fix simple audio backend Mimetype lookup when http request fails #2389
    • Fix usage of Ctrl+C in the simple cli #2409
    • Speed up the SSML tests, big thanks to @maxbachmann for this. #2405
    • Clean up python2 remnants, big thanks to @maxbachmann for this. #2396
    • Use flake8 instead of pycodestyle in travis. Thanks @cclauss #2251
    • Update adapt to 0.3.4 #2394
    • Simplify setting a custom wakeword #2395
    Source code(tar.gz)
    Source code(zip)
  • release/v19.8.3(Nov 15, 2019)

    Yo it's my turn, do drop the mic, old python 3.4 will have to take a hike It's served long and well It's been nice, it won't go to hell

    We've come a long way since the early days, we moved on and changed our ways first python two had to go It's 2019 and support for 3.4 is gone so we'll follow suite drop this snake, yo, hope you enjoyed this hot take.

    Boom Mic drop.

    Actual release notes

    So as the poetry slam entry above indicated, as of this version (19.8.3) we join the rest of the Python community and dropping support for Python 3.4. This was originally planned for 19.8.0 but the packaging changes for the Mark-1 wasn't completed and tested in time. This change will allow us to start updating a couple of the dependencies to newer versions. We now officially support Python 3.5 - 3.7, 3.8 is on the horizon.

    Fix Wakeword messagebus message #2367

    The recognizer_loop:wakeword message wasn't sent until after the STT was complete. Thanks to the work of @speedfox-uk the message is now sent as soon as the wakeword is detected.

    STT and TTS error handling #2372, #2374

    In case of errors when starting up the TTS and STT systems would fail quitely, Error logging has been added and a fallback mechanism using the default services.

    Speed up external interaction with the messagebus #2371

    The simple send script in the messagebus used by some of the mycroft commandline tools (mycroft-speak, mycroft-say-to) has been sped up by not requiring the remote settings to be fetched.

    Drop python 3.4 changes #2381

    In the process of dropping python gTTS was updated along with pillow (fixing a stability issue), and the

    Bugfixes

    • Handle negative frame count in Mic code #2377
    • Remove unnecessary code when using relative time #2364
    • Fix Error when shutting down a removed skill #2376
    • Fix reference leak in websocket client #2375
    • Fix Spanish Datetime tests running on November 1 #2378
    Source code(tar.gz)
    Source code(zip)
  • release/v19.8.2(Oct 21, 2019)

    Due to a possible major bug (voice process going haywire and filling the disk) this release got moved forward a couple of days.

    Improve mic handling #2365, #2368

    Especially the Mic Array v2 seemed prone to throw IO errors, this release adds a basic restart control allowing it to recover in some cases. The change also adds some extra safety to the mute/unmute operations which could theoretically cause an issue. In addition this resolves a possible issue with looping logging if an IOError occured.

    Ask Selection #2302

    The new MycroftSkill.ask_selection() method adds a simple way of asking the user to choose between a number of options. Many thanks to @JarbasAl for designing it. Read more about the method in the api documentation

    Fix trigger listening over messagebus for Picroft #2366

    The restructuring of how the get_response() or speak() with exepect_response=True methods triggers listening missed a special case on the Picroft platform. This small one-line change resolves the issue.

    Misc

    • Handling of fractions in Spanish #2356 (Big thanks to @ChanceNCounter)
    • Minor fixup of the project Readme #2352 (Thank you @moritzgloeckl )
    Source code(tar.gz)
    Source code(zip)
  • release/v19.8.1(Oct 10, 2019)

    This release features mainly bugfixes for issues introduced in 19.8.0 but also a couple of very welcome improvements.

    Replace the custom IS_TRAVIS environment variable with the standard CI #2252

    Big thanks to @cclauss for handling this and making the setup more standardized.

    Remove NTP sync reboots #2326

    Recent updates has improved the stability during and after NTP updates so the reboot is no longer necessary.

    Fix Mary TTS #2262

    Many thanks to @KishCom for updating the MaryTTS backend into a functional state.

    Remove Dialog repetition #2297

    @ChanceNCounter is to be commended for this little tweak making sure that the same dialog line isn't used twice in a row.

    Make sure get_response listen trigger is sent after the correct sentence #2351, #2360, #2361

    Attaches the listen trigger to the last chunk of a sentence instead of relying on the audio_output_end message.

    Spanish extract number improvements #2347

    @ChanceNCounter fixed an issue where the numbers were summed instead of returned as a list

    Update nice duration #2330

    Thanks to @ChanceNCounter the nice_duration now takes resolution as an argument.

    Bugfixes

    • Crash in logger when starting skills #2323
    • Load skill settings once only #2336
    • Restore tail queuing of event handlers #2353
    • Add missing __delitem__ method in Settings #2354
    • Make skill logs visible in tester #2359
    • Fix default arguments for noce_number, many thanks again @ChanceNCounter #2330

    Misc

    • remove skill manager classes config property #2283
    • .gitignore updated with vscode and coverage folders #2334
    • Add better logging for voice client #2331
    • Add mute information to the mic_status file #2317
    Source code(tar.gz)
    Source code(zip)
  • release/v19.8.0(Sep 24, 2019)

    At long last the 19.08 release is here.

    During these last 8 weeks (time sure flies) we've focused on refactoring the code to improve maintainability and to make it easier to improve Mycroft in the future. This has led to some major shifts in the structure of Mycroft and some backwards-incompatible changes. Most of these changes was flagged in the 19.02.0 release and the ones that weren't generally doesn't impact skill developers.

    Depreciations

    • Skill settings: MycroftSkill.settings.store() and MycroftSkill.settings.set_changed_callback() are deprecated and will be removed in v20.02. mycroft.skills.settings.save_settings() will replace the first mentioned and MycroftSkill.settings_changed_callback can be set replacing the second. Secondly this adds warning about features of the settingsmeta that hasn't been used since the switch to the new backend.

    During the coming month we will look through and mark more deprecated features...

    The Breaks

    The following are the breaking changes included in this major release

    • MycroftSkill.config no longer exists. Any skill specific settings should be made using the settings.json in the skills folder.
    • the SkillManager api was reworked and will not work as previously, locks are missing etc.
    • the listener config parameter record_utterances was completely replaced with the save_utterances
    • Config.init() to setup bus connections for the process configuration was replaced by Config.set_config_update_handlers()
    • Message parameter (and member) type was renamed to msg_type
    • WebSocketClient was renamed to MessageBusClient
    • Skill settings feature protecting existing members during the skill initialization was removed. This was a rarely used and frankly confusing feature

    The big Reorganizations

    Skill process startup #2237, #2260, #2263, #2265, #2279, #2280, #2311, #2316

    Refactors the SkillManager, moving complex logic into a couple of helper classes SkillLoader and SkillUpdater. Refactors the startup code to a simpler flow. All of this makes the startup of skills much speedier.

    Skill Settings #2287, #2306, #2312, #2313, #2314, #2315, #2319, #2320

    Major restructure splitting the settings metadata from the actual settings. This restores the skill settings to a simple dict instead of a vastly complex object.

    Mycroft Skill #2256, #2276, #2281, #2296

    The MycroftSkill class was refactored moving some of the complexity into helper classes. This also makes way for adding some mycroft skill Utils

    Skill tester #2284

    The skill tester was reorganized to make the code easier to follow.

    The Improvements

    Pulseaudio ducking support #2282

    The TTS can now trigger pulseaudio role ducking of roles (like music and video) lowering playing media while Mycroft is speaking

    Improved operation without listening indicator #2267

    The recording sent to STT lost a couple of audio frames right after the wake word trigger, this stores and prepends the lost frames to the STT data.

    Handle Precise download errors #2245

    Precise download could fail due to network errors and never restart leaving the user with pocketsphinx wakeword. This allows retrying and will use an existing precise installation if available.

    Fedora install #2257

    @vegerot contributed an update to the dev_setup.sh to make it work better on Fedora. Many thanks!

    Mint install #2209

    @fermulator fixed a couple of issues related to detecting Debian like OSes, this adds support for Mint among other distributions. Many thanks!

    Keyword munging #2303

    Long time contributor @JarbasAI found and fixed an issue with the keyword munging causing intents to fail if the intent contained the skill id. As always great work!

    Fix Mimic 2 Cache usage #2301

    Fixes an issue when the playback of the utterance wouldn't start if the .pho file for a cached utterance was missing.

    Warn if packages may be uninstalled during dev_setup.sh #2268, #2275

    This warns if a conflict in Ubuntu could lead to packages being uninstalled.

    intent_handler decorator update #2221

    the @intent_handler() decorator can now be used with padatious .intent files as well as adapt intents.

    Updated swedish time and number handling #2234

    Big thanks to @c0r73x for fixing these issues!

    Flake8 cleanup #2241. #2242

    Many thanks to @cclauss for looking through the code and fixing these issues.

    Clean the unittest from mocks from the mock module #2274

    Instead use the builtin unittest.mock. Many thanks to @mathmauney for contributing this.

    Add support for bus.get_response in skill tester #2284

    Add a basic mock of the get_response() bus method.

    Log viewer tool #2277

    A simple tool for merging and viewing all mycroft log files.

    Configuration tool #2290

    This tool validates configuration files before storing them making it harder to destroy a config.

    Make connection test more robust #2305

    Make a dns lookup as part of the test to validate that part along with the reachability of the outside world.

    Pairing check updates #2180, #2248

    Make sure the pairing check fails early if the identity information is missing and only initiate pairing for 401 errors from STT services behind mycroft pairing.

    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.14(Jul 24, 2019)

    This is one of those general improvement releases with lots of minor and some major things making quite a noticeable difference.

    Refactor messagebus subsystem #2213

    The code surrounding the messagebus was heavily refactored and improved.

    voice service startup improvements #2183

    The voice config was read multiple times on boot resulting in up to 4 restarts of precise when starting the service. this was resolved by improving the configuration change detection and loading of the service.

    Speedup skill service startup #2197

    The skill startup was reorganized slightly to load skills before trying to update as well as launch the settings fetching in a thread instead of blocking skill loading.

    Speedup audio service startup #2228

    The TTS service was loaded twice on startup, a fix in handling the config hash fixed the issue.

    Update "yes" aliases #2190

    @strugee submitted a couple of extra words for use when handling ask_yes_no(). Many thanks for that.

    Improve metrics #2196, #2198

    Only report stt timing if an utterance was returned and report skill id for skill handlers.

    Misc

    • Fix readthedocs documentation #2206
    • Allow may to not be a month #2187
    • Fix resting_screen_handler code when no name is provided #2185
    • configurable log locations #2192
    • fetch settings when pairing is completed #2211
    • Fix dev_setup.sh if terminal can't display color #2216
    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.13(Jul 1, 2019)

    This is the first in the reduced intensity release schedule adding a couple of fixes related to skill settings the inclusion of support for streaming STT's!

    Streaming STT #2149

    Support for streaming STT's were added thanks to the excellent work of @JPEWdev. In addition to the basic infrastructure a DeepSpeech streaming STT backend was included.

    Google Streaming STT #2160

    On top of the new Streaming STT infrastructure an update google streaming STT was added.

    Skill settings fixes #2172, #2177, #2182

    • Improve skills data cleaning before sending
    • Make sure delayed checks are resumed
    • Update msm to improve skill GID in skills manifest

    Add state requests to commoniot skill framework #2150

    This updates the common IoT skill to allow for query type requests (e.g. "what is the living room temperature," "where is my phone," and "is the bedside outlet on").

    Update packages for debian/ubuntu based distributions #2167

    Big thanks to @MichaIng for cleaning this up. Checkout his project dietPi (Mycroft is a pending feature)

    Cleanup bash scripting in dev_setup.sh #2166

    Makes the script much more concise and less prone to errors using some of the features bash supplies. Shout out to @MichaIng for providing this!

    Time to system #2158

    This time util function converts a a Time/Datetime object with timezone info to a local system time.

    Miscellaneous

    • Allow to schedule events in fractions of seconds (both ints and floats). #2154
    • Remove stop() as an abstract method, since this doesn't need to be provided by all skills. #2156
    • Remove unused subprocess module from simple audio backend. #2157
    • Update python2 style metaclass declarations to python3 style. #2163
    • Travis will now only build pull requests and the branches dev and master #2162
    • Fix bug with showing the entire help pages in the cli. #2151
    • Fix changing log level of voice service. #2169
    • Update os detection code in dev_setup.sh #2165, #2173
    • Test system now hides gui messages #2170
    • Update pychromecast to 3.2.2 #2168
    • Minor German spelling fix (@MichaIng) #2174
    • Lock cryptography module version to 2.6.1 #2176
    • Add mycroft.util.format to the api documentation #2178
    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.12(Jun 6, 2019)

    🇸🇪 This release on Sweden's national day brings mainly bugfixes but also small improvements to the Mycroft GUI.

    Restore functionality to store utterances locally #2141, #2145

    During previous refactoring the ability to locally store utterances was lost. This has now been restored.

    Skill settings update #2140

    After switching over to the new backend a couple of issues in the skill settings were noticed. This cleans up a couple of them and should make the code a bit tidier. For details see the relevant pull request.

    Show webpages on the GUI #2138

    @AIIX continues to build out the features of the mycroft GUI, this time adding methods for showing webpages and HTML code.

    Miscellaneous

    • Use yaml.safe_loadwhen loading settingsmeta.yaml files #2133
    • Upgrade Adapt to 0.3.3, fixing an issue with one_of()
    • Upgrade msk to 0.3.13, fixing the default layout of the README.md
    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.11(May 23, 2019)

    This release fixes rare issues where skills would not start when starting Mycroft without network connection.

    Update MSM to 0.7.6 #2136

    MSM could throw an unhandled exception if no network was available at all.

    Disable settings for padatious #2132

    Padatious was uploaded as a skill to the skill page.

    Correct the check for user / group of mycroft data folder #2135

    On systems where the user wasn't the same as the default group mycroft would request to change the permissions on each startup.

    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.10(May 23, 2019)

    Following the recent backend release, certain situations resulted in devices which couldn't be verified as registered by the server. Device ID is now sent as part of the registration to assist in debugging and resolving these issues.

    This release also corrects a problem with 'mycroft-use' script which would disable automatic device updates when you return to the stable mycroft-core package after testing an unstable release.

    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.9(May 22, 2019)

  • release/v19.2.8(May 22, 2019)

    This update brings code for better interacting with the skill settings on the new backend.

    Skill GID #2104

    Instead of the old identifier a skill_gid is used to identify the skill settings from the backend.

    Remove extra pauses when speaking initials #2126

    This fixes an error when chunking sentences for the tts service and will no longer do splits in initials like "N. Armstrong"

    Update of mycroft-say-to and mycroft-speak #2111

    You can now pipe strings to this script. Thanks for adding this @FruityWelsh

    Allow yaml in settingsmeta #2113

    Settingmeta can now also be written as a yaml file with a simpler and more forgiving syntax.

    Allow sending GUI pages over http(s) #2106

    @AIIX (Thanks!) submitted a feature to allow sending qml pages over https which is a required feature for remote GUI devices.

    Cache pre-loading for Mimic 2 #2115

    Some of the common dialogs are now prerendered and cached for Mimic2.

    Precise Input queue management #2124

    Update precise to handle a build up of unprocessed chunks.

    System QML pages for show_text and show_image #2121

    @AIIX built some nice templates for basic text and showing of images on the GUI that are accessed by self.gui.show_image() and self.gui.show_text() from a skill.

    Miscellaneous

    • Fix typo in config comment for log levels. Thanks @katecanaveral #2119
    • Switch from old pep8 to pycodestyle
    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.7(May 9, 2019)

    Apart from a nice update for the IoT skills this has been a quiet few weeks.

    Value support for IoTSkills #2109

    IoT skill protocol has been updated to allow catching of value fields. This also introduces a system for declaring the skill's supported featureset

    Request limiting on 422 or server errors #2116

    If posting settingsmeta to home.mycroft.ai receives a 402, 500 or 501 error it will reschedule the next retry 5 minutes into the future instead of the normal 1 minute.

    Typo-fix for german #2086

    Big thanks to @doczkal for spotting and fixing this.

    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.6(Apr 25, 2019)

    This release was made to fix a packaging issue for the Mark-1. No core changes but a change in the packaging script was made to hold the pip version at 19.0.3

    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.5(Apr 25, 2019)

    One of the shorter lived versions released, around 5 hours after this one 19.2.6 were released.

    Acknowledge #2096

    There is now an acknowledge sound that can be triggered by a skill instead of a verbal response self.acknowledge()

    IoTSkill Trigger Action #2099

    The trigger action is a primitive for triggering a IoT device function. Similar to the toggle but is intended to be stateless.

    Make precise default listener #2098

    For a long time precise has been available as a listener but only default on the Mark-1 and the picroft device. Now it will be the default listener on all platforms.

    Fix bus message logging #2101

    Big thanks to @JarbasAI for noticing and correcting this error.

    Audioservice list backends #2088

    The audioservice can now report the available backends, their type and some additional information.

    Miscellaneous

    • Skill tester restores get_response after tests are run #2100
    • Fix invalid chown in dev_setup.sh #2094
    • Update if automatically generated api documentation #2095
    Source code(tar.gz)
    Source code(zip)
  • release/v19.2.4(Apr 11, 2019)

    After concentrating on the server and then quickly removing the server related changes this release got pretty small.

    Restore Settings polling to 1 minute #2091

    Polling was restored from the emergency 5 minute level to the normal 1 minute

    Paused audio bug #2090

    Paused audio wasn't stopped correctly. The procedure was updated to unpause before stopping.

    Remove stop threshold #2089

    Stop threshold was a very old idea that never was used. this removes the traces of it from the code. Thanks @KathyReid for helping out with this one!

    Source code(tar.gz)
    Source code(zip)
Owner
Mycroft
An Open Source Artificial Intelligence for Everyone
Mycroft
تولید اسم های رندوم فینگیلیش

karafs کرفس تولید اسم های رندوم فینگیلیش installation ➜ pip install karafs usage دو زبانه ➜ karafs -n 10 توت فرنگی بی ناموس toot farangi-ye bi_namoos

Vaheed NÆINI (9E) 36 Nov 24, 2022
Pretty-doc - Composable text objects with python

pretty-doc from __future__ import annotations from dataclasses import dataclass

Taine Zhao 2 Jan 17, 2022
Spooky Skelly For Python

_____ _ _____ _ _ _ | __| ___ ___ ___ | |_ _ _ | __|| |_ ___ | || | _ _ |__ || . || . || . || '

Kur0R1uka 1 Dec 23, 2021
Malaya-Speech is a Speech-Toolkit library for bahasa Malaysia, powered by Deep Learning Tensorflow.

Malaya-Speech is a Speech-Toolkit library for bahasa Malaysia, powered by Deep Learning Tensorflow. Documentation Proper documentation is available at

HUSEIN ZOLKEPLI 151 Jan 05, 2023
Sequence-to-sequence framework with a focus on Neural Machine Translation based on Apache MXNet

Sequence-to-sequence framework with a focus on Neural Machine Translation based on Apache MXNet

Amazon Web Services - Labs 1.1k Dec 27, 2022
Text Normalization(文本正则化)

Text Normalization(文本正则化) 任务描述:通过机器学习算法将英文文本的“手写”形式转换成“口语“形式,例如“6ft”转换成“six feet”等 实验结果 XGBoost + bag-of-words: 0.99159 XGBoost+Weights+rules:0.99002

Jason_Zhang 0 Feb 26, 2022
Yes it's true :broken_heart:

Information WARNING: No longer hosted If you would like to be on this repo's readme simply fork or star it! Forks 1 - Flowzii 2 - Errorcrafter 3 - vk-

Dropout 66 Dec 31, 2022
Perform sentiment analysis on textual data that people generally post on websites like social networks and movie review sites.

Sentiment Analyzer The goal of this project is to perform sentiment analysis on textual data that people generally post on websites like social networ

Madhusudan.C.S 53 Mar 01, 2022
LightSeq: A High-Performance Inference Library for Sequence Processing and Generation

LightSeq is a high performance inference library for sequence processing and generation implemented in CUDA. It enables highly efficient computation of modern NLP models such as BERT, GPT2, Transform

Bytedance Inc. 2.5k Jan 03, 2023
[AAAI 21] Curriculum Labeling: Revisiting Pseudo-Labeling for Semi-Supervised Learning

◥ Curriculum Labeling ◣ Revisiting Pseudo-Labeling for Semi-Supervised Learning Paola Cascante-Bonilla, Fuwen Tan, Yanjun Qi, Vicente Ordonez. In the

UVA Computer Vision 113 Dec 15, 2022
Türkçe küfürlü içerikleri bulan bir yapay zeka kütüphanesi / An ML library for profanity detection in Turkish sentences

"Kötü söz sahibine aittir." -Anonim Nedir? sinkaf uygunsuz yorumların bulunmasını sağlayan bir python kütüphanesidir. Farkı nedir? Diğer algoritmalard

KaraGoz 4 Feb 18, 2022
This project converts your human voice input to its text transcript and to an automated voice too.

Human Voice to Automated Voice & Text Introduction: In this project, whenever you'll speak, it will turn your voice into a robot voice and furthermore

Hassan Shahzad 3 Oct 15, 2021
🤗Transformers: State-of-the-art Natural Language Processing for Pytorch and TensorFlow 2.0.

State-of-the-art Natural Language Processing for PyTorch and TensorFlow 2.0 🤗 Transformers provides thousands of pretrained models to perform tasks o

Hugging Face 77.3k Jan 03, 2023
A simple Streamlit App to classify swahili news into different categories.

Swahili News Classifier Streamlit App A simple app to classify swahili news into different categories. Installation Install all streamlit requirements

Davis David 4 May 01, 2022
A library for end-to-end learning of embedding index and retrieval model

Poeem Poeem is a library for efficient approximate nearest neighbor (ANN) search, which has been widely adopted in industrial recommendation, advertis

54 Dec 21, 2022
Understand Text Summarization and create your own summarizer in python

Automatic summarization is the process of shortening a text document with software, in order to create a summary with the major points of the original document. Technologies that can make a coherent

Sreekanth M 1 Oct 18, 2022
Korean Sentence Embedding Repository

Korean-Sentence-Embedding 🍭 Korean sentence embedding repository. You can download the pre-trained models and inference right away, also it provides

80 Jan 02, 2023
A natural language modeling framework based on PyTorch

Overview PyText is a deep-learning based NLP modeling framework built on PyTorch. PyText addresses the often-conflicting requirements of enabling rapi

Facebook Research 6.4k Dec 27, 2022
Finding Label and Model Errors in Perception Data With Learned Observation Assertions

Finding Label and Model Errors in Perception Data With Learned Observation Assertions This is the project page for Finding Label and Model Errors in P

Stanford Future Data Systems 17 Oct 14, 2022
Code for "Semantic Role Labeling as Dependency Parsing: Exploring Latent Tree Structures Inside Arguments".

Code for "Semantic Role Labeling as Dependency Parsing: Exploring Latent Tree Structures Inside Arguments".

Yu Zhang 50 Nov 08, 2022