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 ;
use mpsc;
// Load settings and get provider config
let settings = load;
let provider = settings.transcription.provider.clone;
let api_key = settings.transcription.api_key_for.unwrap;
// Set up progressive chunking channel
let = ;
let chunker = new;
// Record audio
let mut recorder = new?;
recorder.start_recording?;
// ... feed audio samples to chunker during recording ...
let recording = recorder.stop_recording?;
// Transcribe progressively
let text = progressive_transcribe_cloud.await?;
// Copy to clipboard
copy_to_clipboard?;
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