> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Realtime

> Realtime audio/video streaming with PraisonAI

## Overview

Create realtime sessions for audio and video streaming with OpenAI's Realtime API.

## Python Usage

### Create Session

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonai.capabilities import realtime_connect

session = realtime_connect(
    model="gpt-realtime",
    modalities=["text", "audio"],
    voice="alloy"
)

print(f"Session ID: {session.id}")
print(f"URL: {session.url}")
print(f"Status: {session.status}")
```

<Note>
  Default model is now `gpt-realtime` (OpenAI's GA realtime id). The previous default
  `gpt-4o-realtime-preview` is deprecated by OpenAI but still works if you pass it
  explicitly — only the omitted-`model` default changed.
</Note>

### Session Configuration

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonai.capabilities import realtime_connect

session = realtime_connect(
    model="gpt-realtime",
    modalities=["text", "audio"],
    voice="shimmer",
    instructions="You are a helpful voice assistant."
)

# Connect via WebSocket to session.url
print(f"Connect to: {session.url}")
```

### Async Usage

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
import asyncio
from praisonai.capabilities import arealtime_connect

async def main():
    session = await arealtime_connect(
        model="gpt-realtime"
    )
    print(f"Session: {session.id}")

asyncio.run(main())
```

## Parameters

| Parameter | Type | Default | Description |
| - | - | - | - |
| `model` | str | "gpt-realtime" | Realtime model |
| `modalities` | List\[str] | \["text", "audio"] | Supported modalities |
| `instructions` | str | None | System instructions |
| `voice` | str | "alloy" | Voice for audio output |
| `api_key` | str | None | API key override |

## Available Voices

* `alloy` - Neutral
* `echo` - Male
* `fable` - British
* `onyx` - Deep male
* `nova` - Female
* `shimmer` - Soft female

## Result Object

The `RealtimeSession` object contains:

* `id`: Session ID
* `status`: Session status
* `model`: Model being used
* `url`: WebSocket URL to connect to
* `metadata`: Session configuration

## WebSocket Connection

After creating a session, connect via WebSocket:

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
import websockets
import json

async def connect_realtime(session):
    async with websockets.connect(
        session.url,
        extra_headers={"Authorization": f"Bearer {api_key}"}
    ) as ws:
        # Send and receive events
        await ws.send(json.dumps({
            "type": "input_audio_buffer.append",
            "audio": base64_audio_data
        }))
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.