A wake word is a specific word or phrase that can activate a device when spoken. Enterprises that use wake word services provided by Big Tech are forced to use their branded wake words like "Hey Siri", "Alexa", and "OK Google".

"Wake word" is synonymous with the terms "trigger word", "hotword", and "wake-up word".

In contrast, Picovoice's Porcupine Wake Word Detection engine enables developers to create custom wake word models tailored to a product rather than the branding of Big Tech.

In this article, we will demonstrate how to create a custom wake word to use with Picovoice's Porcupine Wake Word Detection engine.

An equivalent video tutorial of this article is also available.

1. Picovoice Console

Sign up for a free Picovoice Console account. Once you've created an account, navigate to the Porcupine page.

Click Porcupine in the navigation bar

2. Choose Wake Word

First, select the language for your custom wake word, then type in the phrase that you would like to train.

Choose your custom wake word

Not all wake words perform the same. For guidance on choosing a good wake word, refer to our wake word selection guide.

3. Test & Train

After your wake word has been validated, you can test its performance by clicking on the microphone button. The key thing to monitor is how reliably your wake word gets detected when spoken and whether similar-sounding phrases trigger false detections.

If it's not performing as well as you need it to, please refer to the wake word selection guide and try a different wake word.

Test your custom wake word

Once you're satisfied with how your wake word performs, click on the "Train" button at the bottom.

4. Download your Custom Wake Word

Select the platform you're building for, then click "Download".

Select the platform for your custom wake word

In just a few seconds, you'll see a folder in your downloads containing the .ppn file for your wake word.

Next Steps

Now that you have your .ppn file, you're ready to begin coding! Below is the list of SDKs supported by Porcupine, along with corresponding code snippets and quick-start guides.

o = pvporcupine.create(
access_key=access_key,
keyword_paths=keyword_paths)
while True:
keyword_index =
o.process(audio_frame())
if keyword_index >= 0:
// Detection callback