Go to file
Arron Atchison 340542df2a Merge pull request #355 from MycroftAI/issue/remove-weather-condistion-dialog
Removed weather condition dialog
2016-09-01 09:43:54 -05:00
audio-accuracy-test Add new listener config options- Fixes #260 (#266) 2016-07-07 18:24:52 -05:00
doc Issues-4 - Fix pep8 errors. 2016-05-23 17:23:47 +00:00
mycroft Removed weather condition dialog 2016-09-01 09:28:10 -05:00
scripts Issue #322 - Fix creation of logs (#323) 2016-08-10 14:28:37 -05:00
test Fix unused imports (#296) 2016-07-18 15:45:11 -05:00
.gitignore Issue #322 - Fix creation of logs (#323) 2016-08-10 14:28:37 -05:00
.travis.yml Issues 125 - Updating travis to run start.sh for unit test 2016-06-09 18:11:49 -04:00
ACKNOWLEDGEMENTS.md Added aknowledgement for sound effect 2016-07-21 13:43:12 -05:00
CONTRIBUTING.md Issues 143 - Update Contributing.md (#144) 2016-06-14 16:07:05 -04:00
LICENSE.md In the 1970s computer users had to understand the arcane syntax of the machines they used. They programed their computers using the machine's native language and hardly gave it a thought. 2016-05-20 09:16:01 -05:00
README.md Updated package list to match build_host_setup.sh 2016-08-04 22:22:55 +10:00
build_host_setup_arch.sh Add setup script for arch linux 2016-08-26 16:35:54 -04:00
build_host_setup_debian.sh I changed the name of build_host_setup.sh to build_host_setup_debian.sh becasue of the inclusion of build_host_setup_fedora.sh 2016-08-16 09:52:33 -05:00
build_host_setup_fedora.sh install rpmfusion repository 2016-07-29 00:50:52 +08:00
dev_setup.sh I removed the install-pocketsphinx.sh script from the dev_setup again. Maybe I'll fix it later 2016-07-29 14:58:07 -05:00
mycroft-base-MANIFEST.in fix a typo naming the new volume sound 2016-07-21 15:39:09 -05:00
mycroft-base-setup.py changed project name from Mycroft to mycroft-core in mycroft-base-setup.py 2016-08-01 14:05:22 -05:00
mycroft.sh Issues #259 - Move scripts out of root directory (#301) 2016-07-27 09:36:47 -05:00
requirements.txt fixed requirements.txt typo 2016-07-29 13:53:21 -05:00
skills-sdk-MANIFEST.in In the 1970s computer users had to understand the arcane syntax of the machines they used. They programed their computers using the machine's native language and hardly gave it a thought. 2016-05-20 09:16:01 -05:00
skills-sdk-setup.py Issues 96 - Removing old defaults pack from sdk 2016-06-09 23:05:03 -04:00
start.sh Cleaned up audio accuracy test and renamed 2016-06-23 15:07:01 -05:00
test-requirements.txt Issues-4 - Fix pep8 errors. 2016-05-23 17:23:47 +00:00

README.md

Mycroft Build Status

Full docs at: https://docs.mycroft.ai

Pair Mycroft instance with Cerberus Account Management Service: https://cerberus.mycroft.ai

Join the Mycroft Slack(chat) channel: http://mycroft-ai-slack-invite.herokuapp.com/

Getting Started in Ubuntu - Development Environment

  • run build_host_setup.sh (installs debian packages with apt-get, please read it)
  • run dev_setup.sh (feel free to read it, as well)
  • Restart session (reboot computer, or logging out and back in might work).

Getting Started in other environments

The following packages are required for setting up the development environment, and are what is installed by build_host_setup.sh

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

Cerberus Device and Account Manager

Mycroft AI, Inc. - the company behind Mycroft maintains the Cerberus device and account management system. Developers can sign up at https://cerberus.mycroft.ai

By default the Mycroft software is configured to use Cerberus, upon any request such as "Hey Mycroft, what is the weather?", you will be informed that you need to pair and Mycroft will speak a 6-digit code, which you enter into the pairing page on the Cerberus site.

Once signed and a device is paired, the unit will use our API keys for services, such as the STT (Speech-to-Text) API. It also allows you to use our API keys for weather, Wolfram-Alpha, and various other skills.

Pairing information generated by registering with Cerberus is stored in:

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

It's useful to know the location of the identity file when troubleshooting device pairing issues.

Using Mycroft without Cerberus.

If you do not wish to use our 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 the relevant key in between the quotes and Mycroft Core should begin to use the key immediately.

API Key services

These are the keys currently in use in Mycroft Core.

Configuration

Mycroft configuration consists of 3 possible config files.

  • mycroft-core/mycroft/configuration/mycroft.ini
  • /etc/mycroft/mycroft.ini
  • $HOME/.mycroft/mycroft.ini

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

Running Mycroft Quick Start

To start the essential tasks run ./mycroft.sh start. Which will start the service, skills, voice and cli (using --quiet mode) in a detched screen and log the output of the screens to the their respective log files (e.g. ./log/mycroft-service.log). Optionally you can run ./mycroft.sh start -v Which will start the service, skills and voice. Or ./mycroft.sh start -c Which will start the service, skills and cli.

To stop Mycroft run ./mycroft.sh stop. This will quit all of the 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 reatach 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 the 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 # the main speech detection loop, which prints events to stdout and broadcasts them to a message bus
  • run PYTHONPATH=. python client/messagebus/service/main.py # the main message bus, implemented via web sockets
  • run PYTHONPATH=. python client/skills/main.py # main skills executable, loads all skills under skills dir

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, and ./start.sh voice/./start.sh cli all at the same time. This can be done using different terminal windows, or by using the included ./mycroft.sh start, which runs all four process using screen.