Build Speech-to-Speech, Audio-to-Audio, and Realtime Multimodal applications with a single, unified protocol.
Connect effortlessly to OpenAI Realtime, Gemini Multimodal, AWS Nova, Qwen, Grok, UltraVox, and AillomVox native models.
Enterprise Security: Automatic key redaction and sanitized error messages
💰 Pricing & Performance
Choose the tier that fits your budget. AillomVox is optimized for telephony and high-volume use cases.
Provider
Cost/Min
Tier
Recommended For
AillomVox
$0.03
🚀 Best Value
High volume, Telephony, Support
Gemini
$0.06
Standard
Google Gemini 2.5 Flash. Multimodal
AWS
$0.06
Standard
AWS Nova Sonic 2. Enterprise
Qwen
$0.06
Standard
Alibaba Qwen Omni 3. Cost-effective
OpenAI
$0.10
Premium
GPT Realtime Mini. Logic-heavy
Grok
$0.10
Premium
Grok Beta. Witty personality
UltraVox
$0.10
Premium
High emotional intelligence
Why AillomVox?
Native optimized pipeline delivers sub-500ms latency and 8kHz support at less than half the cost. Choose from 65 voices with dynamic mid-conversation switching.
📱 Examples
This repository contains multiple examples ranging from a minimal connection script to full-featured dashboards and creative use cases.
AillomVox uses Inworld TTS 1.5 with 65 voices across 15 languages. See the full Voice Catalog.
Top Picks
Voice
Gender
Style
Best For
Edward
Male
Fast-talking, emphatic
General purpose (default EN)
Julia
Female
Quirky, playful
Customer support
Heitor
Male
Composed, neutral
Portuguese (default PT)
Maitê
Female
Professional
Portuguese
Ashley
Female
Warm, natural
Sales, onboarding
Craig
Male
Refined, articulate
Enterprise, authority
Diego
Male
Soothing, gentle
Spanish (default ES)
Luna
Female
Calm, relaxing
Wellness, concierge
🛠️ Client Tools
Client Tools allow the AI to control your application's UI directly. When the AI decides to execute a tool, your app receives a callback and can respond.
Registering Tools
javascript
1{2"provider":"aillomvox",3"voice":"Edward",4"tools":[5{6"name":"hangup",7"description":"End the call when user says goodbye.",8"parameters":{"type":"object","properties":{}}9},10{11"name":"show_alert",12"description":"Show alert to user",13"parameters":{14"type":"object",15"properties":{16"message":{"type":"string","description":"Alert message"}17},18"required":["message"]19}20}21]22}
Handling Tool Calls (Client-Side)
javascript
1socket.onmessage=(event)=>{2if(typeof event.data!=='string')return;3const msg =JSON.parse(event.data);45if(msg.type==='tool_call'){6console.log(`Tool requested: ${msg.name}`, msg.args);78let result ='OK';9if(msg.name==='hangup'){10disconnect();11 result ='Call ended';12}elseif(msg.name==='show_alert'){13alert(msg.args.message);14 result ='Alert displayed';15}1617// Always respond — AI waits for this (15s timeout)18 socket.send(JSON.stringify({19type:'tool_result',20call_id: msg.call_id,21result: result
22}));23}24};
At 15 seconds remaining, the AI will say the farewell_message. At 0 seconds, the connection closes.
Multi-Language Support
javascript
1{2language:'pt-BR',3voice:'Heitor',// or 'Maitê' for female4system_prompt:'Você é um assistente da Aillom. Seja conciso.',5first_message:'Olá! Como posso ajudar?',6farewell_message:'Obrigado por ligar. Até logo!'7}