Picovoice WordmarkPicovoice Console
Introduction
Introduction
AndroidC.NETFlutterlink to GoiOSJavaNvidia JetsonLinuxmacOSNodejsPythonRaspberry PiReact NativeRustWebWindows
AndroidC.NETFlutterlink to GoiOSJavaNodejsPythonReact NativeRustWeb
SummaryPicovoice LeopardAmazon TranscribeAzure Speech-to-TextGoogle ASRGoogle ASR (Enhanced)IBM Watson Speech-to-Text
FAQ
Introduction
AndroidC.NETFlutterlink to GoiOSJavaNodejsPythonReact NativeRustWeb
AndroidC.NETFlutterlink to GoiOSJavaNodejsPythonReact NativeRustWeb
FAQ
Introduction
AndroidCiOSLinuxmacOSPythonWebWindows
AndroidCiOSPythonWeb
SummaryOctopus Speech-to-IndexGoogle Speech-to-TextMozilla DeepSpeech
FAQ
Introduction
AndroidAngularArduinoBeagleBoneCChrome.NETEdgeFirefoxFlutterlink to GoiOSJavaNvidia JetsonLinuxmacOSMicrocontrollerNodejsPythonRaspberry PiReactReact NativeRustSafariUnityVueWebWindows
AndroidAngularC.NETFlutterlink to GoiOSJavaMicrocontrollerNodejsPythonReactReact NativeRustUnityVueWeb
SummaryPorcupineSnowboyPocketSphinx
Wake Word TipsFAQ
Introduction
AndroidAngularBeagleBoneCChrome.NETEdgeFirefoxFlutterlink to GoiOSJavaNvidia JetsonlinuxmacOSNodejsPythonRaspberry PiReactReact NativeRustSafariUnityVueWebWindows
AndroidAngularC.NETFlutterlink to GoiOSJavaNodejsPythonReactReact NativeRustUnityVueWeb
SummaryPicovoice RhinoGoogle DialogflowAmazon LexIBM WatsonMicrosoft LUIS
Expression SyntaxFAQ
Introduction
AndroidBeagleboneCiOSNvidia JetsonLinuxmacOSPythonRaspberry PiRustWebWindows
AndroidCiOSPythonRustWeb
SummaryPicovoice CobraWebRTC VAD
FAQ
Introduction
AndroidAngularArduinoBeagleBoneC.NETFlutterlink to GoiOSJavaNvidia JetsonMicrocontrollerNodejsPythonRaspberry PiReactReact NativeRustUnityVueWeb
AndroidAngularCMicrocontroller.NETFlutterlink to GoiOSJavaNodejsPythonReactReact NativeRustUnityVueWeb
Picovoice SDK - FAQ
IntroductionSTM32F407G-DISC1 (Arm Cortex-M4)STM32F411E-DISCO (Arm Cortex-M4)STM32F769I-DISCO (Arm Cortex-M7)IMXRT1050-EVKB (Arm Cortex-M7)
FAQGlossary

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

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

  1. Install Node.js.

  2. Install the Rhino npm package:

npm install @picovoice/rhino-node

Usage

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:

rhino.release()

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(
'${ACCESS_KEY}',
'${CONTEXT_FILE_PATH}',
0.5,
true,
'${MODEL_FILE_PATH}'
);

Demo

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.

Setup

Install the Rhino demo package:

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

This package installs command-line utilities for the Rhino Nodejs 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 demos for Nodejs, 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 Nodejs SDK on GitHub
  • Rhino Nodejs 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
Platform
  • Leopard Speech-to-Text
  • Cheetah Streaming Speech-to-Text
  • Octopus Speech-to-Index
  • Porcupine Wake Word
  • Rhino Speech-to-Intent
  • Cobra Voice Activity Detection
Resources
  • Docs
  • Console
  • Blog
  • Demos
Sales
  • Pricing
  • Starter Tier
  • Enterprise
Company
  • Careers
Follow Picovoice
  • LinkedIn
  • GitHub
  • Twitter
  • Medium
  • YouTube
  • AngelList
Subscribe to our newsletter
Terms of Use
Privacy Policy
© 2019-2022 Picovoice Inc.