Local-First, Real-Time Multilingual Code-switching Audio Transcriber, Diarization, Translation, Playback, & AI Chat.
Transcribee is a client-side web app that runs entirely in the browser. It handles audio streaming, speaker diarization, translation, playback, AI chat with FIFO context, and client-side persistence—all without relying on intermediate application servers.
The unified desktop layout features a sidebar listing saved meeting sessions, a central live transcript viewer with speaker indicators, and an AI chat assistant panel on the right.
Watch live transcription tokens settle. Refined (finalized) segments are rendered clearly, with concurrent translations displayed alongside. Click any transcribed word to play back the exact snippet of audio.
A slide-out settings drawer allows managing your Soniox STT and Google Gemini API credentials. Tweak transcription models, active language identification hints, translation pathways, and hardware audio capture routes.
For smaller viewports, the interface automatically collapses into a fluid, tabbed navigation menu, prioritizing focus on the live session, session manager, or AI chat assistant as needed.
-
Audio Capture & Loopback Mixing
Captures physical microphone inputs alongside software/system output audio (screen share loopback) and dynamically mixes them down to mono linear PCM (16kHz) required by speech engines. -
Resilient Soniox Live STT Client
Maintains a duplex WebSocket connection directly to Soniox STT to stream real-time word-level tokens, speaker diarization tags ("Speaker 1", "Speaker 2"), and translation segments. -
Token-Level Audio Playback (Audio Scrubbing)
Maps textual tokens with absolute audio offset intervals (start_msandduration_ms). Clicking any word in the transcript queries the local IndexedDB/OPFS audio cache and plays back that specific micro-segment. -
Smart FIFO Context Manager
Calculates prompt token sizes locally. Displays a warning status when the compiled transcript reaches 85% of the LLM's context window, and executes First-In, First-Out (FIFO) truncation at 100% capacity to maintain context integrity. -
AI Chat Agent
Invokes theChatGoogleGenerativeAImodel dynamically via LangChain JS. Streams responses to natural-language user queries directly within the browser using the session transcript as local context. -
Offline Persistence
Leverages a client-side IndexedDB database engine to store session structures, transcript segments, AI chat logs, and binary audio buffers.
+---------------------------------------+
| Web Audio API Processing |
| (Mic Input + Speaker Loopback) |
+-------------------+-------------------+
| Raw Audio Buffer
v
+-----------------------+ Audio Stream +------+------+ Real-Time Tokens +------------------------+
| Soniox Live STT Agent | ------------> | RTK Global | <----------------- | LLM Chat Agent |
| (WebSocket Engine) | <------------ | State Engine | -----------------> | (LangChain JS Client) |
+-----------------------+ Config / Keys +------+------+ Context Stream +------------------------+
|
| Structured Payload Data
v
+-------------------+-------------------+
| Local-First Persistence Agent |
| (IndexedDB) |
+---------------------------------------+
- Node.js (v18+)
- npm or bun
npm install
# or
bun installnpm run dev
# or
bun run devOpen http://localhost:3000 in your browser.
Transcribee uses Playwright to run end-to-end user flows with mock credentials and audio sources.
# Run tests
npx run test
# or
bun run test


