Local push-to-talk speech-to-text desktop app.
Hold a key, speak, release — the transcription is typed at your cursor.
Runs 100% offline using whisper.cpp.
Grab the latest build from the Releases page.
Debian / Ubuntu — .deb:
sudo apt install ./BVoice_0.1.0_amd64.deb
Fedora / RHEL / openSUSE — .rpm:
sudo dnf install ./BVoice-0.1.0-1.x86_64.rpm
After install you'll find BVoice in your application menu. On first launch the selected whisper model (75–466 MB) downloads to `/.local/share/bvoice/models/`.
tiny.en / base.en / small.en)Settings persist at ~/.config/bvoice/config.toml:
| Key | Type | Default | Description |
|---|---|---|---|
model |
string | base.en |
Whisper model (tiny.en, base.en, small.en) |
arm_threshold_ms |
u64 | 1000 |
Hold duration before recording arms |
input_device |
string|null | null |
Input device name; null = system default |
hotkey |
string | AltGr |
Trigger key (rebindable from the settings window) |
beam_size |
u32 | 5 |
Beam search size; 1 = greedy |
All fields are editable from the Settings window and persist on Save.
cargo install tauri-cli --version '^2.0' --lockedsudo apt install \
libwebkit2gtk-4.1-dev libsoup-3.0-dev libayatana-appindicator3-dev \
libasound2-dev libxdo-dev libclang-dev libssl-dev libstdc++-12-dev \
pkg-config build-essential
npm install
npm run tauri dev # development
npm run tauri build # release bundles (.deb + .rpm)
hotkey (rdev, X11 XRecord) ─▶ state machine (arm-on-1s)
│
armed ▼
audio::start (cpal, dedicated thread)
│
released ▼
audio::stop (mono + rubato 16 kHz)
│
▼
vad::trim_silence (Silero VAD)
│
▼
transcribe::transcribe (whisper-rs, beam search)
│
▼
inject::paste (enigo — types at cursor)
MIT — see LICENSE.