androidRhino - Android API

  • Speech-to-Intent Engine
  • Domain Specific NLU
  • Offline NLU
  • Local Voice Recognition
  • Android
  • Java

This document outlines how to integrate Rhino Speech-to-Intent engine within an Android application.


Rhino is implemented in ANSI C and is shipped as precompiled libraries accompanied by corresponding Java interfaces (bindings). To integrate within an Android application the following items are needed

  • Precompiled libraries
  • Java binding
  • The model file. The standard model is freely available on Rhino's GitHub repository. Enterprises who are commercially engaged with Picovoice can access compressed and standard models as well.
  • Context model file for your use case. A set of freely-available context files can be found on Rhino's GitHub repository. Enterprises who are engaged with Picovoice can create custom NLU models using Picovoice Console.


Rhino provides a binding for Android using JNI. It can be initialized using:

final String modelPath = ...
final String contextPath = ...
final float sensitivity = 0.5;
Rhino rhino = new Rhino(modelPath, contextPath, sensitivity);

Once initialized, rhino can be used for intent inference:

private short[] getNextAudioFrame();
while (rhino.process(getNextAudioFrame()));
final RhinoInference inference = rhino.getInference();
if (inference.getIsUnderstood()) {
// logic to perform an action given the intent object.
} else {
// logic for handling out of context or unrecognized command

Finally, prior to exiting the application be sure to release resources acquired via:


Issue with this doc? Please let us know.