Picovoice Wordmark
Start Free
Introduction
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSNode.jsPythonWeb
SummaryPicovoice picoLLMGPTQ
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
Introduction
AndroidC.NETFlutteriOSJavaLinuxmacOSNode.jsPythonRaspberry PiReactReact NativeWebWindows
AndroidC.NETFlutteriOSJavaNode.jsPythonReactReact NativeWeb
SummaryPicovoice LeopardAmazon TranscribeAzure Speech-to-TextGoogle ASRGoogle ASR (Enhanced)IBM Watson Speech-to-TextWhisper Speech-to-Text
FAQ
Introduction
AndroidC.NETFlutteriOSJavaLinuxmacOSNode.jsPythonRaspberry PiReactReact NativeWebWindows
AndroidC.NETFlutteriOSJavaNode.jsPythonReactReact NativeWeb
SummaryPicovoice CheetahAzure Real-Time Speech-to-TextAmazon Transcribe StreamingGoogle Streaming ASRMoonshine StreamingVosk StreamingWhisper.cpp Streaming
FAQ
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSNode.jsPythonWeb
SummaryAmazon PollyAzure TTSElevenLabsOpenAI TTSPicovoice OrcaChatterbox-TTS-TurboKokoro-TTSKitten-TTS-Nano-0.8-INT8Pocket-TTSNeu-TTS-Nano-Q4-GGUFPiper-TTSSoprano-TTSSupertonic-TTS-2ESpeak-NG
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice KoalaMozilla RNNoise
Introduction
AndroidCiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidCNode.jsPythoniOSWeb
SummaryPicovoice EaglepyannoteSpeechBrain
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice FalconAmazon TranscribeAzure Speech-to-TextGoogle Speech-to-Textpyannote
Introduction
AndroidArduinoCChrome.NETEdgeFirefoxFlutteriOSJavaLinuxmacOSMicrocontrollerNode.jsPythonRaspberry PiReactReact NativeSafariWebWindows
AndroidC.NETFlutteriOSJavaMicrocontrollerNode.jsPythonReactReact NativeWeb
SummaryPicovoice PorcupineSnowboyPocketSphinx
Wake Word TipsFAQ
Introduction
AndroidArduinoCChrome.NETEdgeFirefoxFlutteriOSJavaLinuxmacOSMicrocontrollerNode.jsPythonRaspberry PiReactReact NativeSafariWebWindows
AndroidC.NETFlutteriOSJavaMicrocontrollerNode.jsPythonReactReact NativeWeb
SummaryPicovoice RhinoGoogle DialogflowAmazon LexIBM WatsonMicrosoft LUIS
Expression SyntaxFAQ
Introduction
AndroidArduinoC.NETiOSLinuxmacOSMicrocontrollerNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSMicrocontrollerNode.jsPythonWeb
SummaryPicovoice CobraWebRTC VADSilero VAD
FAQ
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
Introduction
AndroidC.NETFlutteriOSNode.jsPythonReact NativeWeb
AndroidC.NETFlutteriOSNode.jsPythonReact NativeWeb
Introduction
C.NETNode.jsPython
C.NETNode.jsPython
FAQGlossary

Rhino Speech-to-Intent
Node.js Quick Start

Platforms

  • Linux (x86_64)
  • macOS (x86_64, arm64)
  • Windows (x86_64, arm64)
  • Raspberry Pi (3, 4, 5)
Looking to run Rhino Speech-to-Intent in-browser?

This binding is for Node.js and does not work in a browser. There are SDK packages available for Web, and dedicated package for

React.

Requirements

  • Picovoice Account & AccessKey
  • Node.js 18+
  • npm

Picovoice Account & AccessKey

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

Quick Start

Setup

  1. Install Node.js.

  2. Install the Rhino Speech-to-Intent npm package:

npm install @picovoice/rhino-node

Usage

Create an instance of Rhino Speech-to-Intent 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 Speech-to-Intent:

rhino.release()

Custom Contexts

Create custom contexts with the Picovoice Console using the Rhino Speech-to-Intent 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 Speech-to-Intent GitHub repository.

Pass in the model file to change the inference language:

const rhino = new Rhino(
'${ACCESS_KEY}',
'${CONTEXT_FILE_PATH}',
{
sensitivity: 0.5,
requireEndpoint: true,
modelPath: '${MODEL_FILE_PATH}'
}
);

Demo

For the Rhino Speech-to-Intent 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.

Setup

Install the Rhino Speech-to-Intent demo package:

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

This package installs command-line utilities for the Rhino Speech-to-Intent Node.js demos.

Usage

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 Speech-to-Intent demos for Node.js, head over to our GitHub repository.

Resources

Packages

  • @picovoice/rhino-node on the npm registry
  • @picovoice/rhino-node-demo on the npm registry

API

  • @picovoice/rhino-node API Docs

GitHub

  • Rhino Speech-to-Intent Node.js SDK on GitHub
  • Rhino Speech-to-Intent Node.js Demos on GitHub

Benchmark

  • Speech-to-Intent Benchmark

Further Reading

  • Computer! Tea, Earl Grey, Hot: Offline Voice on NodeJS
  • Computer! Tea, Earl Grey, Hot: Offline Voice on NodeJS, Part II

Was this doc helpful?

Issue with this doc?

Report a GitHub Issue
Rhino Speech-to-Intent Node.js Quick Start
  • Platforms
  • Requirements
  • Picovoice Account & AccessKey
  • Quick Start
  • Setup
  • Usage
  • Custom Contexts
  • Non-English Languages
  • Demo
  • Setup
  • Usage
  • Resources
© 2019-2026 Picovoice Inc.PrivacyTerms