pv_cobra

Crates.iopv_cobra
lib.rspv_cobra
version2.0.3
sourcesrc
created_at2021-10-07 23:23:55.828604
updated_at2024-09-04 18:27:02.959527
descriptionThe Rust bindings for Picovoice's Cobra library
homepagehttps://picovoice.ai/platform/cobra/
repositoryhttps://github.com/Picovoice/cobra
max_upload_size
id462119
size2,699,703
Albert Ho (albho)

documentation

README

Cobra Voice Activity Detection Engine

Made in Vancouver, Canada by Picovoice

Cobra is a highly accurate and lightweight voice activity detection (VAD) engine.

Compatibility

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

Installation

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

To add the cobra library into your app, add pv_cobra to your apps Cargo.toml manifest:

[dependencies]
pv_cobra = "*"

AccessKey

Cobra requires a valid Picovoice AccessKey at initialization. AccessKey acts as your credentials when using Cobra 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:

use cobra::Cobra;

let access_key = "..."; // AccessKey provided by Picovoice Console (https://console.picovoice.ai/)
let cobra = Cobra::new(access_key);

where access_key is an AccessKey which should be obtained from Picovoice Console. cobra is an instance of Cobra that detects voice activities.

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

let threshold = ... // Detection threshold within [0, 1]

loop {
    if let Ok(voice_probability) = cobra.process(&next_audio_frame()) {
        if voice_probability >= threshold {
            // Detection event!
        }
    }
}

Use new_with_library to override the default library path:

use cobra::Cobra;

let access_key = "..."; // AccessKey provided by Picovoice Console (https://console.picovoice.ai/)
let cobra = Cobra::new_with_library(access_key, "/path/to/library/file");

Demos

Check out the Cobra Rust demos here

Commit count: 241

cargo fmt