Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time

Installing and configuring Snowboy

So we are not streming audio to Google 24/7, Snowboy provides offline speech recognition for trigger words (aka 'hotwords').

Make a model

You need to create a 'model', a digital descrtiption of you saying your trigger word, before installing Snowboy. This can be done online in a matter of minutes.

  • Go to and Log In (and register if needed)

  • Click 'Create Hotword'

  • Enter the name of the hotword (it can be anything but choose wisely!), the language and add any comments you would like.

  • Click 'Record my voice'

  • Follow the instructions and make three recordings of you speaking you hotword.

  • Once completed, click 'Test the voice'

  • You can now check the hotword is being recognised

  • When happy, click 'Save and Download'

  • A pdml (Personal Model) file will be downloaded to you local machine

  • If that machine is not your target Raspberry Pi, transfer the file to your home directory


On the Raspberry Pi, run the following commands (version correct at time of writing):

tar xvf rpi-arm-raspbian-8.0-1.1.1.tar.bz2
mv rpi-arm-raspbian-8.0-1.1.1 snowboy
sudo apt install python-pyaudio python3-pyaudio sox libpython2.7 libatlas-base-dev

You can now test your model (change the filename to match yours!):

cd ~/snowboy
python ~/computer.pmdl

Yes, that right, the doesn't work in Python 3 right now

When you say the hotword (and ideally nothing else), the console should respond with Keyword detected.

Create Python3 Version

For full transcription we'll need a Python 3 version. One is included with this repo. To create your own...

sudo apt install swig
git clone
cd snowboy/swig/Python3

The required files of and can now be found in this directory. Replace the existing one and the demo will work with Python 3.