How khalilsaqib/voxweave works
VoxWeave is a web-based assistant with text chat and real-time voice conversation. Text requests stream LLM responses through the API; voice sessions join LiveKit, process microphone audio for speech recognition, generate an LLM response, segment it, synthesize speech, and publish audio. The graph includes session orchestration and conversation state as internal layers. The README documents GPU-hosted inference and streaming capabilities; some service internals were not excerpted, so those links rely on documented behavior or are omitted where wiring is uncertain.
Main entry points: service.py Audio Processor · manager_service.py Voice Session Manager · routes.py HTTP API · main.py Web Application
Components 22
Application and UI
- Web Interface
client/js/app.js - Web Application
app/main.py - HTTP API
app/api/routes.py
Conversation Sessions
- Conversation Manager
app/services/session/conversation_service.py - Voice Session Manager
app/services/session/manager_service.py - Voice Session State
app/services/session/voice_service.py
Voice Processing
- LiveKit Service
app/services/livekit/service.py - Audio Processor
app/services/audio_processor/service.py - Voice Activity Detection
app/services/vad/service.py - Audio Buffer
app/audio/buffer.py - ASR Scheduler
app/services/asr/scheduler.py - TTS Worker
app/services/tts/worker.py - Audio Publisher
app/services/tts/publisher.py
AI Services
- LLM Service
app/services/llm/service.py - Speech Recognition
app/services/asr/service.py - Text Segmenter
app/services/tts/text_segmenter.py - Speech Synthesis
app/services/tts/service.py
Other components
- User
- Hosted LLM API
- LiveKit WebRTC
- Hosted STT API
- Hosted TTS API
Connections 31
- User → Web Interface: interacts with
README.md - Web Interface → Web Application: uses
README.md - Web Application → HTTP API: registers routes
app/main.py - HTTP API → Conversation Manager: manages conversations
app/api/routes.py - HTTP API → Voice Session Manager: starts and stops sessions
app/api/routes.py - HTTP API → LiveKit Service: creates client token
app/api/routes.py - HTTP API → LLM Service: streams chat response
app/api/routes.py - Conversation Manager → LLM Service: maintains session history
app/services/session/conversation_service.py - Web Application → Voice Session Manager: wires components
app/main.py - Web Application → Conversation Manager: wires components
app/main.py - Voice Session Manager → LiveKit Service: connects agent
app/services/session/manager_service.py - Voice Session Manager → Voice Session State: creates session state
app/services/session/manager_service.py - Voice Session Manager → Audio Processor: dispatches audio track
app/services/session/manager_service.py - LiveKit Service → LiveKit WebRTC: joins room
app/services/livekit/service.py - User → LiveKit WebRTC: streams microphone audio
README.md - LiveKit WebRTC → Audio Processor: provides audio track
- Audio Processor → Voice Activity Detection: detects speech
app/services/audio_processor/service.py - Audio Processor → Audio Buffer: buffers audio
app/services/audio_processor/service.py - Audio Processor → ASR Scheduler: submits transcription
app/services/audio_processor/service.py - ASR Scheduler → Speech Recognition: dispatches requests
app/services/asr/scheduler.py - Speech Recognition → Hosted STT API: transcribes audio
app/services/asr/service.py - Audio Processor → LLM Service: requests voice response
app/services/audio_processor/service.py - LLM Service → Hosted LLM API: streams inference
README.md - Audio Processor → Text Segmenter: segments response text
app/services/audio_processor/service.py - Text Segmenter → Speech Synthesis: provides text segments
README.md - Speech Synthesis → Hosted TTS API: synthesizes speech
README.md - Voice Session Manager → TTS Worker: starts worker
app/services/session/manager_service.py - TTS Worker → Speech Synthesis: generates segment audio
app/services/tts/worker.py - TTS Worker → Audio Publisher: publishes generated audio
app/services/tts/worker.py - Audio Publisher → LiveKit WebRTC: streams audio to room
README.md - LiveKit WebRTC → User: plays response audio
README.md