Open-source customizable AI voice dictation built on Pipecat
FrameworkFreeTambourine 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 wher
Capabilities12 decomposed
real-time speech-to-text transcription with streaming audio processing
Medium confidenceCaptures audio input from microphone or system audio and converts it to text in real-time using streaming transcription APIs. Built on Pipecat's audio pipeline architecture, which handles buffering, frame aggregation, and asynchronous transcription without blocking the audio capture loop. Supports multiple transcription backends (OpenAI Whisper, Google Cloud Speech-to-Text, or local models) through pluggable provider abstraction.
Leverages Pipecat's frame-based audio pipeline architecture to handle streaming transcription without blocking, allowing concurrent processing of audio capture, transcription, and downstream NLP tasks in a single event loop
More flexible than native OS dictation (Windows Speech Recognition, macOS Dictation) because it supports multiple transcription backends and allows custom post-processing, while being simpler than building raw audio pipelines with PyAudio + manual buffering
customizable text post-processing and formatting pipeline
Medium confidenceApplies user-defined transformation rules to transcribed text before output, including punctuation restoration, capitalization correction, abbreviation expansion, and domain-specific text normalization. Implemented as a composable chain of processors that can be enabled/disabled and reordered, allowing developers to inject custom formatting logic at any stage. Integrates with LLM-based processors for intelligent punctuation and grammar correction.
Implements processors as composable, reorderable middleware in Pipecat's message pipeline, allowing developers to mix rule-based and LLM-based transformations without reimplementing the core transcription logic
More flexible than hardcoded punctuation restoration (like Whisper's built-in capitalization) because it allows arbitrary custom processors, while being simpler than building a full NLP pipeline from scratch with spaCy or NLTK
performance monitoring and latency tracking
Medium confidenceTracks end-to-end latency from audio capture to final text output, with per-stage breakdowns (audio buffering, transcription, post-processing, output routing). Exposes metrics through Pipecat's monitoring hooks, allowing integration with observability platforms (Prometheus, DataDog, New Relic). Includes built-in performance profiling to identify bottlenecks. Configurable sampling to avoid overhead in production.
Integrates with Pipecat's message pipeline to track latency at each stage without requiring manual instrumentation in application code, with configurable sampling to minimize overhead
More granular than application-level timing (which only measures end-to-end latency), while being simpler than full distributed tracing with Jaeger or Zipkin
language and locale support with dynamic switching
Medium confidenceSupports multiple languages and locales for transcription and text processing, with dynamic switching without restarting the application. Manages language-specific models and post-processing rules (e.g., different punctuation rules for different languages). Implements language detection to automatically select the appropriate language model. Built as a Pipecat service with language-specific processor chains.
Implements language switching as a Pipecat service that can change language-specific processor chains at runtime, allowing seamless language switching without pipeline reconstruction
More flexible than single-language transcription APIs, while being simpler than building a full multilingual NLP pipeline with spaCy or NLTK
multi-provider transcription backend abstraction with fallback routing
Medium confidenceAbstracts transcription provider implementations behind a unified interface, allowing seamless switching between OpenAI Whisper, Google Cloud Speech-to-Text, Azure Speech Services, or local models without changing application code. Implements provider-agnostic request/response mapping and includes automatic fallback logic that routes to a secondary provider if the primary fails or times out. Built using Pipecat's service abstraction pattern with pluggable provider classes.
Uses Pipecat's service abstraction pattern to implement provider-agnostic transcription, with automatic fallback routing that doesn't require application-level error handling or provider-specific retry logic
More maintainable than manually implementing provider switching with if/else statements, while being more lightweight than full service mesh solutions like Istio that add operational complexity
voice activity detection and silence handling
Medium confidenceDetects when the user is actively speaking vs. silent, automatically pausing transcription during silence periods to reduce API costs and latency. Uses either energy-based VAD (voice activity detection) on raw audio frames or integrates with provider-native VAD if available (e.g., Whisper's built-in silence detection). Configurable sensitivity thresholds and minimum speech duration to avoid false positives from background noise.
Integrates VAD as a Pipecat audio processor that runs on raw frames before transcription, allowing cost savings at the pipeline level rather than post-hoc filtering of transcription results
More efficient than sending all audio to the transcription API and filtering silence in post-processing, while being simpler than implementing custom audio signal processing with librosa or scipy
real-time text output streaming to application ui or external systems
Medium confidenceStreams transcribed and formatted text to the application UI in real-time as it becomes available, supporting both partial (interim) results and final confirmed text. Implements output routing through Pipecat's message pipeline, allowing text to be sent to multiple destinations simultaneously (UI text field, file, external API, clipboard). Supports configurable buffering and batching strategies to balance latency vs. update frequency.
Leverages Pipecat's message pipeline to route text to multiple destinations without duplicating transcription logic, with configurable buffering strategies that allow developers to tune latency vs. update frequency
More flexible than hardcoding output to a single destination, while being simpler than implementing custom message routing with Kafka or RabbitMQ for simple use cases
context-aware command recognition and intent extraction
Medium confidenceInterprets transcribed text as voice commands or intents within a configurable command schema, extracting parameters and routing to appropriate handlers. Uses pattern matching, fuzzy matching, or LLM-based intent classification to map user utterances to defined commands. Maintains conversation context to handle multi-turn interactions and anaphora (e.g., 'delete that' referring to the previous message). Implemented as a Pipecat processor that sits downstream of transcription and post-processing.
Implements command recognition as a Pipecat processor with pluggable matching strategies (pattern, fuzzy, LLM), allowing developers to choose the right tradeoff between latency and accuracy for their use case
More flexible than hardcoded if/else command routing, while being simpler than full NLU frameworks like Rasa that require training data and model management
audio input device management and multi-source support
Medium confidenceAbstracts audio input from various sources (system microphone, USB headset, virtual audio device, audio file) through a unified interface. Handles device enumeration, format negotiation (sample rate, bit depth, channels), and graceful fallback if the selected device becomes unavailable. Supports simultaneous capture from multiple audio sources for multi-participant scenarios. Built on Pipecat's audio input abstraction with platform-specific implementations (PyAudio for cross-platform, native APIs for macOS/Windows).
Abstracts platform-specific audio APIs (PyAudio, CoreAudio, WASAPI) behind a unified Pipecat audio input interface, allowing developers to write device-agnostic code while supporting advanced features like virtual audio devices
More flexible than OS-native dictation APIs (which lock you to one microphone), while being simpler than building custom audio capture with raw ALSA/WASAPI calls
customizable ui integration and event binding
Medium confidenceProvides hooks and event callbacks for integrating the voice dictation engine with custom UI frameworks (Qt, Tkinter, web frameworks like Flask/FastAPI). Exposes events for transcription start/stop, text updates, command recognition, and error conditions. Allows UI to control the dictation engine (start/stop recording, change provider, adjust settings) through a clean API. Implemented as a Pipecat service with async event emission and callback registration.
Exposes Pipecat's async event system as a clean callback API, allowing UI frameworks to integrate without understanding the underlying audio pipeline architecture
More flexible than monolithic dictation apps with fixed UI, while being simpler than building a full plugin system with IPC or message queues
configuration management and profile persistence
Medium confidenceManages application settings (transcription provider, language, VAD sensitivity, post-processing rules, UI preferences) through a configuration file or database, with support for multiple named profiles. Allows users to save/load configurations without code changes, and provides sensible defaults for common use cases. Implements configuration validation and schema versioning to handle upgrades. Built on standard Python config libraries (ConfigParser, YAML, or JSON) with Pipecat service initialization hooks.
Integrates configuration loading with Pipecat service initialization, allowing settings to be applied automatically when services are instantiated without manual wiring
Simpler than building a full settings UI with validation, while being more flexible than hardcoded defaults
error handling and graceful degradation
Medium confidenceImplements comprehensive error handling for transcription failures, network issues, invalid audio input, and API errors. Provides user-friendly error messages and automatic recovery strategies (retry with exponential backoff, fallback to alternative provider, graceful degradation to text input). Logs detailed error information for debugging. Built as a Pipecat error handler middleware that intercepts exceptions and decides whether to retry, fallback, or fail gracefully.
Implements error handling as a Pipecat middleware that can intercept and recover from errors at any stage of the pipeline, rather than requiring try/catch blocks in application code
More robust than basic try/catch error handling because it includes automatic retry logic and fallback strategies, while being simpler than building a full circuit breaker pattern with Resilience4j
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with Open-source customizable AI voice dictation built on Pipecat, ranked by overlap. Discovered automatically through the match graph.
izTalk
Seamless real-time translation and speech recognition for global...
Scribewave
AI-Powered Transcription and Language...
EKHOS AI
An AI speech-to-text software with powerful proofreading features. Transcribe most audio or video files with real-time recording and...
Mistral: Voxtral Small 24B 2507
Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...
GitHub Copilot Voice
A voice assistant for VS Code
Qwen3-ASR-1.7B
automatic-speech-recognition model by undefined. 18,69,130 downloads.
Best For
- ✓developers building voice-first productivity tools
- ✓accessibility-focused teams needing hands-free input
- ✓teams wanting to avoid vendor lock-in on transcription
- ✓developers building domain-specific dictation tools (legal, medical, technical)
- ✓teams needing consistent text formatting across multiple transcription sources
- ✓builders wanting to experiment with different post-processing strategies
- ✓developers optimizing dictation latency for real-time responsiveness
- ✓teams running production systems requiring performance monitoring
Known Limitations
- ⚠Transcription latency depends on backend provider (typically 200-500ms for streaming APIs)
- ⚠Requires continuous network connection for cloud-based transcription backends
- ⚠Audio quality directly impacts transcription accuracy — no built-in noise filtering or preprocessing
- ⚠No automatic language detection — requires explicit language configuration per session
- ⚠LLM-based post-processing adds 100-300ms latency per text segment
- ⚠Custom processors must be implemented in Python — no declarative rule language
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
About
Show HN: Open-source customizable AI voice dictation built on Pipecat
Categories
Alternatives to Open-source customizable AI voice dictation built on Pipecat
Search the Supabase docs for up-to-date guidance and troubleshoot errors quickly. Manage organizations, projects, databases, and Edge Functions, including migrations, SQL, logs, advisors, keys, and type generation, in one flow. Create and manage development branches to iterate safely, confirm costs
Compare →Are you the builder of Open-source customizable AI voice dictation built on Pipecat?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →