Talk to your agents.
Nothing leaves the box.
A microphone on every text field in BB. Speech is recognised and tidied up by two open models running on the machine that runs BB, so Hindi, Hinglish or English comes out as clean written English at your cursor.
Install in BB No account, no API key. About 5 GB of models, downloaded once.
Full size 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.
Recognise
Qwen3-ASR 1.7B, kept warm by llama.cpp, transcribes the speech in its own language. Silence is dropped instead of hallucinated.
Polish
Gemma 4 rewrites it like a transcriptionist: fillers out, punctuation and lists in, identifiers kept, non-English rendered in English.
Insert
The text lands at your caret with the space you would have typed. It never types over a selection.
One take, start to finish.
A real clip from the test suite, spoken in Hinglish. Recognition took 2.4 seconds and the polish under a second on a 20-core CPU with no GPU.
Every clip also becomes a row in your own Insights: words, speaking speed, what the polisher changed, and which language you used.
See it move on voice.notpritam.inA mic on every field
BB’s composer already has one. Local Voice docks a small mic to settings, plugin panels and search boxes, with Ctrl+Shift+Space for the keyboard.
Recognised locally
Qwen3-ASR 1.7B, kept warm by llama.cpp, transcribes Hindi, Hinglish and English in their own script. Silence is dropped rather than hallucinated.
Polished like a transcriptionist
Gemma 4 removes fillers and false starts, fixes punctuation, formats lists, turns “dot t s x” into .tsx, and renders non-English speech in English.
Insights
Words dictated, speaking speed, fixes made, what you 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
Opt in with a display name and your install posts daily word counts. Only counts and the name; never audio or text.
Put it on your own machine.
Local Voice lives in my marketplace rather than BB Community. Add the marketplace once, then install the plugin. Both run on the machine running BB.
bb marketplace add git:github.com/notpritam/bb-marketplace@main
bb plugin install local-voice@notpritamThen run host/setup.sh from the installed plugin directory to fetch the models and start the local model server, and point BB at it with bb-app config set BB_TRANSCRIPTION local/qwen3-asr.
Your first dictation
- Hard-refresh BB. The Voice page appears in the sidebar and a small mic appears on every text field.
- Click the composer mic, say a sentence in any language, click it again. Allow the microphone when the browser asks.
- Open Voice → Your usage to watch the first clip land. Opt in to the leaderboard from the plugin settings if you want company.
Keep single takes under about thirty seconds; BB allows ten seconds per transcription attempt and the models fit comfortably inside that.
Private by construction.
Public by choice.
Where does my audio go?
From your browser to your BB host, where it is converted, run through the two models, and deleted. Transcripts are kept in BB’s own database for the Insights page; Clear history removes them.
What does the leaderboard receive?
A display name and daily word and clip counts, sent every fifteen minutes only after you opt in. Leaving the board deletes your rows on the host. Text and audio are never sent.
Which languages work?
Qwen3-ASR covers 50+ languages; Hindi, Hinglish and English are what this was built and tested on. English output is the default and can be switched off to keep the spoken language.
What does it need to run?
llama.cpp and ffmpeg on the BB host, about 5 GB of disk for the models, and a CPU with a handful of cores. No GPU. Arch Linux setup is automated; other systems install llama.cpp first.