Silvius: Online Programming by Voice

Silvius is an open source system for writing code by voice. Speak characters and words and they are typed for you automatically. You can try it on our server, or set it up yourself.

Setup Instructions

  1. Install dependencies (only works on Linux currently):

    $ sudo apt-get install git python python-ws4py python-pyaudio libjansson4 xdotool
  2. Download client: (GitHub page )

    $ git clone
  3. Make sure your microphone works (say words and see if they are recognized):

    $ cd silvius && python stream/ -s

    To select a different microphone, run python stream/ and note the correct device number. Then pass -d N to

  4. Run and speak commands!

    $ python stream/ -s | python grammar/

If you want to download the recognition engine and run it locally, download this archive (609MB) and follow the instructions in INSTALL. Or, use this docker image. Finally, this is more difficult, but you can also build from source .

When running, each recognition worker needs about 2.4GB of RAM.

Voice Command Cheat-Sheet

Learning More

Check out the HOPE XI talk about Silvius, on Livestream and YouTube and embedded below.

For more information, join the Silvius mailing list or contact me at dwk at voxhub dot io.


This project is built on the Kaldi speech recognition toolkit, which does all the hard work. We used Voxforge and Tedlium speech models. The client/server code is based on Tanel Alumäe's gstreamer server (see a demo!). This project would not have been possible without the guidance of Professor Homayoon Beigi.

Silvius is designed to mimic a similar voice coding system called Aenea, which is built on the commercial Dragon NaturallySpeaking. In Virgil's epic, Silvius is the son of Aeneas. Aenea currently has superior performance; to learn more, see Travis Rudd's PyCon presentation and join the excellent Dragonfly mailing list.