GenAIHub
Back to Technical
Real-time AI

Voice Agents (2025)

Build conversational AI that speaks in real-time. From OpenAI's Realtime API to specialized platforms like Vapi and Retell AI. Low latency (< 500ms) conversation is now possible.

The State of Voice AI (2025)

Traditional Voice AI (STT → LLM → TTS) was slow (2-4s latency). In 2025, end-to-end multimodal models and optimized infrastructure have brought latency down to 300-800ms, enabling truly interruptible, natural conversations.

Key Capabilities

  • Low Latency: Sub-second response times.
  • Interruptibility: Stop speaking when the user talks.
  • Emotion: Detect and express emotions.
  • Function Calling: Trigger actions during calls.

Leading Players

  • OpenAI Realtime API: Native GPT-4o voice (~230ms).
  • Vapi: Developer platform for voice agents.
  • Retell AI: Focus on telephony & scheduling.
  • Bland AI: Enterprise phone agents.

OpenAI Realtime API

A WebSocket-based API that streams audio input and output directly. No separate transcription or text-to-speech steps needed.

Python (WebSockets) gpt-4o-realtime-preview
import asyncio
import websockets
import json
import base64

API_URL = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY", "OpenAI-Beta": "realtime=v1"}

async def voice_chat():
    async with websockets.connect(API_URL, extra_headers=HEADERS) as ws:
        # 1. Initialize Session
        await ws.send(json.dumps({
            "type": "session.update",
            "session": {
                "modalities": ["text", "audio"],
                "voice": "alloy",
                "turn_detection": {"type": "server_vad"}
            }
        }))

        # 2. Receive Events
        async for message in ws:
            event = json.loads(message)
            if event["type"] == "response.audio.delta":
                # Play audio chunk
                audio_bytes = base64.b64decode(event["delta"])
                play_audio(audio_bytes)
            elif event["type"] == "input_audio_buffer.speech_started":
                # Handle interruption
                stop_playback()

# Use asyncio.run(voice_chat())
Latency: ~230ms
$0.06 / min (Input)

Platform Field Guide

Choosing between building with the raw API vs. using a managed platform.

Platform Best For Models Latency (Approx)
OpenAI Realtime Developers building custom web/app agents. GPT-4o ~230ms
Vapi Orchestration layer. Mix & match models. GPT-4o, Claude, Groq ~500-800ms
Retell AI Telephony (Phone Calls). Custom LLMs ~800ms
Bland AI Enterprise scale phone automation. Proprietary < 400ms (Turbo)

Common Use Cases

Customer Support

24/7 phone support capable of handling complex queries.

Inbound Booking

Scheduling appointments for clinics, salons, and services.

Real-time Translator

Voice-to-voice translation with preserved intonation.

Related Topics