Picovoice.Cheetah
2.1.0
dotnet add package Picovoice.Cheetah --version 2.1.0
NuGet\Install-Package Picovoice.Cheetah -Version 2.1.0
<PackageReference Include="Picovoice.Cheetah" Version="2.1.0" />
paket add Picovoice.Cheetah --version 2.1.0
#r "nuget: Picovoice.Cheetah, 2.1.0"
// Install Picovoice.Cheetah as a Cake Addin #addin nuget:?package=Picovoice.Cheetah&version=2.1.0 // Install Picovoice.Cheetah as a Cake Tool #tool nuget:?package=Picovoice.Cheetah&version=2.1.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
- Compact and Computationally-Efficient
- Cross-Platform:
- Linux (x86_64), macOS (x86_64, arm64), and Windows (x86_64)
- Android and iOS
- Chrome, Safari, Firefox, and Edge
- Raspberry Pi (3, 4, 5)
Requirements
- .NET 8.0
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.0+:
- Raspberry Pi:
- 3 (32 and 64 bit)
- 4 (32 and 64 bit)
- 5 (32 and 64 bit)
Platform compatible with .NET 6.0+:
- macOS (arm64)
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
Cheetah requires a valid Picovoice AccessKey
at initialization. AccessKey
acts as your credentials when using Cheetah SDKs.
You can get your AccessKey
for free. Make sure to keep your AccessKey
secret.
Signup or Login to Picovoice Console to get your AccessKey
.
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
}
Language Model
The Cheetah .NET SDK comes preloaded with a default English language model (.pv
file).
Default models for other supported languages can be found in lib/common.
Create custom language models using the Picovoice Console. Here you can train language models with custom vocabulary and boost words in the existing vocabulary.
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 is compatible. 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 is compatible. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 is compatible. netcoreapp3.1 was computed. |
.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.0
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
net6.0
- No dependencies.
-
net8.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.