nodejsRhino - Node.js Quick Start


  • Linux (x86_64)
  • macOS (x86_64, arm64)
  • Windows (x86_64)
  • BeagleBone
  • NVIDIA Jetson Nano
  • Raspberry Pi (2, 3, 4)
Looking to run Rhino 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.


Picovoice Account & AccessKey

Signup or Login to Picovoice Console to get your AccessKey. Make sure to keep your AccessKey secret.

Quick Start


  1. Install Node.js.

  2. Install the Rhino npm package:

npm install @picovoice/rhino-node


Create an instance of Rhino that infers intents from spoken commands within a given context:

const Rhino = require("@picovoice/rhino-node");
const contextPath = "${CONTEXT_FILE_PATH}";
const accessKey = "${ACCESS_KEY}"
const rhino = new Rhino(accessKey, contextPath);

Pass in frames of audio to the .process function:

function getNextAudioFrame() {
// ...
return audioFrame;
let isFinalized = false;
while (!isFinalized) {
const audioFrame = getNextAudioFrame();
isFinalized = rhino.process(audioFrame);
if (isFinalized) {
const inference = rhino.getInference();
if (inference.isUnderstood) {
const intent = inference.intent;
const slots = inference.slots;
// take action based on inferred intent and slot values
} else {
// handle unsupported commands

Release resources explicitly when done with Rhino:


Custom Contexts

Create custom contexts with the Picovoice Console using the Rhino Grammar. Download the custom context file (.rhn) and pass it into the Rhino constructor.

Non-English Languages

Use the corresponding model file (.pv) to infer non-English commands. The model files for all supported languages are available on the Rhino GitHub repository.

Pass in the model file to change the inference language:

const rhino = new Rhino(


For the Rhino Node.js SDK, we offer demo applications that demonstrate how to use the Speech-to-Intent engine on real-time audio streams (i.e. microphone input) and audio files.


Install the Rhino demo package:

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

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


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

rhn-mic-demo --help

Ensure you have a working microphone connected to your system and run the following command to infer voice commands from the given context file:

rhn-mic-demo \
--access_key ${ACCESS_KEY} \
--context ${CONTEXT_FILE_PATH} \

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






Further Reading

Issue with this doc? Please let us know.