A very simple AI-based personal assistant written in Python.
Switch branches/tags
Nothing to show
Clone or download
ajminich Complete rewrite using Python.
It's pretty amazing how far speech recognition has come in the last 4 years, at
least with regards to free, high-quality open source libraries. Back in 2011,
the only libraries I was able to find were CMU's Sphinx and several pay-for-key
sites. Nowadays, Google, Microsoft, api.ai, and several other companies have
very reliable APIs that can be pinged with audio for free; Sphinx also appears
to have come a long way in the last few years.

With this in mind, I've completely rewritten the program these significantly
more modern libraries.

- Now using SpeechRecognition package with support for Google Speech
  Recognition API.
- Started a jarvis package that can serve as a static processor.
- Added a listener script based on the example in SpeechRecognition.
- Completely removed Java-based Sphinx resources, as they are now supported
  natively in Python.

My plan is to treat this project more as glue than fundamental source code,
given the immense amount of resources that are readily available for building
the original concept.
Latest commit 57ae986 Apr 5, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
jarvis Complete rewrite using Python. Apr 5, 2016
.gitignore Complete rewrite using Python. Apr 5, 2016
LICENSE.txt Complete rewrite using Python. Apr 5, 2016
README.md Complete rewrite using Python. Apr 5, 2016
listen.py Complete rewrite using Python. Apr 5, 2016
requirements.txt Complete rewrite using Python. Apr 5, 2016


Project Jarvis

by AJ Minich

Jarvis is a personal assistant that uses natural language processing and a database of pre-programmed functionality to respond to user requests. Jarvis is driven by a Java-based backend that performs core operations, and can be used through various interfaces.

Jarvis is named after Tony Stark's automated assistant in the Ironman series.


Here are some examples of anticipated behavior::

> jarvis
Yes sir?

> jarvis remind me to set a timer for 5 minutes
Timer set for 3:04:32 PM.

> jarvis stop listening
Yes sir, I will be offline until the next time you type "jarvis".


To set up this project on a local machine, perform the following steps.


  • git
  • Unix-based machine
  • pip


First, clone this repository to the local machine or server.


If you haven't already, install the virtualenv package:

$ pip install virtualenv

Then create a virtualenv:

$ virtualenv venv

Load the new environment:

$ source venv/bin/activate

Install PyAudio

Follow the directions at https://people.csail.mit.edu/hubert/pyaudio/ to install PyAudio.

Note that portaudio.h may not link correctly on Mac OSX machines; in this case run:

$ pip install --global-option='build_ext' --global-option='-I/usr/local/include' --global-option='-L/usr/local/lib' pyaudio


Install dependencies using pip:

$ pip install -r requirements.txt


To run a basic example, start the included listener:

$ python listen.py


To Do


  • Rewrite project in Python using the SpeechRecognition package.


None yet


The Jarvis and Ironman names are trademark of Marvel Entertainment, LLC. I do not own the rights to these.