Local Voice

Talk to your agents. Any language in, clean English out, nothing leaves the box.

Local Voice is a dictation plugin for bb. It puts a microphone on every text field, recognises speech with Qwen3-ASR, tidies it up with Gemma 4, and inserts written text at your cursor. Both models run on the machine that runs bb.

Measured on a 20-core CPU with no GPU: an eight-second Hinglish take comes back as English in about three seconds.

00:00 Recording

What was said, and what landed in the text box.

How a clip travels

  1. Record

    Click the mic in bb's composer, or focus any other field and press Ctrl Shift Space. The browser records; the clip goes to your bb host.

  2. Recognise

    Qwen3-ASR 1.7B, kept warm by llama.cpp, transcribes the speech in its own language. Hindi, Hinglish and English are all first-class; silence is dropped instead of hallucinated.

  3. Polish

    Gemma 4 E4B rewrites it like a transcriptionist: fillers and false starts out, punctuation and lists in, dot t s x becomes .tsx, identifiers stay as spoken, and non-English is rendered in English.

  4. Insert

    The text appears at your caret. It never types over a selection, and it adds the space you would have typed.

What comes with it

A mic on every field

bb's composer already has one. Local Voice docks a second, smaller mic to settings fields, plugin panels, search boxes and any other place you can type.

Insights

Words dictated, speaking speed, how much the polisher fixed, what you tend to dictate about, streaks, and a heatmap of every day you spoke.

A voice profile

After a couple of hundred words the local model writes a short persona from what you actually say, with your catchphrase and the word you correct most.

A public leaderboard, by invitation

Opt in with a display name and an invite code, and your install posts daily word counts. Only counts and the name; no audio, no text, ever. It's invite-only while the host watches usage.

Private by construction

Audio, transcripts and the profile live in your bb's own database. Clear history deletes them. Leaving the leaderboard deletes your rows there too.

Open and swappable

Apache-2.0 models served through an OpenAI-compatible router. Prefer whisper.cpp? Set BB_TRANSCRIPTION=local/whisper-small.

The Usage tab: words per minute, fixes made while polishing, total words, categories, streak heatmap.
Your usage
The Your voice tab with a generated persona, catchphrase, most used and most corrected word, and peak time.
Your voice
The Leaderboard tab with a podium and a ranked table.
Leaderboard

This week's board

Live from this host.

Loading…

Ranks reset each ISO week. Everyone on the board opted in from their own bb with an invite. Ask for an invite.

Install

On the machine that runs your bb host. Arch Linux is automated; elsewhere, install llama.cpp and ffmpeg first. Budget about 5 GB for the models.

git clone https://github.com/notpritam/bb-plugin-local-voice.git
cd bb-plugin-local-voice && npm install
./host/setup.sh
bb plugin install .
bb-app config set BB_TRANSCRIPTION local/qwen3-asr

Or from the marketplace, then run host/setup.sh from the installed plugin directory:

bb marketplace add git:github.com/notpritam/bb-marketplace@main
bb plugin install local-voice@notpritam

Hard-refresh the bb app afterwards. The Voice page appears in the sidebar and the mic appears on every field. To join the board, set leaderboard, displayName and your leaderboardInvite in the plugin settings, then press Join on the Leaderboard tab.