Run a <400ms latency Voice Agent on just 4GB VRAM. Fully offline, no API keys required. Optimized for GTX 1650 and edge robotics with zero-copy inference. (Apache 2.0)
AXIOM - Advanced Voice Agent with Conversational Intelligence
Overview
AXIOM is a voice agent built for robotics / edge environments. It combines modern ML techniques with an efficient inference pipeline to deliver:
- Instant Voice Interaction: Real-time speech processing with WebSocket communication
- Intelligent Intent Classification: SetFit-based intent recognition using secure
.safetensors(no pickle-based model head) - Context-Aware Responses: Semantic RAG + 2,116+ template responses
- 3D Interactive UI: WebGL-based carousel for visual equipment interaction
- Multi-turn Conversation: FIFO history management for contextual understanding
- Clean TTS Output: Phonetic + minimal safe correctors (e.g.,
5mโ5 meters)
Quick Start
Prerequisites
- Python: 3.10+
- RAM: 8GB minimum (16GB recommended)
- VRAM: 2-3.6GB for GPU acceleration (optionalโCPU mode works too)
- Disk: 1GB for models (Kokoro, Sherpa, SetFit)
Step 1: Clone & Setup
# Clone repository
git clone https://github.com/pheonix-delta/axiom-voice-agent.git
cd axiom-voice-agent
Create virtual environment (recommended name: axiomvenv)
python3 -m venv axiomvenv
source axiomvenv/bin/activate # Linux/Mac
or
axiomvenv\Scripts\activate # Windows
Install dependencies (avoid --break-system-packages; use the venv)
pip install -r requirements.txt
Step 2: Download Models (First Run Only)
Models are symlinked from your system. Verify they're accessible:
# Check symlinks
ls -la models/
Output should show:
kokoro-en-v019 -> ../../kokoro-en-v019
sherpa-onnx-... -> ../../sherpa-onnx-...
If symlinks are broken, set environment variables:
export KOKOROPATH=/path/to/kokoro-en-v019
export SHERPA_PATH=/path/to/sherpa-onnx-...
๐ See MODELPATH_RESOLUTION.md for complete setup options:
- Environment variables (recommended)
- Creating symlinks
- Configuration files (.env)
- Troubleshooting broken paths
Step 3: Start the Server
cd backend
python mainagentweb.py
Output:
INFO: Application startup complete
INFO: Uvicorn running on http://0.0.0.0:8000
Step 4: Open Browser
Navigate to:
http://localhost:8000
๐๏ธ Click the microphone icon and start speaking!
โ ๏ธ Important: Use localhost or 127.0.0.1 (not IP addresses) for browser microphone permissions.
Live Demos
๐ฅ๏ธ Web Interface Screenshots
Interactive carousel with equipment cards and voice agent
Detailed equipment specifications and 3D models
Real-time voice interaction with visual feedback
Real Benchmarks (Measured)
Benchmark scripts and analysis live in benchmarks/.
Live terminal results for resource consumption
Component-level latency breakdown and system throughput metrics
End-to-end response time analysis across intent categories
Charts


