pheonix-delta
axiom-voice-agent
Python

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)

Last updated Aug 6, 2026
137
Stars
4
Forks
1
Issues
0
Stars/day
Attention Score
67
Language breakdown
No language data available.
โ–ธ Files click to expand
README

AXIOM - Advanced Voice Agent with Conversational Intelligence

DOI Read Paper License: Apache 2.0

Python 3.10+ FastAPI

AXIOM Mascot


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

AXIOM Web Interface - Main View
Interactive carousel with equipment cards and voice agent

AXIOM Web Interface - Equipment Details
Detailed equipment specifications and 3D models

AXIOM Web Interface - Voice Interaction
Real-time voice interaction with visual feedback

Real Benchmarks (Measured)

Benchmark scripts and analysis live in benchmarks/.

Live terminal results for resource consumption

Performance Analysis
Component-level latency breakdown and system throughput metrics

Response Time Distribution
End-to-end response time analysis across intent categories

Charts

Latency Benchmarks

Detailed Performance Table


Terminal Demo



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
- Example: 5m โ†’ 5 meters, jetson nano โ†’ Jetson Nano
  • Minimal Safe Corrector: Removes markdown/noise without changing meaning
- Example: bold, italic, ` code ` โ†’ plain text
  • Template Bypass: Short, verified replies when confidence is high
- Saves GPU/LLM resources and improves latency

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


Citation

If you use AXIOM in research, please cite:


Community

Trending

  • 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.

Acknowledgments

  • Open-source ecosystem: FastAPI, Sherpa-ONNX, Silero VAD, SetFit, sentence-transformers, Ollama, model-viewer
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท pheonix-delta/axiom-voice-agent ยท Updated daily from GitHub