• Stars
    star
    6,472
  • Rank 5,957 (Top 0.2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 8 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Mycroft Core, the Mycroft Artificial Intelligence platform.

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:password@proxy_hostname.com:proxy_port
$ export https_port=http://user:password@proxy_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

More Repositories

1

mimic3

A fast local neural text to speech engine for Mycroft
Python
1,000
star
2

mycroft-precise

A lightweight, simple-to-use, RNN wake word listener
Python
814
star
3

enclosure-picroft

Mycroft interface for Raspberry Pi environment
Shell
802
star
4

mimic1

Mycroft's TTS engine, based on CMU's Flite (Festival Lite)
C
782
star
5

mycroft-skills

A repository for sharing and collaboration for third-party Mycroft skills development.
HTML
757
star
6

adapt

Adapt Intent Parser
Python
707
star
7

mimic-recording-studio

Mimic Recording Studio is a Docker-based application you can install to record voice samples, which can then be trained into a TTS voice with Mimic2
JavaScript
491
star
8

Mycroft-Android

Android companion app, sends commands from your Android device to your Mycroft system and returns the output as speech or other medium to the Android device.
Kotlin
343
star
9

mycroft-gui

The Graphical User Interface used by the Mycroft Mark II and more
C++
164
star
10

padatious

A neural network intent parser
Python
158
star
11

selene-backend

Microservices and web apps to support Mycroft devices
Python
143
star
12

ZZZ-RETIRED__openstt

RETIRED - OpenSTT is now retired. If you would like more information on Mycroft AI's open source STT projects, please visit:
143
star
13

mimic3-voices

Voice models for Mimic 3 text to speech system
HTML
115
star
14

personal-backend

WORK IN PROGRESS: A Flask personal backend alternative for running your own version of https://home.mycroft.ai
Python
114
star
15

hardware-mycroft-mark-II

Mycroft's Mark II Rpi mechanical, electrical and industrial designs
Python
106
star
16

docker-mycroft

Mycroft Development Environment inside Docker!
Dockerfile
98
star
17

hardware-mycroft-mark-1

Open-sourcing our mechanical, electrical and industrial designs
92
star
18

MycroftCore-Android

MycroftCore on Android as a native app
Java
86
star
19

documentation

Mycroft.AI documentation for all public facing technical components.
Python
81
star
20

sonopy

A simple audio feature extraction library
Python
78
star
21

lingua-franca

Mycroft's multilingual text parsing and formatting library
Python
73
star
22

selene-ui

Web applications to support the Mycroft AI project.
TypeScript
48
star
23

Precise-Community-Data

Pre-trained Precise models and training data provided by the Mycroft Community
47
star
24

ZZZ-RETIRED__mycroft-core-documentation

ZZZ ARCHIVED - Documentation for Mycroft Core.
34
star
25

mycroft-skills-kit

Mycroft Skills Kit
Python
29
star
26

installers

Installers and instructions for getting Mycroft working on different equipment, OS platforms and desktops.
Shell
28
star
27

contributors

Contributors building the Mycroft open source project
23
star
28

ZZZ-RETIRED__rpi3-headless-wifi-setup

Retired project, replaced by:
Python
21
star
29

mycroft-dinkum

A consumer ready version of Mycroft specifically for the Mark II.
Python
19
star
30

skill-weather

Mycroft AI official Weather Skill, providing weather conditions and forecasts.
Python
19
star
31

skill-wiki

Query Wikipedia articles
Python
18
star
32

skill-hello-world

Mycroft AI Hello World Skill - use this basic Skill to see how Mycroft AI Skills work.
Python
16
star
33

mimic1-core

Core of the mimic TTS system
C
14
star
34

mycroft-skills-manager

Mycroft Skills Manager
Python
14
star
35

skill-alarm

Mycroft AI official Alarm Skill - Set single and recurring alarms, with a choice of alarm sounds
Python
14
star
36

skill-reminder

Mycroft AI official Reminder Skill - set reminders
Python
14
star
37

skill-singing

Mycroft AI official Singing Skill - Mycroft speaks lyrics to popular songs
Python
14
star
38

mycroft-messagebus-client

Python module for connecting to the mycroft messagebus
Python
13
star
39

skill-installer

Mycroft AI official Skill installation Skill - allowing voice installation of Skills
Python
12
star
40

mycroft-precise-python-experiments

Python Experiments for Mycroft Precise Wake Word Listener
Python
12
star
41

snapcraft-mycroft-core

This project is for building mycroft-core snaps
Jsonnet
12
star
42

pylisten

A simple pyaudio microphone interface
Python
11
star
43

padaos

A rigid, lightweight, dead-simple intent parser
Python
11
star
44

ZZZ-RETIRED__adapt-documentation

Retired repo, formerly was the source of docs shown on https://adapt.mycroft.ai
11
star
45

skill-desktop-launcher

Mycroft AI official Desktop Launcher Skill - launch applications in Linux
Python
11
star
46

skill-volume

Mycroft AI official Volume Skill - control the volume of your Device
Python
10
star
47

precise-data

Binary data used for Mycroft Precise
9
star
48

fallback-duckduckgo

Mycroft AI official Duck Duck Go Skill - used as a fallback if an Utterance can't be matched to an Intent
Python
9
star
49

skill-npr-news

Mycroft AI official News Skill, providing the latest news report from your favorite broadcast.
Python
9
star
50

enclosure-mark1

Replacing the faceplate repo
C++
9
star
51

mycroft-skills-data

Metrics and data relating to Skills built for the Mycroft Core system
8
star
52

ML-Tools

Tools for ML Research
Jupyter Notebook
8
star
53

plugin-tts-mimic3

Text to speech plugin for Mycroft using Mimic 3
Python
8
star
54

skill-stop

Mycroft AI official Stop Skill - stop the actions of a Skill that are in progress
Python
8
star
55

fallback-wolfram-alpha

Mycroft AI official Wolfram Alpha Skill - used as a fallback if an Intent is not matched
Python
8
star
56

skill-audio-record

Mycroft AI official Audio Record Skill - record audio and play it back
Python
8
star
57

ZZZ-RETIRED__mycroft-slackbot

Retired, Mycroft Slack is no longer active
Java
8
star
58

skill-stock

Mycroft AI official Stock Skill - providing current prices of stocks
Python
7
star
59

skill-joke

Mycroft AI official Joke Skill - provide basic jokes
Python
7
star
60

skill-camera

Camera Skill for Mycroft AI
QML
7
star
61

mycroft-timer

Mycroft AI official Timer Skill - set multiple named timers
Python
7
star
62

skill-homescreen

Python
7
star
63

skill-mark-2

Control of the Mycroft Mark 2 enclosure
QML
7
star
64

skill-personal

Mycroft AI official Personality Skill - answers basic personality questions around Mycroft
Python
7
star
65

skill-date-time

Mycroft AI official Date and Time Skill, providing the current time, date and day of week for cities around the world.
Python
6
star
66

mycroft-gui-mark-2

QML
6
star
67

skill-playback-control

Mycroft AI official Playback Control Skill - providing Intents for other Skills to use common playback functionality (via Common Play)
QML
6
star
68

skill-spelling

Mycroft AI spelling Skill
Python
6
star
69

skill-ip

Mycroft AI official IP Skill - find the IP address of your Device
Python
5
star
70

skill-fallback-persona

Mycroft AI official Persona Skill - used as a fallback if the Utterance can't be matched to an Intent
Python
5
star
71

mark-ii-sandbox

Image for the Mark II based on Raspberry Pi OS
Python
5
star
72

skill-configuration

Mycroft AI official Configuration Skill - synchronize settings with home.mycroft.ai
Python
5
star
73

docker-openvpn-client

An OpenVPN client built into a docker container. Allows for attaching other containers to a VPN
Shell
5
star
74

skill-query

Skill Negotiating for the best source for an answer via Common QA
Python
5
star
75

mimic1-packaging

Shell
5
star
76

skill-pairing

Mycroft AI official Pairing Skill - connect your Device to home.mycroft.ai
QML
5
star
77

skill-speak

Mycroft AI official Speak Skill - make Mycroft speak back text
Python
5
star
78

mycroft-wifi-setup

Mycroft WiFi Setup Client
Python
4
star
79

respeaker-dev-filesystem

Development file system for Seeed ReSpeaker Core v2
4
star
80

mimic1-full

Build mimic (without runtime plugins if desired)
C
4
star
81

pako

The universal package manager library
Python
4
star
82

fallback-unknown

Mycroft AI official Unknown Fallback Skill - used if no Intent is matched to an Utterance
Python
4
star
83

arriz

A real-time array visualization tool
Python
4
star
84

skill-release-test

Mycroft AI official Release Test Skill - used during `mycroft-core` release testing
Python
4
star
85

mycroft-mark-1

Mycroft AI official Mark 1 Skill - control the Mark 1 enclosure
Python
4
star
86

rnn-demo

Demo of using various recurrent networks to make streaming predictions
Python
4
star
87

skill-support

Mycroft AI official Support Skill - create information for a support request using voice
Python
3
star
88

mycroft-devices

Shell
3
star
89

skill-send-sms

Python
3
star
90

design

Place to share designy things from Mycroft.
3
star
91

mycroft-core-release

A project to automate the mycroft-core release process.
Python
3
star
92

mimic1-documentation

Documentation for https://github.com/mycroftai/mimic1
3
star
93

skill-naptime

Mycroft AI official Naptime Skill - put Mycroft to sleep for a while
Python
3
star
94

mimic1-english

English language support for the mimic TTS system
C
3
star
95

ZZZ-RETIRED__chatter

A Mycroft AI chatbot solution framework
3
star
96

skill-repeat-interactions

Mycroft AI official Repeat Interaction Skill - repeat recent commands
Python
3
star
97

mark-ii-product

Software packaging for the default Mark II operating system.
C
2
star
98

skill-version-checker

Mycroft AI official Version Checker Skill - check the version of mycroft-core that is installed
Python
2
star
99

skill-dial-call

Python
2
star
100

skill-standard-gui

Handles standard, non-platform-specific GUI activities.
Python
2
star