Picovoice.Cheetah
1.0.0
See the version list below for details.
dotnet add package Picovoice.Cheetah --version 1.0.0
NuGet\Install-Package Picovoice.Cheetah -Version 1.0.0
<PackageReference Include="Picovoice.Cheetah" Version="1.0.0" />
paket add Picovoice.Cheetah --version 1.0.0
#r "nuget: Picovoice.Cheetah, 1.0.0"
// Install Picovoice.Cheetah as a Cake Addin #addin nuget:?package=Picovoice.Cheetah&version=1.0.0 // Install Picovoice.Cheetah as a Cake Tool #tool nuget:?package=Picovoice.Cheetah&version=1.0.0
Cheetah Binding for .NET
Cheetah Speech-to-Text Engine
Made in Vancouver, Canada by Picovoice
Cheetah is an on-device streaming speech-to-text engine. Cheetah is:
- Private; All voice processing runs locally.
- Accurate [1]
- Compact and Computationally-Efficient [2]
- Cross-Platform:
- Linux (x86_64)
- macOS (x86_64, arm64)
- Windows (x86_64)
- Android
- iOS
- Raspberry Pi (4, 3)
- NVIDIA Jetson Nano
Requirements
- .NET Core 3.1
Compatibility
Platform compatible with .NET Framework 4.6.1+:
- Windows (x86_64)
Platforms compatible with .NET Core 2.0+:
- Linux (x86_64)
- macOS (x86_64)
- Windows (x86_64)
Platforms compatible with .NET Core 3.1+:
- Raspberry Pi:
- 3 (32 and 64 bit)
- 4 (32 and 64 bit)
- NVIDIA Jetson Nano
Installation
You can install the latest version of Cheetah by getting the latest Cheetah Nuget package in Visual Studio or using the .NET CLI:
dotnet add package Picovoice.Cheetah
AccessKey
AccessKey is your authentication and authorization token for deploying Picovoice SDKs, including Cheetah. Anyone who is using Picovoice needs to have a valid AccessKey. You must keep your AccessKey secret. You would need internet connectivity to validate your AccessKey with Picovoice license servers even though the voice recognition is running 100% offline.
AccessKey also verifies that your usage is within the limits of your account. Everyone who signs up for
Picovoice Console receives the Free Tier
usage rights described
here. If you wish to increase your limits, you can purchase a subscription plan.
Usage
Create an instance of the engine and transcribe an audio file:
using Pv;
const string accessKey = "${ACCESS_KEY}";
Cheetah handle = Cheetah.Create(accessKey);
Replace ${ACCESS_KEY}
with yours obtained from Picovoice Console.
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;
}
string transcript = "";
while(true)
{
CheetahTranscript transcriptObj = handle.Process(GetNextAudioFrame());
transcript += transcriptObj.Transcript;
if (transcriptObj.IsEndpoint) {
CheetahTranscript finalTranscriptObj = handle.Flush();
transcript += finalTranscriptObj.Transcript;
}
}
Cheetah will have its resources freed by the garbage collector, but to have resources freed immediately after use, wrap it in a using statement:
using(Cheetah handle = Cheetah.Create(accessKey))
{
// .. Cheetah usage here
}
The model file contains the parameters for the Cheetah engine. You may create bespoke language models using Picovoice Console and then pass in the relevant file.
using Pv;
const string accessKey = "${ACCESS_KEY}";
string modelPath = "/absolute/path/to/model.pv";
Cheetah handle = Cheetah.Create(accessKey, modelPath);
Demos
The Cheetah dotnet demo project is a .NET Core console app that allows for processing real-time audio (i.e. microphone) and files using Cheetah.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.1
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.