Terminal Demo
- Terminal Demo Log - Cleaned excerpts showing key interactions
- Asciinema Recording - Full terminal session recording
Architecture
โโโโโโโโโโโโโโโโโโโโโโโ
โ Browser (Web UI) โ
โ - Voice Capture โ
โ - 3D Visualization โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ WebSocket
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FastAPI Backend Server โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโ STT Pipeline โโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โข Sherpa-ONNX Parakeet โ โ
โ โ โข Silero VAD (Voice Detection) โ โ
โ โ โข Phonetic + Minimal Safe Correctorโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโ Intent Classification โโโโโโโโโโโโโ โ
โ โ โข SetFit Model (Local inference) โ โ
โ โ โข Intent classes โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโ Response Pipeline โโโโโโโโโโโโโโโโโ โ
โ โ โข Template-based bypass โ โ
โ โ โข Semantic RAG handler โ โ
โ โ โข Ollama LLM fallback โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโ TTS Engine โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โข Kokoro TTS (Sherpa-ONNX) โ โ
โ โ โข Sequential queue (no echo) โ โ
โ โ โข TTS-safe text normalization โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ (Data Persistence)
SQLite Database
(Conversation History)
System Architecture
High-Level Flow
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Browser (frontend/) โ
โ - voice-carousel-integrated.html โ
โ - audio-capture-processor.js โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ WebSocket (binary audio + JSON messages)
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FastAPI Backend (backend/mainagentweb.py) โ
โ โ
โ audio bytes โ
โ โผ โ
โ [VAD] backend/vad_handler.py โ
โ โผ โ
โ [STT] backend/stt_handler.py โ transcription โ
โ โผ โ
โ [Intent] backend/intent_classifier.py โ intent + confidence โ
โ โผ โ
โ [Context] backend/conversation_manager.py (SQLite + FIFO) โ
โ โผ โ
โ [Response] โ
โ - Fast path: backend/template_responses.py (2,116 templates) โ
โ - Smart path: backend/semanticraghandler.py (RAG) + backend/axiom_brain.py (LLM)
โ โผ โ
โ [TTS] backend/sequentialttshandler.py + text normalizers โ
โ โผ โ
โ audio out โ WebSocket โ browser playback โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Component Responsibilities
| Component | Purpose | Tech Stack | |---|---|---| | VAD Handler | Detect speech segments | Silero VAD | | STT Handler | Convert audio โ text | Sherpa-ONNX | | Intent Classifier | Detect user intent | SetFit (sentence-transformers) | | Conversation Manager | Maintain context | SQLite + FIFO | | Template Responses | Fast replies | 2,116 JSON templates | | RAG Handler | Search knowledge bases | Sentence-Transformers embeddings | | LLM Interface | Complex queries | Ollama + local model | | TTS Handler | Generate speech | Kokoro-EN (Sherpa-ONNX) | | 3D Mapper | Map keywords โ GLB models | Keyword extraction | | WebSocket Server | Real-time communication | FastAPI + uvicorn |
Response Quality (Unique Feature)
- Phonetic Corrector: TTS-friendly conversion of units and domain terms
5m โ 5 meters, jetson nano โ Jetson Nano
- Minimal Safe Corrector: Removes markdown/noise without changing meaning
bold, italic, ` code ` โ plain text
- Template Bypass: Short, verified replies when confidence is high
Project Structure
axiom-voice-agent/
โโโ backend/ # FastAPI server + core voice pipeline
โ โโโ mainagentweb.py # App entrypoint (WebSocket server)
โ โโโ vad_handler.py # Voice activity detection
โ โโโ stt_handler.py # Speech-to-text
โ โโโ intent_classifier.py # Intent routing
โ โโโ semanticraghandler.py # RAG + fallback path
โ โโโ template_responses.py # 2,116 template responses
โ โโโ sequentialttshandler.py # TTS queue + generation
โ โโโ ...
โโโ frontend/ # Web UI
โ โโโ voice-carousel-integrated.html
โ โโโ audio-capture-processor.js
โโโ data/ # Knowledge bases + templates
โ โโโ template_database.json
โ โโโ ragknowledgebase.json
โ โโโ projectideasrag.json
โ โโโ inventory.json
โ โโโ carousel_mapping.json
โโโ assets/ # Images, 3D models, benchmarks
โ โโโ screenshots/
โ โโโ branding/
โ โโโ benchmarks/
โ โโโ 3d v2/
โโโ benchmarks/ # Benchmark scripts + reports
โโโ demos/ # Demo logs + recordings
โโโ docs/ # Architecture + installation docs
โโโ models/ # Symlink-based model directory
โโโ scripts/ # Utilities (charts, safetensors tools, etc.)
โโโ requirements.txt
โโโ start.sh
โโโ README.md
Documentation
- Quick start: QUICK_START.md
- Installation: docs/INSTALLATION.md
- Architecture: docs/ARCHITECTURE.md
- Features: FEATURES.md
- Documentation map: DOCUMENTATION_MAP.md
Citation
If you use AXIOM in research, please cite:
Community
Trending
- Adoption: 5000+ clones (community-reported)
- Visibility: 50,000+ views on Reddit (community-reported)
Acknowledgments
- Open-source ecosystem: FastAPI, Sherpa-ONNX, Silero VAD, SetFit, sentence-transformers, Ollama, model-viewer