Voice assistants offered by Amazon, Google, and Apple allow you to perform many operations like searching, setting reminders, and checking the weather with a voice command. However, these companies are not known for respecting the privacy of its users, which is a concern that people have when using these products. On the other hand, some people would like to be able to customize their voice assistant and add more capabilities to it.
Mycroft is the open source alternative to these assistants. It is an open source assistant that you can install on a device like a Raspberry Pi. I was interested in buying a Raspberry Pi a few weeks ago, but I was not sure what I wanted to use it for. When I came across this project, I was glad I found this project and immediately became interested in making my own voice assistant. With the software provided, it is simply a matter of installing and configuring it.
Installing Mycroft was an easy process. I tried it out on my computer first and cloned the project’s repository onto my computer. Then, I navigated into the directory and ran the shell script. The script then walked me through the installation process. I had the option to customize it, but I decided to keep things simple for now. In the end, I did not have any trouble installing it and after pairing the device on the Mycroft website, it was ready to be used.
I then tried Picroft, which can be installed right on the Raspberry Pi. It works and the installation and pairing processes were also simple. However, my speaker and microphone were experiencing problems. I do not think this was a problem with Picroft itself, but there was not really a way to configure my audio settings to ensure they worked, so the command line interface offered by Picroft was not ideal for me. Instead, I replaced the operating system with Raspbian OS and then installed Mycroft for Linux. With this, I could use Mycroft while using the Raspbian OS interface for configuring audio device options.
I did not try installing it on an Android device and the documentation for it is incomplete. However, an .apk file is available for you to download and compile in a program like Android Studio, which you can then load onto your Android device. As for Windows and MacOS, there is currently no version available for those operating systems, but those versions are currently being worked on.
Using It and Downloading Skills
Now, comes the fun part. Mycroft already comes with a lot of the default skills such as checking the weather, setting reminders, and executing search queries and they all work well. If you wanted more skills, you can download them from the Mycroft Skills Marketplace. With the marketplace, all skills are submitted by contributors, and the skills go through a vetting process to ensure that the skill meets the standards of the Mycroft AI team. If the skill passes all of the stages, it will then be added to the skills repository and the marketplace.
Mycroft seems to respond well to the commands most of the time. There were however, a few times when it was unable to hear my commands. I found myself having to repeat my command more slowly to ensure that Mycroft heard my words. There were even times when it heard me incorrectly. When I looked at the output in the logs, the output was different than what I said. Mycroft also pronounces some words incorrectly where words were either slurred or syllables were pronounced oddly. Lastly, Mycroft is sensitive and will sometimes falsely activate. Whether I was talking to my friends, if I was watching a video, or listening to music, Mycroft will pick it up, think it is the wake word, and activate. Its sensitivity can be decreased, but the problem can still occur regardless. However, despite these flaws, Mycroft is still a decent project that does what it needs to do.
Developing Mycroft Skills
The ability to create my own skills was part of the reason why I installed Mycroft. To create a skill, you will need to use the Mycroft Skills Kit creator tool. To use that tool, simply run
mycroft-msk create in the
mycroft-core directory and the setup process will begin. You will be asked to fill out information to construct your README file as well as some inputs to create files for your first intent and vocab files as part of the skill’s structure. After that, you can begin working on your skill, which is programmed using the Python programming language.
The documentation for creating skills is well-written and easy to follow. It introduces the basics of skills like the skill structure and how Mycroft intents and responses work. Then it will delve into more advanced concepts such as designing user interactions and interfaces as well as processing common queries.
In the end, the skill I developed for it was a command for obtaining bus arrival times for bus stops in my city using the city’s public transportation API. By telling Mycroft to obtain the schedule for a bus stop, it makes a GET request and returns the estimated number of minutes until a bus arrives and at what estimated time. People have made all kinds of skills and the collection will continue to expand.
Contributions to Mycroft
As it is open source, there are several opportunities to lend a hand to the project. In addition to developing skills to teach Mycroft, you can help out in other ways. Here are some of the ways people can contribute to the project:
- Opting into the open dataset, allowing Mycroft to take your usage data to improve the product.
- Teaching Mycroft how to pronounce words correctly.
- Translating Mycroft to be used in other languages.
Mycroft is a great voice assistant that focuses on privacy and is open-source. By itself, it has a lot of the commands that one would use on a regular basis but its open-source nature allows users to install new skills and expand on its knowledge. It is easy to install and has a lot to offer. While it does have its flaws, with so many people interested in contributing to it, the product will certainly get better over time. If you need a voice assistant that is open source and is focused on privacy, consider looking into Mycroft.