Use case · AI voice agents
Voice agents that actually sound Arabic.
Conversational voice is the breakout pattern of 2026, and the agents that ship into the GCC need to handle dialect on both sides of the conversation. Hakim's STT understands Khaleeji, Egyptian, Levantine, and Maghrebi callers; the TTS responds at sub-120 ms with the dialect you picked. Interrupt handling, WebSocket streaming, and branded voice cloning are first-class.
Three legs, one socket
Capture and transcribe
Open a WebSocket to Hakim Arab v2. Stream PCM audio chunks; receive partial and final transcripts back, dialect-tagged. Voice activity detection and interrupt signals fire as events so your LLM doesn't run on half-spoken inputs.
Run your agent logic
Pipe the transcript into your model of choice (OpenAI, Anthropic, an in-house fine-tune). We don't lock you into a model or a framework. Most teams already have an orchestrator (LangChain, LlamaIndex, custom); Hakim slots in at the audio boundaries.
Stream the response back
Send the agent's reply text into Hakim Fast v1.3 over the same socket. First audio chunks return in under 120 ms so the caller hears the agent start speaking before the model has finished generating. If the user interrupts, cancel the synthesis with one event.
Built for production voice agents
Dialect-aware STT
Hakim Arab v2 STT was trained on native speakers across the Gulf, Egypt, the Levant, and the Maghreb. Callers don't have to flatten their speech into MSA to be understood; the transcript carries the dialect tag so your agent can localise the response.
Sub-120 ms TTFB on TTS
First audio bytes return in under 120 ms from the regional inference closest to the caller (UAE, KSA, EU-Frankfurt). That is what conversational latency actually feels like. Anything north of 300 ms reads as lag, and your agent loses the room.
Interrupt handling on the wire
When the caller starts speaking again, a single WebSocket event cancels the in-flight synthesis. No half-spoken sentences, no queued audio that has to drain before the agent can reply. The transport semantics match what production voice agents need.
Branded voice cloning
Clone a single voice that your agent uses on every call. Consent-gated, watermarked, audit-trailed. The brand presence on a voice channel matters as much as the wordmark on a website; we make it easy to keep both consistent.
Node
Realtime in five lines
import { HakimRealtime } from '@hakim/sdk';
const session = new HakimRealtime({ apiKey: process.env.HAKIM_API_KEY });
await session.connect({ stt_model: 'hakim-arab-v2', tts_voice: 'reem-khaleeji' });
session.on('transcript.final', async ({ text }) => {
const reply = await yourLLM(text);
await session.speak(reply);
});Built for these voice-agent workflows
Customer service voice agents
Replace the IVR maze with an agent that understands what the caller actually said in their own dialect. First-call resolution rates rise sharply when the agent can interpret Khaleeji or Egyptian without forcing the caller into MSA. Hand off to a human seamlessly when the LLM hits its limits.
Phone IVR + outbound dialing
Plug Hakim into Twilio, Vonage, or a SIP trunk. The audio side is the same WebSocket pattern; the telephony provider handles the SIP / RTP layer. Outbound dialing for appointment confirmations, debt collection, and survey research already runs at scale on this stack.
In-app voice copilots
Voice as a first-class input inside your web or mobile app. Stream the mic to Hakim STT, run your LLM, stream the response back through Hakim TTS. Browser SDK + native bindings (iOS, Android) ship the same primitives.
Sales + qualification bots
Inbound demo bookings, lead qualification, and renewal calls. The voice agent screens, qualifies, and schedules; humans only see the calls that matter. The dialect breadth lets one agent serve the entire GCC + Maghreb without retraining.

