Picovoice Wordmark
Start Free
Introduction
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSNode.jsPythonWeb
SummaryPicovoice picoLLMGPTQ
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
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
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
Introduction
AndroidC.NETFlutteriOSNode.jsPythonReact NativeWeb
AndroidC.NETFlutteriOSNode.jsPythonReact NativeWeb
Introduction
C.NETNode.jsPython
C.NETNode.jsPython
FAQGlossary

Rhino Speech-to-Intent
.NET Quick Start

Platforms

  • Linux (x86_64)
  • macOS (x86_64, arm64)
  • Windows (x86_64, arm64)
  • Raspberry Pi (3, 4, 5)

Requirements

  • Picovoice Account & AccessKey

Platforms compatible with .NET Standard 2.0+:

  • macOS (x86_64)
  • Windows (x86_64)

Platforms compatible with .NET 6.0+:

  • Linux (x86_64)
  • macOS (x86_64, arm64)
  • Windows (x86_64, arm64)
  • Raspberry Pi:
    • 3 (32 and 64 bit)
    • 4 (32 and 64 bit)
    • 5 (32 and 64 bit)

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 .NET.

  2. Install the Rhino Speech-to-Intent NuGet package in Visual Studio or using the .NET CLI:

dotnet add package Rhino

Usage

Create an instance of Rhino Speech-to-Intent that infers intent from spoken commands within a given context:

using Pv;
Rhino rhino = Rhino.Create(
"${ACCESS_KEY}",
"${CONTEXT_FILE_PATH}");

Pass in frames of audio to the .Process function:

short[] GetNextAudioFrame()
{
// ...
}
while(true)
{
bool isFinalized = rhino.Process(GetNextAudioFrame());
if(isFinalized)
{
Inference inference = rhino.GetInference();
if(inference.IsUnderstood)
{
string intent = inference.Intent;
Dictionary<string, string> slots = inference.Slots;
// .. take action based on inferred intent and slot values
}
}
}

Custom Contexts

Create custom contexts on Picovoice Console using the Rhino Speech-to-Intent Grammar. Download the custom context file (.rhn) and pass the path into the Rhino .Create method.

Non-English Languages

Use the corresponding model file (.pv) to process non-English contexts. The model files for all supported languages are available on the Rhino Speech-to-Intent GitHub repository.

Pass in the model file using the modelPath input argument to change the detection language:

Rhino rhino = Rhino.Create(
"${ACCESS_KEY}",
"${CONTEXT_FILE_PATH}",
modelPath: "${MODEL_FILE_PATH}");

Demo

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

  1. Clone the Rhino Speech-to-Intent repository from GitHub:
git clone --recurse-submodules https://github.com/Picovoice/rhino.git
  1. Build the demo:
cd rhino/demo/dotnet/RhinoDemo
dotnet build -c MicDemo.Release

Usage

Use the --help flag to see the usage options for the demo:

dotnet run -c MicDemo.Release -- --help

Ensure you have a working microphone connected to your system and run the following command to make inferences based on the given context file:

dotnet run -c MicDemo.Release -- --access_key ${ACCESS_KEY} --context_path ${CONTEXT_FILE_PATH}

For more information on our Rhino Speech-to-Intent demos for .NET, head over to our GitHub repository.

Resources

Package

  • Rhino on NuGet

API

  • Rhino .NET API Docs

GitHub

  • Rhino Speech-to-Intent .NET SDK on GitHub
  • Rhino Speech-to-Intent .NET Demos on GitHub

Benchmark

  • Speech-to-Intent Benchmark

Further Reading

  • Talking Chess: Adding Offline, Cross-Platform Voice Controls to Chess in .NET Core
  • From GUI to VUI: Voice-Enabling a Cross-Platform .NET Desktop Application
  • How We Added Raspberry Pi Support to Our .NET SDK

Videos

  • Offline Wake Word Engine Running in .NET Core on Raspberry Pi
  • Build a Voice-Controlled, Cross-Platform .NET Desktop Application
  • Add Offline Voice Controls to a Cross-Platform .NET GUI

Was this doc helpful?

Issue with this doc?

Report a GitHub Issue
Rhino Speech-to-Intent .NET Quick Start
  • Platforms
  • Requirements
  • Picovoice Account & AccessKey
  • Quick Start
  • Setup
  • Usage
  • Custom Contexts
  • Non-English Languages
  • Demo
  • Setup
  • Usage
  • Resources
© 2019-2026 Picovoice Inc.PrivacyTerms