Learn how to add wake words, like Alexa or Hey Siri, to any Vue app. This tutorial takes 15 minutes or less from the start to a working demo. We learn how to train custom wake word models, like Hey Jarvis, that fit your product, not Big Tech's brand. In this article, we use Picovoice Porcupine Wake Word Engine Vue SDK.
Wake Word Detection is also known as Keyword Spotting, Hotword Detection, Always-Listening Voice Commands, Trigger Word Detection, and Voice Activation.
Setup the Project
Create a new Vue project (with TypeScript support):
Download the Porcupine model (i.e. Deep Neural Network). From the project folder, run the following to turn the binary model into a base64 string. Remember that you need to replace ${DOWNLOADED_MODEL_PATH} with the path to the model you downloaded (e.g. ~/Downloads/porcupine_params.pv on my Ubuntu machine).
Type in Hey Jarvis as the phrase you want to build the model for.
Optionally, you can try it within the browser
Once you are happy, click on the train button.
Select Web (WASM) as the platform.
Click on Download. You should have a .zip file in your download folder now.
Unzip it. Inside the folder, you see a file with the suffix .ppn. That's our model. Transform it into a base64 string. Remember that you need to replace ${DOWNLOADED_PPN_PATH} with the path to downloaded file (e.g. ~/Downloads/Hey-Jarvis_en_wasm_v2_1_0/Hey-Jarvis_en_wasm_v2_1_0.ppn on my Ubuntu machine)
npx pvbase64 \
-i ${DOWNLOADED_PPN_PATH} \
-o src/lib/hey_jarvis.js \
-n heyJarvisKeywordModel
Wire it up
Go to Picovoice Console's dashboard. Copy your AccessKey.
Create a component called VoiceWidget and paste the below into it. Remember to replace ${ACCESS_KEY} with your AccessKey.