Picovoice/rhino
On-device Speech-to-Intent engine powered by deep learning
Rhino – On‑device Speech‑to‑Intent Engine
What it is – Rhino is a lightweight, on‑device engine that turns spoken commands into structured intents and slots (key‑value pairs) in real time. It runs locally on a wide range of hardware – from micro‑controllers (Arm Cortex‑M, STM32, Arduino) to phones, desktops, and browsers – so no cloud connection is required.
How it works – A developer defines a context (a set of voice commands) using Picovoice’s Console. Each command is an expression that can contain slots (e.g., $size:beverageSize). Rhino’s deep‑neural‑network model, trained on real‑world audio, listens to a microphone stream, detects when a command is spoken, and returns a JSON‑like inference:
{
"isUnderstood": true,
"intent": "orderBeverage",
"slots": {"beverage": "espresso", "size": "small", "numberOfShots": "2"}
}
If the utterance doesn’t match the context, isUnderstood is false.
Key features from the README
- Compact & efficient – Designed for IoT devices with limited CPU/memory.
- Cross‑platform – Runs on:
- Embedded (Arm Cortex‑M, STM32, Arduino)
- Raspberry Pi
- Android / iOS
- Web browsers (Chrome, Safari, Firefox, Edge) via WebAssembly
- Desktop OSes (Linux, macOS, Windows)
- Multi‑language – English, Chinese, French, German, Italian, Japanese, Korean, Portuguese, Spanish; additional languages available commercially.
- Self‑service customisation – Users can create their own contexts (intents/slots) through the Picovoice Console.
- SDKs – Ready‑to‑use bindings for Python, .NET, Java, Flutter, React Native, Android, iOS, Web (vanilla JS & React), Node.js, and C.
- Demo apps – Sample programs for microphone or file input across all supported languages and platforms.
- Performance – Benchmarked against major cloud services (see linked benchmark repo).
Typical use cases – Voice‑controlled smart‑home devices, appliances, wearables, or any application where a small, fixed set of commands must be recognized locally without sending audio to the cloud.
Getting started – Install the SDK for your language (e.g., pip install pvrhino for Python), obtain an AccessKey from the Picovoice Console, load a context file, and feed 16‑bit PCM audio frames to process(). When process() returns true, call get_inference() to retrieve the intent.
Links
- Interactive web demo
- Picovoice Console (create contexts)
- Benchmark comparison
- SDK package pages (PyPI, Maven, npm, NuGet, CocoaPods, Pub, etc.)
Related
- Project
- Project
- Project
- Project
- Project