Khoj is an open-source personal AI assistant functioning as a 'second brain' for interacting with personal knowledge bases. It provides a chat interface allowing users to converse with various AI models about documents, notes, and connected data sources (local files, GitHub, Notion). The system supports multimodal capabilities including image generation, code execution, voice input/output, and computer operation through a modular agent architecture. Khoj features a Python/Django backend with FastAPI for API endpoints, a PostgreSQL database with pgvector for vector storage and search, and multiple frontends including a web application (React/Next.js), desktop client (Electron), mobile app (Android), and plugins for Obsidian and Emacs. The architecture emphasizes separation of concerns with distinct modules for file processing, embedding generation, conversation handling, tool integration, and user management.
Moonshine Voice is an open-source AI toolkit for building real-time voice agents and applications with on-device speech-to-text, text-to-speech, and voice cloning capabilities. The system emphasizes privacy, low latency, and offline operation through a cross-platform C++ core with language bindings for Python, Swift, Android, and WebAssembly. It includes optimized models for various platforms (from microcontrollers to desktops), multilingual grapheme-to-phoneme conversion, speaker diarization, and embedding-based phrase matching. The architecture features modular components for audio processing, model inference, and language-specific rules, with examples demonstrating microphone transcription, streaming TTS, agent workflows, and embedded deployments on RP2350 microcontrollers.
Clawgo is a minimal headless Go client node for the Clawdbot voice assistant gateway. It connects to a bridge over TCP, handles pairing and authentication, then streams voice transcripts from stdin, a FIFO, or a subprocess STT engine (brabble) as `voice.transcript` or `agent.request` events. It supports bidirectional chat: it can subscribe to chat events and speak responses via local TTS (espeak-ng or custom command) through a serialized speech queue. The node advertises itself via mDNS and supports configurable routing plugins for pre-processing transcripts (e.g., quick actions like 'telegram ping'). The architecture is a single binary with a reconnection loop, context-cancellable waits, and graceful shutdown on SIGINT/SIGTERM. The codebase demonstrates solid Go practices: clean separation of concerns, a plugin registry for routing policies, a thread-safe TTS queue that cancels active speech on disconnect, and careful handling of external subprocess stdout/stderr.
This repository is an offline speech-to-text application that uses the faster-whisper model to transcribe audio and video files into text, JSON, or SRT formats. It provides a web interface built with LayUI and a REST API (including an OpenAI-compatible endpoint) for easy integration. The application supports CPU and CUDA acceleration, caches loaded models for efficiency, and handles media conversion via FFmpeg. The architecture consists of a Flask web server served by gevent, with a background thread processing transcription tasks from a queue. Configuration is managed via an INI file, and utilities for FFmpeg execution, update checking, and browser launching are encapsulated in a helper module. The model caching mechanism avoids reloading large models for multiple requests, improving performance in a server setting.