Customize your Voice Assistant with Personal Wake Words

Thibault Gisselbrecht
Snips Blog
Published in
4 min readMay 2, 2018

The Snips Voice Platform now enables developers & makers to create their own personal wake words to initiate a dialogue.

Personal Wake Words in Snips

A wake word is the word you use to start a conversation with a voice assistant. Inside every device in which a voice assistant is embedded, a tiny process keeps listening and waiting to detect the wake word from of a continuous stream of audio. When you want to communicate with your connected device, just say the wake word.

The personal wake word detector is a new feature of the Snips Voice Platform that we released in response to strong demand from our developer and maker community. This new feature makes it possible for you to pick any wake word you want to call your voice assistant into action. By providing the Voice Platform just a few samples of your new wake word, your Snips-powered device will generate the necessary model to be able to recognize it. Each wake word model is tuned for your voice only, and is trained on the device. To understand how this detector works, read our technical post.

Trained Locally, not in the Cloud

Our personal wake word detector is trained locally, on your device, with the small number of voice samples that you provide it. This alternative to the universal wake word detector is much more versatile. Compared to universal wake word detectors (like the “Hey Snips” we propose) that are trained on a large variety of voices, the personal wake word model allows developers and makers to use the word of their choice with only a few samples. Your voice assistant then requires less data to function, but will work only for your voice. The Snips Voice Platform also lets you train a personal wake word for different users of the same assistant, by running multiple wake word detectors at the same time.

Because our personal wake word detector is trained locally, your queries are stored on-device rather than sent to the cloud. This model upholds our commitment to a Privacy-First voice assistant, such that your personal data will not be shared with advertisers, governments, or anyone else.

A Quick Tutorial: Create Your Personal Wake Word

The personal wake word allows you to define your own word to wake your assistant and initiate a conversation. To do so, the algorithm needs some samples of you saying this particular word. In this video tutorial, we’ll guide you through the recording of those samples and in the second part, we will show you how to test your model and incorporate it into your assistant. The full tutorial, together with the script repository, is available here.

Step 1: Set up your Raspberry Pi

Tutorial STEP 1
  • CONNECT to your Pi with SSH
  • INSTALL Git (if you haven’t done so already)
  • CLONE the repository and CD into it
  • INSTALL the project dependencies

Step 2: Record your wake word samples

Note: the environment where you record your samples must be as quiet as possible, so try to avoid place with background noise (music, tv, people speaking, etc).

Tutorial Step 2
  • STOP the Snips audio server to free up access for your microphone
  • RUN the recording script with your own wake word of choice (here we chose the wake word “Test”)
  • Press “ENTER” when ready to record, and record your wake word for as many times as needed
  • Take note of the provided path

Step 3: Test your wake word

Note: Stop the Snips Platform elements that you will need to test your personal wake word before putting it in your assistant.

Tutorial Step 3
  • START your wake word model with the path you previously noted, and add sensitivity to your model. Here we chose 0.5 — if you do not provide sensitivity to your model, it will default to 0.5.
  • TEST your model by pronouncing your wake word. If detection does not work, try decreasing your sensitivity.

Step 4: Install your wake word

Tutorial STEP 4
  • MOVE your Assistant folder to the right destination
  • EDIT the configuration file: go to the [snips-hotword] section, uncomment model line, and replace with your model path and its sensitivity. For example, the model line should look like:
model = ["/etc/snips/personal_2018_04_19T08_45_59=0.5"]

If you want several models to run at the same time, just separate each with a comma. Make sure to SAVE (CTRL+X, then validate with “y”)

  • RESTART your assistant

Step 5: Testing your wake word

Tutorial STEP 5
  • CHECK that your assistant works with your new wake word
  • YOUR assistant is ready!

Want to learn more? Check out our new Skill Store, where you can follow our instructions to create your own skills, personalize your wake word, and control your devices with voice — all while keeping your personal data completely private.

If you liked this article and want to support Snips, please share it!

Follow us on Twitter: Snips

If you want to work on AI + Privacy, check our Jobs Page

--

--