Skip to main content

Crate whisper_cpp_plus

Crate whisper_cpp_plus 

Source
Expand description

Safe, idiomatic Rust bindings for whisper.cpp

This crate provides high-level, safe Rust bindings for whisper.cpp, OpenAI’s Whisper automatic speech recognition (ASR) model implementation in C++.

§Quick Start

use whisper_cpp_plus::{WhisperContext, FullParams, SamplingStrategy};

// Load a Whisper model
let ctx = WhisperContext::new("path/to/model.bin")?;

// Transcribe audio (must be 16kHz mono f32 samples)
let audio = vec![0.0f32; 16000]; // 1 second of silence
let text = ctx.transcribe(&audio)?;
println!("Transcription: {}", text);

§Advanced Usage

use whisper_cpp_plus::{WhisperContext, FullParams, SamplingStrategy, TranscriptionParams};

let ctx = WhisperContext::new("path/to/model.bin")?;
let audio = vec![0.0f32; 16000]; // 1 second of audio

// Configure parameters using builder pattern
let params = TranscriptionParams::builder()
    .language("en")
    .temperature(0.8)
    .enable_timestamps()
    .build();

// Transcribe with custom parameters
let result = ctx.transcribe_with_params(&audio, params)?;

// Access segments with timestamps
for segment in result.segments {
    println!("[{}-{}]: {}", segment.start_seconds(), segment.end_seconds(), segment.text);
}

Re-exports§

pub use whisper_cpp_plus_sys;

Modules§

enhanced
Enhanced optimizations for whisper-cpp-plus

Structs§

AsyncWhisperStream
An async streaming transcriber with channels for audio input
FullParams
PcmReader
Threaded PCM reader — direct port of pcm_async.
PcmReaderConfig
Configuration for PcmReader.
Segment
SharedAsyncStream
A shared async stream for multiple producers
TranscriptionParams
TranscriptionParamsBuilder
TranscriptionResult
VadContextParams
VAD context parameters
VadParams
VAD parameters for speech detection
VadParamsBuilder
Builder for VadParams
VadSegments
Speech segments detected by VAD
WhisperContext
WhisperQuantize
Model quantizer for converting Whisper models to different quantization formats
WhisperState
WhisperStream
Streaming transcriber — faithful port of stream.cpp main loop.
WhisperStreamConfig
Streaming config — maps to stream.cpp’s whisper_params (streaming subset).
WhisperStreamPcm
Streaming PCM transcriber — direct port of stream-pcm.cpp main loop.
WhisperStreamPcmConfig
Configuration for WhisperStreamPcm — maps to whisper_params streaming subset.
WhisperVadProcessor
Voice Activity Detector

Enums§

PcmFormat
Input PCM sample format.
QuantizationType
Quantization types supported by whisper.cpp
QuantizeError
Error type for quantization operations
SamplingStrategy
WhisperError

Functions§

vad_simple
Energy-based VAD — port of common.cpp::vad_simple.

Type Aliases§

Result