Rhino 1.5.1

Rhino is Picovoice's Speech-to-Intent engine. It directly infers intent from spoken commands within a given context of interest, in real-time.

For example, given a spoken command "Can I have a small double-shot espresso with a lot of sugar and some milk", Rhino infers that the user wants to order a drink with these specifications:  { "type": "espresso", "size": "small", "numberOfShots": "2", "sugar": "a lot", "milk": "some" }

Rhino is:
 - using deep neural networks trained in real-world environments.
 - compact and computationally-efficient, making it perfect for IoT.
 - cross-platform. It is implemented in fixed-point ANSI C. Raspberry Pi (all variants),
   Beagle Bone, Android, iOS, Linux (x86_64), Mac (x86_64), Windows (x86_64), and
   web browsers are supported. Furthermore, Support for various ARM Cortex-A
   microprocessors and ARM Cortex-M microcontrollers is available for enterprise customers.
 - self-service. Developers and UX designers can train custom models using Picovoice Console.

Install-Package Rhino -Version 1.5.1
dotnet add package Rhino --version 1.5.1
<PackageReference Include="Rhino" Version="1.5.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Rhino --version 1.5.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Rhino Speech-to-Intent Engine

Made in Vancouver, Canada by Picovoice

Rhino is Picovoice's Speech-to-Intent engine. It directly infers intent from spoken commands within a given context of
interest, in real-time. For example, given a spoken command "Can I have a small double-shot espresso with a lot of sugar
and some milk"
, Rhino infers that the user wants to order a drink with these specifications:

{
  "type": "espresso",
  "size": "small",
  "numberOfShots": "2",
  "sugar": "a lot",
  "milk": "some"
}

Rhino is:

  • using deep neural networks trained in real-world environments.
  • compact and computationally-efficient, making it perfect for IoT.
  • self-service. Developers and designers can train custom models using Picovoice Console.

Compatibility

  • .NET Standard 2.0, .NET Core 3.0+, .NET Framework 4.6.1+
  • Runs on Linux (x86_64), macOS (x86_64) and Windows (x86_64)

Installation

You can install the latest version of Rhino by getting the latest Rhino Nuget package in Visual Studio or using the .NET CLI:

dotnet add package Rhino

Usage

Create an instance of the engine:

using Pv;

Rhino handle = Rhino.Create(contextPath:"/absolute/path/to/context");

Where context_path is the absolute path to Speech-to-Intent context created either using
Picovoice Console or one of the default contexts available on Rhino's GitHub repository.

The sensitivity of the engine can be tuned using the sensitivity parameter. It is a floating point number within
[0, 1]. A higher sensitivity value results in fewer misses at the cost of (potentially) increasing the erroneous
inference rate.

using Pv;

Rhino handle = Rhino.Create(contextPath:"/absolute/path/to/context", sensitivity: 0.25f);

When initialized, the valid sample rate is given by handle.SampleRate. Expected frame length (number of audio samples
in an input array) is handle.FrameLength. The engine accepts 16-bit linearly-encoded PCM and operates on
single-channel audio.

short[] GetNextAudioFrame()
{
    // .. get audioFrame
    return audioFrame;
}

while(true)
{
    bool isFinalized = handle.Process(GetNextAudioFrame());   
    if(isFinalized)
    {
        Inference inference = handle.GetInference();
        if(inference.IsUnderstood)
        {
            string intent = inference.Intent;
            Dictionary<string, string> slots = inference.Slots;
            // .. code to take action based on inferred intent and slot values
        }
        else
        {
            // .. code to handle unsupported commands              
        }        
    }
}

Rhino will have its resources freed by the garbage collector, but to have resources freed
immediately after use, wrap it in a using statement:

using(Rhino handle = Rhino.Create(contextPath:"/absolute/path/to/context"))
{
    // .. Rhino usage here
}

Demos

The Rhino dotnet demo project is a .NET Core console app that allows for
processing real-time audio (i.e. microphone) and files using Rhino.

Rhino Speech-to-Intent Engine

Made in Vancouver, Canada by Picovoice

Rhino is Picovoice's Speech-to-Intent engine. It directly infers intent from spoken commands within a given context of
interest, in real-time. For example, given a spoken command "Can I have a small double-shot espresso with a lot of sugar
and some milk"
, Rhino infers that the user wants to order a drink with these specifications:

{
  "type": "espresso",
  "size": "small",
  "numberOfShots": "2",
  "sugar": "a lot",
  "milk": "some"
}

Rhino is:

  • using deep neural networks trained in real-world environments.
  • compact and computationally-efficient, making it perfect for IoT.
  • self-service. Developers and designers can train custom models using Picovoice Console.

Compatibility

  • .NET Standard 2.0, .NET Core 3.0+, .NET Framework 4.6.1+
  • Runs on Linux (x86_64), macOS (x86_64) and Windows (x86_64)

Installation

You can install the latest version of Rhino by getting the latest Rhino Nuget package in Visual Studio or using the .NET CLI:

dotnet add package Rhino

Usage

Create an instance of the engine:

using Pv;

Rhino handle = Rhino.Create(contextPath:"/absolute/path/to/context");

Where context_path is the absolute path to Speech-to-Intent context created either using
Picovoice Console or one of the default contexts available on Rhino's GitHub repository.

The sensitivity of the engine can be tuned using the sensitivity parameter. It is a floating point number within
[0, 1]. A higher sensitivity value results in fewer misses at the cost of (potentially) increasing the erroneous
inference rate.

using Pv;

Rhino handle = Rhino.Create(contextPath:"/absolute/path/to/context", sensitivity: 0.25f);

When initialized, the valid sample rate is given by handle.SampleRate. Expected frame length (number of audio samples
in an input array) is handle.FrameLength. The engine accepts 16-bit linearly-encoded PCM and operates on
single-channel audio.

short[] GetNextAudioFrame()
{
    // .. get audioFrame
    return audioFrame;
}

while(true)
{
    bool isFinalized = handle.Process(GetNextAudioFrame());   
    if(isFinalized)
    {
        Inference inference = handle.GetInference();
        if(inference.IsUnderstood)
        {
            string intent = inference.Intent;
            Dictionary<string, string> slots = inference.Slots;
            // .. code to take action based on inferred intent and slot values
        }
        else
        {
            // .. code to handle unsupported commands              
        }        
    }
}

Rhino will have its resources freed by the garbage collector, but to have resources freed
immediately after use, wrap it in a using statement:

using(Rhino handle = Rhino.Create(contextPath:"/absolute/path/to/context"))
{
    // .. Rhino usage here
}

Demos

The Rhino dotnet demo project is a .NET Core console app that allows for
processing real-time audio (i.e. microphone) and files using Rhino.

Release Notes

See https://github.com/Picovoice/rhino/

  • .NETStandard 2.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Rhino:

Package Downloads
Picovoice
Picovoice is an end-to-end platform for building voice products on your terms. It enables creating voice experiences similar to Alexa and Google. But it entirely runs 100% on-device. Picovoice is: - Private: Everything is processed offline. Intrinsically HIPAA and GDPR compliant. - Reliable: Runs without needing constant connectivity. - Zero Latency: Edge-first architecture eliminates unpredictable network delay. - Accurate: Resilient to noise and reverberation. It outperforms cloud-based alternatives by wide margins *. - Cross-Platform: Design once, deploy anywhere. Build using familiar languages and frameworks.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.5.1 52 10/21/2020