Picovoice Wordmark
Start Building
Introduction
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSNode.jsPythonWeb
SummaryPicovoice picoLLMGPTQ
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice ZebraHelsinki-NLP/opus_mt
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
Rhino Model API
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
SummaryPicovoice BatSpeechbrain Language ID
Introduction
AndroidC.NETFlutteriOSNode.jsPythonReact NativeWeb
AndroidC.NETFlutteriOSNode.jsPythonReact NativeWeb
Introduction
C.NETNode.jsPython
C.NETNode.jsPython
FAQGlossary

Rhino Model API

The Rhino Model API trains a Speech-to-Intent context model from a YAML context definition. Send a YAML context as a request and receive a trained .rhn model file in response, ready for on-device inference with Rhino.


Base URL

All routes are relative to the following base URL:

https://rest.picovoice.ai

Authentication

Every request must be authenticated with your AccessKey passed in the x-api-key header. You can obtain a free AccessKey from the Picovoice Console.

x-api-key: ${ACCESS_KEY}

Requests made without a valid AccessKey are rejected with a 403 Forbidden response.


Train a Context Model

POST /{language}/api/rhn

Trains a Rhino context model for the given language and target platform from a YAML context definition. On success, the response body is the binary .rhn model file.

Path Parameters

  • language string — The language of the context. Must be one of the supported language values (e.g. en).

Headers

  • x-api-key string — Required. Your AccessKey from the Picovoice Console.

Body Parameters

The request body is a JSON object with the following fields:

  • platform string — Required. The target platform the model will run on. Must be one of the supported platform values.
  • yaml_content string — Required. The context definition, as a YAML string. See the context syntax cheat sheet for the expected format.

Example Request

A successful request returns a 303 See Other redirect pointing to the trained model. The -L flag tells curl to follow that redirect automatically and download the .rhn file:

curl -L \
-H "x-api-key: ${ACCESS_KEY}" \
-o "${OUTPUT_PATH}" \
-d '{"platform": "${PLATFORM}", "yaml_content": "${YAML_STRING}"}' \
"https://rest.picovoice.ai/${LANGUAGE}/api/rhn"

Replace the placeholders with your own values:

  • ${ACCESS_KEY} — your AccessKey from the Picovoice Console.
  • ${OUTPUT_PATH} — the local path to write the returned .rhn model to (e.g. ./context.rhn).
  • ${PLATFORM} — a supported platform value (e.g. linux).
  • ${YAML_STRING} — your context definition as a YAML string.
  • ${LANGUAGE} — a supported language value (e.g. en).

Responses

  • 200 OK — Returned when the 303 redirect is followed. The response body is the binary .rhn model file.
  • 303 See Other — Training succeeded. The response carries a Location header with a URL to the trained model. Follow this redirect (e.g. with curl -L) to download it and receive the 200 OK above.
  • 400 Bad Request — The request was malformed, the platform value was invalid, or the yaml_content was not valid YAML / used an incorrect context format.
  • 403 Forbidden — The AccessKey is missing or invalid.

Supported Languages

The language path parameter accepts one of the following values:

LanguageValue
Englishen
Frenchfr
Germande
Italianit
Japaneseja
Koreanko
Mandarin Chinesezh
Portuguesept
Spanishes

Supported Platforms

The platform body parameter accepts one of the following values:

PlatformValue
Linuxlinux
macOSmac
Windowswindows
Raspberry Piraspberry-pi
WebAssemblywasm
Androidandroid
iOSios

Was this doc helpful?

Issue with this doc?

Report a GitHub Issue
Rhino Model API
  • Base URL
  • Authentication
  • Train a Context Model
  • Path Parameters
  • Headers
  • Body Parameters
  • Example Request
  • Responses
  • Supported Languages
  • Supported Platforms
© 2019-2026 Picovoice Inc.PrivacyTerms