5 stable releases

2.0.2 Feb 6, 2024
2.0.0 Nov 24, 2023
1.1.0 Aug 5, 2022
1.0.1 May 12, 2022
0.9.0 Mar 19, 2022

#169 in Hardware support

Apache-2.0

30MB
605 lines

Contains (Windows DLL, 410KB) data/lib/windows/amd64/libpv_cheetah.dll, (ELF lib, 270KB) libpv_cheetah.so, (ELF lib, 290KB) data/lib/linux/x86_64/libpv_cheetah.so, (Mach-o library, 340KB) data/lib/mac/arm64/libpv_cheetah.dylib, (Mach-o library, 355KB) data/lib/mac/x86_64/libpv_cheetah.dylib, (ELF lib, 270KB) libpv_cheetah.so and 5 more.

Cheetah Binding for Rust

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 (5, 4, 3) and NVIDIA Jetson Nano

Compatibility

  • Rust 1.54+
  • Runs on Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64), Raspberry Pi (5, 4, 3), and NVIDIA Jetson Nano.

Installation

First you will need Rust and Cargo installed on your system.

To add the cheetah library into your app, add pv_cheetah to your apps Cargo.toml manifest:

[dependencies]
pv_cheetah = "*"

If you prefer to clone the repo and use it locally, first run copy.sh. (NOTE: on Windows, Git Bash or another bash shell is required, or you will have to manually copy the libs into the project). Then you can reference the local binding location:

[dependencies]
pv_cheetah = { path = "/path/to/rust/binding" }

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 audio:

use cheetah::CheetahBuilder;

fn next_audio_frame() -> Vec<i16> {
  // get audio frame
}

let access_key = "${ACCESS_KEY}"; // AccessKey obtained from Picovoice Console (https://console.picovoice.ai/)
let cheetah: Cheetah = CheetahBuilder::new().access_key(access_key).init().expect("Unable to create Cheetah");

if let Ok(cheetahTranscript) = cheetah.process(&next_audio_frame()) {
  println!("{}", cheetahTranscript.transcript)
  if cheetahTranscript.is_endpoint {
    if let Ok(cheetahTranscript) = cheetah.flush() {
      println!("{}", cheetahTranscript.transcript)
    }
  }
}

Replace ${ACCESS_KEY} with yours obtained from Picovoice Console.

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.

Demos

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

Dependencies