nodejsPicovoice SDK - 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 Picovoice 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

  1. Login or signup for a free account on the Picovoice Console.
  2. Go to the AccessKey tab to create one or use an existing AccessKey. Be sure to keep your AccessKey secret.

Quick Start

Setup

  1. Install Node.js.

  2. Install the Picovoice Node.js package:

npm install @picovoice/picovoice-node

Usage

Create an instance of Picovoice using a Porcupine keyword file (.ppn), and a Rhino context file (.rhn):

const Picovoice = require("@picovoice/picovoice-node");
const accessKey = "${ACCESS_KEY}"
const keywordArgument = "${KEYWORD_FILE_PATH}"
const contextPath = "${CONTEXT_FILE_PATH}"
const keywordCallback = function (keyword) {
console.log(`Wake word detected`);
};
const inferenceCallback = function (inference) {
console.log("Inference:");
console.log(JSON.stringify(inference, null, 4));
};
const picovoice = new Picovoice(
accessKey,
keywordArgument,
keywordCallback,
contextPath,
inferenceCallback
);

Pass in frames of audio to the .process function:

function getNextAudioFrame() {
// ..
return audioFrame;
}
while (true) {
const audioFrame = getNextAudioFrame();
process.process(audioFrame);
}

Release resources explicitly when done with Picovoice:

picovoice.release()

Custom Wake Words & Contexts

Create custom wake word and context files using the Picovoice Console. Download the custom keyword (.ppn) and context (.rhn) files and create an instance of Picovoice passing the new models as input.

Non-English Languages

Use the corresponding model files (.pv) to process non-English languages. The model files for all supported languages are available on the Porcupine and Rhino GitHub repositories.

Pass in the Porcupine and Rhino model files to change the language:

const picovoice = new Picovoice(
'${ACCESS_KEY}',
'${KEYWORD_FILE_PATH}',
keywordCallback,
'${CONTEXT_FILE_PATH}',
inferenceCallback,
0.5,
0.5,
true,
'${PORCUPINE_MODEL_PATH}',
'${RHINO_MODEL_PATH}',
);

Demo

For the Picovoice Node.js SDK, we offer demo applications that demonstrate how to use the End-to-End speech recognition platform on real-time audio streams (i.e. microphone input) and audio files.

Setup

Install the Picovoice demo package:

npm install -g @picovoice/picovoice-node-demo

This package installs command-line utilities for the Picovoice Nodejs demos.

Usage

Use the --help flag to see the usage options for the demo:

pv-mic-demo --help

Ensure you have a working microphone connected to your system and run the following command to make inferences based on the given keyword and context files:

pv-mic-demo \
--access_key ${ACCESS_KEY} \
--keyword_file_path "${KEYWORD_FILE_PATH}" \
--context_file_path "${CONTEXT_FILE_PATH}"

For more information on our Picovoice demos for Nodejs, head over to our GitHub repository.

Resources

Packages

API

GitHub

Benchmark

Further Reading


Issue with this doc? Please let us know.