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)
- 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)
# 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.txtModels are symlinked from your system. Verify they're accessible:
# Check symlinks
ls -la models/
# Output should show:
# kokoro-en-v0_19 -> ../../kokoro-en-v0_19
# sherpa-onnx-... -> ../../sherpa-onnx-...
# If symlinks are broken, set environment variables:
export KOKORO_PATH=/path/to/kokoro-en-v0_19
export SHERPA_PATH=/path/to/sherpa-onnx-...π See MODEL_PATH_RESOLUTION.md for complete setup options:
- Environment variables (recommended)
- Creating symlinks
- Configuration files (.env)
- Troubleshooting broken paths
cd backend
python main_agent_web.py
# Output:
# INFO: Application startup complete
# INFO: Uvicorn running on http://0.0.0.0:8000Navigate to:
http://localhost:8000
ποΈ Click the microphone icon and start speaking!
localhost or 127.0.0.1 (not IP addresses) for browser microphone permissions.
Interactive carousel with equipment cards and voice agent
Detailed equipment specifications and 3D models
Real-time voice interaction with visual feedback
Benchmark scripts and analysis live in benchmarks/.
Component-level latency breakdown and system throughput metrics
End-to-end response time analysis across intent categories
- Terminal Demo Log - Cleaned excerpts showing key interactions
- Asciinema Recording - Full terminal session recording
βββββββββββββββββββββββ
β 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)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Browser (frontend/) β
β - voice-carousel-integrated.html β
β - audio-capture-processor.js β
ββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β WebSocket (binary audio + JSON messages)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FastAPI Backend (backend/main_agent_web.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/semantic_rag_handler.py (RAG) + backend/axiom_brain.py (LLM)
β βΌ β
β [TTS] backend/sequential_tts_handler.py + text normalizers β
β βΌ β
β audio out β WebSocket β browser playback β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| 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 |
- Phonetic Corrector: TTS-friendly conversion of units and domain terms
- Example:
5mβ5 meters,jetson nanoβJetson Nano
- Example:
- Minimal Safe Corrector: Removes markdown/noise without changing meaning
- Example:
**bold**,*italic*,`code`β plain text
- Example:
- Template Bypass: Short, verified replies when confidence is high
- Saves GPU/LLM resources and improves latency
axiom-voice-agent/
βββ backend/ # FastAPI server + core voice pipeline
β βββ main_agent_web.py # App entrypoint (WebSocket server)
β βββ vad_handler.py # Voice activity detection
β βββ stt_handler.py # Speech-to-text
β βββ intent_classifier.py # Intent routing
β βββ semantic_rag_handler.py # RAG + fallback path
β βββ template_responses.py # 2,116 template responses
β βββ sequential_tts_handler.py # TTS queue + generation
β βββ ...
βββ frontend/ # Web UI
β βββ voice-carousel-integrated.html
β βββ audio-capture-processor.js
βββ data/ # Knowledge bases + templates
β βββ template_database.json
β βββ rag_knowledge_base.json
β βββ project_ideas_rag.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
- Quick start: QUICK_START.md
- Installation: docs/INSTALLATION.md
- Architecture: docs/ARCHITECTURE.md
- Features: FEATURES.md
- Documentation map: DOCUMENTATION_MAP.md
If you use AXIOM in research, please cite:
- Adoption: 5000+ clones (community-reported)
- Visibility: 50,000+ views on Reddit (community-reported)
If this project helps you, please star the repo β it helps others find an offline, low-latency voice agent.
- Open-source ecosystem: FastAPI, Sherpa-ONNX, Silero VAD, SetFit, sentence-transformers, Ollama, model-viewer


