Rhino - 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
Install Node.js.
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.