whis-core

Crates.iowhis-core
lib.rswhis-core
version0.7.2
created_at2025-11-30 01:38:27.583688+00
updated_at2026-01-20 09:53:30.887309+00
descriptionCore library for whis voice-to-text functionality
homepage
repository
max_upload_size
id1957733
size459,809
(frankdierolf)

documentation

README

whis

whis-core

Core library for whis voice-to-text functionality.
Website · CLI · Desktop · Mobile

Features

  • Audio recording — capture microphone input
  • Transcription — cloud providers or local models
  • Progressive chunking — transcribe long recordings in real-time
  • LLM post-processing — transform transcripts with custom prompts
  • Clipboard — copy results to system clipboard
  • Config management — persistent settings (platform-aware paths)

Usage

use whis_core::{
    AudioRecorder, TranscriptionProvider, Settings,
    ProgressiveChunker, ChunkerConfig, ProgressiveChunk,
    progressive_transcribe_cloud, copy_to_clipboard, ClipboardMethod,
};
use tokio::sync::mpsc;

// Load settings and get provider config
let settings = Settings::load();
let provider = settings.transcription.provider.clone();
let api_key = settings.transcription.api_key_for(&provider).unwrap();

// Set up progressive chunking channel
let (chunk_tx, chunk_rx) = mpsc::unbounded_channel::<ProgressiveChunk>();
let chunker = ProgressiveChunker::new(ChunkerConfig::default(), chunk_tx);

// Record audio
let mut recorder = AudioRecorder::new()?;
recorder.start_recording()?;
// ... feed audio samples to chunker during recording ...
let recording = recorder.stop_recording()?;

// Transcribe progressively
let text = progressive_transcribe_cloud(
    &provider,
    &api_key,
    None, // language hint
    chunk_rx,
    None, // progress callback
).await?;

// Copy to clipboard
copy_to_clipboard(&text, ClipboardMethod::Auto)?;

For simpler use cases, see the CLI implementation in whis-cli which handles the recording → chunking → transcription → clipboard pipeline.

Feature Flags

Feature Default Description
embedded-encoder Yes MP3 encoding via embedded LAME library
clipboard Yes Clipboard support via arboard/xclip/wl-copy
local-transcription Yes Local transcription via Whisper/Parakeet (requires model)
vad Yes Voice Activity Detection to skip silence
realtime Yes OpenAI/Deepgram Realtime API for streaming

Modules

Module Description
audio AudioRecorder, ProgressiveChunker, RecordingData, VAD processing
transcription Progressive transcription, post-processing, Ollama integration
provider Provider registry and TranscriptionBackend trait
configuration TranscriptionProvider enum, presets, defaults
settings User preferences (provider, API keys, language, hotkeys)
clipboard System clipboard operations with multiple backends
model Whisper/Parakeet model management
state Recording state machine
verbose Debug logging utilities

License

MIT

Commit count: 0

cargo fmt