Show HN: Open-source customizable AI voice dictation built on Pipecat (github.com)

27 points by kstonekuan ↗ HN
Tambourine is an open source, fully customizable voice dictation system that lets you control STT/ASR, LLM formatting, and prompts for inserting clean text into any app.

I have been building this on the side for a few weeks. What motivated it was wanting a customizable version of Wispr Flow where I could fully control the models, formatting, and behavior of the system, rather than relying on a black box.

Tambourine is built directly on top of Pipecat and relies on its modular voice agent framework. The back end is a local Python server that uses Pipecat to stitch together STT and LLM models into a single pipeline. This modularity is what makes it easy to swap providers, experiment with different setups, and maintain fine-grained control over the voice AI.

I shared an early version with friends and recently presented it at my local Claude Code meetup. The response was overwhelmingly positive, and I was encouraged to share it more widely.

The desktop app is built with Tauri. The front end is written in TypeScript, while the Tauri layer uses Rust to handle low level system integration. This enables the registration of global hotkeys, management of audio devices, and reliable text input at the cursor on both Windows and macOS.

At a high level, Tambourine gives you a universal voice interface across your OS. You press a global hotkey, speak, and formatted text is typed directly at your cursor. It works across emails, documents, chat apps, code editors, and terminals.

Under the hood, audio is streamed from the TypeScript front end to the Python server via WebRTC. The server runs real-time transcription with a configurable STT provider, then passes the transcript through an LLM that removes filler words, adds punctuation, and applies custom formatting rules and a personal dictionary. STT and LLM providers, as well as prompts, can be switched without restarting the app.

The project is still under active development. I am working through edge cases and refining the UX, and there will likely be breaking changes, but most core functionality already works well and has become part of my daily workflow.

I would really appreciate feedback, especially from anyone interested in the future of voice as an interface.

7 comments

[ 75.2 ms ] story [ 240 ms ] thread
Is there a way to do this with a local LLM, without any internet access needed?
I don't think I'd call anything that only works with a proprietary Internet hosted LLM (one you need an account to use) open-source.

This is less voice dictation software, and much more a shim to [popular LLM provider]

I prefer Gemini 2.0 Flash because it is both faster and more capable than local large language models. In this context, I am not concerned about Google having my data; my primary objective is ensuring my government does not gain access to it ;)
The critiques about local inference are valid, if you're billing this as an open source alternative to existing cloud based solutions.
Looks interesting!

How are you feeling about Tauri as you take this to a larger audience?

I’ve dabbled with it and thought it was compelling, but not supported a release.

The level of customizability is quite promising. Is your vision for the app to be all in one, or perhaps one day serve an online customizable backend as a platform as a service?