Porcupine - Node.js Quick Start
Platforms
- Linux (x86_64)
- macOS (x86_64, arm64)
- Windows (x86_64)
- BeagleBone
- NVIDIA Jetson Nano
- Raspberry Pi (2, 3, 4)
Looking to run Porcupine in-browser?
This binding is for Node.js and does not work in a browser. There are SDK packages available for Web, and dedicated packages for Angular , React, and Vue.js.
Requirements
- Picovoice Account & AccessKey
- Node.js 10+
- npm
Picovoice Account & AccessKey
Signup or Login to Picovoice Console to get your AccessKey
.
Make sure to keep your AccessKey
secret.
Quick Start
Setup
Install Node.js.
Install the porcupine-node npm package:
npm install @picovoice/porcupine-node
Usage
Create an instance of Porcupine
that detects the included built-in wake words porcupine
and bumblebee
with
sensitivities of 0.5 and 0.65, respectively.
const {Porcupine,BuiltinKeyword,}= require("@picovoice/porcupine-node");const accessKey = "${ACCESS_KEY}"let porcupine = new Porcupine(accessKey,[BuiltinKeyword.GRASSHOPPER, BuiltinKeyword.BUMBLEBEE],[0.5, 0.65]);
Pass in frames of audio to the .process
function:
function getNextAudioFrame() {// ...return audioFrame;}while (true) {const audioFrame = getNextAudioFrame();const keywordIndex = porcupine.process(audioFrame);if (keywordIndex === 0) {// detected `porcupine} else if (keywordIndex === 1) {// detected `bumblebee`}}
Release resources explicitly when done with Porcupine:
porcupine.release()
Custom Keywords
Create custom keywords using the Picovoice Console. Download the custom wake word
file (.ppn
) and create an instance of Porcupine by passing in the path to the keyword file.
const porcupine = new Porcupine('${ACCESS_KEY}',['${KEYWORD_FILE_PATH}'],[0.5]);
Non-English Languages
Use the corresponding model file (.pv
) to detect non-English wake words.
The model files for all supported languages are available
on the Porcupine GitHub repository.
Pass in the model file to change the detection language:
const porcupine = new Porcupine('${ACCESS_KEY}',['${KEYWORD_FILE_PATH}'],[0.5],'${MODEL_FILE_PATH}');
Demo
For the Porcupine Node.js SDK, we offer demo applications that demonstrate how to use the Wake Word engine on real-time audio streams (i.e. microphone input) and audio files.
Setup
Install the Porcupine demo package:
npm install -g @picovoice/porcupine-node-demo
This package installs command-line utilities for the Porcupine Nodejs demos.
Usage
Use the --help
flag to see the usage options for the demo:
ppn-mic-demo --help
Ensure you have a working microphone connected to your system and run the following command to detect the built-in keyword porcupine
:
ppn-mic-demo \--access_key ${ACCESS_KEY} \--keywords porcupine \
For more information on our Porcupine demos for Nodejs, head over to our GitHub repository.