Open Source Virtual Assistants, Part One

Many, many years ago, I was reading a science fiction novel (I no longer remember which one,) and there was a scene I still remember. The protagonist walks into her home, sits down, and says to her house, "Any messages?" The house responds with something like "You have 12 new messages, four related to work, and one from your mother." She then says, "Play the one from my mother." Ever since then (I think that must have been at least 30 years ago,) I've wanted that.

So when Amazon's Alexa came out, I bought one. I played with it for a while, and then after the second or third thing that made it clear it was not only a security nightmare, but a potential surveillance tool, I threw it in the trash. And although I have an Android phone, I rarely use OK Google, and don't ever plan to get a Google Home. These are not the virtual assistants of my dreams.

This post is just an overview about what I've discovered about what open source virtual assistants are out there. I'll be spending time trying out and reviewing each one in turn, and see if I can actually get a half-way decent one rolled together somehow.

Sadly, it's going to be really hard for an open source project to compete with Google, Amazon, Apple and other big companies. But then, that's what they said about Linux, isn't it? Who knows what the future holds if we pick a good one and run with it.

This field still feels pretty wide open. The first one I came across in my research is called Stephanie. Unfortunately, it looks moribund - there hasn't been a commit in over 9 months, the community subreddit hasn't seen a post in over a year. So I'm going to put this one in the dust bin.

Mycroft is a totally different story. It is an active project, with 80 contributors, and the last commit was yesterday. There is a company behind it, and it is available on multiple platforms, including Raspberry Pi, Linux and Android. The company behind it is selling hardware, and looking for investors.

Jarvis has been around for longer than the others, but isn't a super active project. It has only 17 contributors, and the last commit was in February, 4 months ago. There is a company called Snips which seems to be trying to build an easier interface on top of Jarvis.

Lucida is a Java-based project (unlike most, which are Python-based,) which also looks moribund. It hasn't had a commit for almost a year.

Dragonfire is a virtual assistant primarily for Ubuntu-based desktops (although there is an android client.) It seems to be geared primarily toward making desktop tasks voice-activated, rather than providing a lot of virtual assistant like features.

Saiy is an Android-based virtual assistant, written in Java. It looks interesting, except if you want to use it without ads (or in-app purchases,) you'll have to install it somehow on your own without using the Google Play version.

I'll be reviewing Mycroft and Jarvis (& Snips), as those are the ones that are closest to what I'm looking for. I'll also be writing blog posts on how to roll your own virtual assistant using Python.

Next up:

  • Part 2: Mycroft

  • Part 3: Jarvis & Snips

  • Part 4: Roll your own using Raspberry Pi - what you need to get started

  • Part 5: Roll your own volume 2 - how it works

links

social