SoloVeniaASaludar, Mycroft Core pulls
Branch: next
Clone or download
Pull request Compare This branch is 17 commits ahead, 1779 commits behind MycroftAI:dev.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Issues 356 - Removing non existent location from docs Dec 17, 2016
mycroft Update pocketsphinx_audio_consumer.py Jul 16, 2017
scripts Improve mycroft.sh (MycroftAI#835) Jun 15, 2017
test
.coveralls.yml
.gitignore Improve mycroft.sh (MycroftAI#835) Jun 15, 2017
.travis.yml Revert "This add comments to document the message class" Jun 29, 2017
ACKNOWLEDGEMENTS.md Added aknowledgement for sound effect Jul 21, 2016
CONTRIBUTING.md Google-style docstrings and other minor details Apr 10, 2017
LICENSE.md Revert "Update LICENSE.md" (MycroftAI#402) Dec 16, 2016
README.md Syntax, layout, and typo repairs. (MycroftAI#819) Jul 5, 2017
build_host_setup_arch.sh Issues 568 - Fix dependencies to build latest mimic Mar 29, 2017
build_host_setup_debian.sh Correct pkg-config package name Mar 31, 2017
build_host_setup_docker.sh adding in docker setup script May 21, 2017
build_host_setup_fedora.sh
dev_setup.sh Default to building mimic if not otherwise set. Jul 6, 2017
mycroft-base-MANIFEST.in Fix model folder in manifest Jul 6, 2017
mycroft-base-setup.py MycroftAI#449 Added skill_container to mycroft-base-setup.py (Mycroft… Jan 20, 2017
mycroft.sh Added ./mycroft.sh restart functionality Jun 30, 2017
requirements.txt
skiller.sh Adding a script to generate a skill May 22, 2017
skills-sdk-MANIFEST.in Issues 356 - Rebasing with master Dec 17, 2016
skills-sdk-setup.py Issues 96 - Removing old defaults pack from sdk Jun 10, 2016
start.sh + Jul 8, 2017
test-requirements.txt Issues-4 - Fix pep8 errors. May 23, 2016

README.md

Mycroft Build Status Coverage Status

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

Documentation: https://docs.mycroft.ai

Release Notes: https://docs.mycroft.ai/release-notes

Pair Mycroft Device: https://home.mycroft.ai

Mycroft Chat Network: https://mycroft.ai/to/chat

Looking to join in developing? Check out the Project Wiki for tasks you can tackle!

Getting Started

Ubuntu/Debian, Arch, or Fedora

  • Run the build host setup script for your OS (Ubuntu/Debian: build_host_setup_debian.sh, Arch: build_host_setup_arch.sh, Fedora: build_host_setup_fedora.sh). This script installs necessary packages. Please read it!

  • Run dev_setup.sh (Feel free to read it, as well).

  • Restart session (Rebooting, or logging out and back in might work).

Other Environments

The following packages are required for setting up the development environment and are installed by build_host_setup scripts:

  • git
  • python 2
  • python-setuptools
  • python-virtualenv
  • pygobject
  • virtualenvwrapper
  • libtool
  • libffi
  • openssl
  • autoconf
  • bison
  • swig
  • glib2.0
  • s3cmd
  • portaudio19
  • mpg123
  • flac
  • curl

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 software is configured to use Home. Upon any request such as "Hey Mycroft, what is the weather?", you will be informed that your device needs to be paired. Mycroft will speak a 6-digit code, which is entered into the pairing page within the Mycroft Home site.

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

Pairing information generated by registering with Home is stored in:

~/.mycroft/identity/identity2.json <-- DO NOT SHARE THIS WITH OTHERS!

It is useful to know the location of this identity file when troubleshooting any device pairing issues.

Using Mycroft Without Home.

If you do not wish to use the Mycroft Home service, you may insert your own API keys into the configuration files listed below in configuration.

The place to insert the API key looks like the following:

[WeatherSkill]

api_key = ""

Put a relevant key inside the quotes and Mycroft Core should begin to use the key immediately.

API Key Services

These are the keys currently used in Mycroft Core:

Configuration

Mycroft configuration consists of 4 possible locations:

  • mycroft-core/mycroft/configuration/mycroft.conf(Defaults)
  • Mycroft Home (Remote)
  • /etc/mycroft/mycroft.conf(Machine)
  • $HOME/.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.

Running Mycroft Quick Start

To start essential tasks, run ./mycroft.sh start. This command will start the Mycroft service, skills, voice, and command line interface (cli) using --quiet mode in a detached screen. Output of these screens will be written to their respective log files (e.g. ./log/mycroft-service.log).

Optionally, you may run ./mycroft.sh start -v which will start the Mycroft service, skills, and voice.

You may also run ./mycroft.sh start -c which will start the Mycroft service, skills and command line interface.

To stop Mycroft, run ./mycroft.sh stop. This command will terminate all detached screens.

To restart Mycroft, run ./mycroft.sh restart.

Quick Screen Tips

  • Run screen -list to see all running screens.

  • Run screen -r [screen-name] (e.g. screen -r mycroft-service) to reattach a screen.

  • To detach a running screen, press Ctrl + a, Ctrl + d

See the screen man page for more details.

Running Mycroft

With start.sh

Mycroft provides start.sh to run a large number of common tasks. This script uses a virtualenv created by dev_setup.sh. The usage statement lists all run targets, but to run a Mycroft stack out of a git checkout, the following processes should be started:

  • Run ./start.sh service
  • Run ./start.sh skills
  • Run ./start.sh voice

Note: The above scripts are blocking, so each will need to be run in a separate terminal session.

Without start.sh

Activate your virtualenv.

With virtualenv-wrapper:

workon mycroft

Without virtualenv-wrapper:

source ~/.virtualenvs/mycroft/bin/activate
  • Run PYTHONPATH=. python client/speech/main.py # Main speech detection loop, which prints events to stdout and broadcasts them to the message bus.
  • Run PYTHONPATH=. python client/messagebus/service/main.py # Main message bus, implemented via web sockets.
  • Run PYTHONPATH=. python client/skills/main.py # Main skills executable, loads all skills under skills directory.

Note: The above scripts are blocking, so each will need to be run in a separate terminal session. Each terminal session will require that the virtualenv be activated. There are very few reasons to use this method.

FAQ / Common Errors

When running Mycroft, I get the error mycroft.messagebus.client.ws - ERROR - Exception("Uncaught 'error' event.",)

This means that you are not running the ./start.sh service process. In order to fully run Mycroft, you must run ./start.sh service, ./start.sh skills, ./start.sh voice, and ./start.sh cli all at the same time. This can be done using different terminal windows, or by using the included ./mycroft.sh start command, which runs all four process using screen.