GET
/
v1
/
realtime
原生OpenAI格式
curl --request GET \
  --url https://api.applerouter.ai/v1/realtime \
  --header 'Authorization: Bearer <token>'
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "param": "<string>",
    "code": "<string>"
  }
}

Overview

Establish a WebSocket connection for realtime voice conversation. This enables bidirectional audio streaming for interactive voice applications.
model
string
The model to use (e.g. gpt-4o-realtime-preview)
This is a WebSocket endpoint. Use the WebSocket protocol (wss://) to connect.

Connecting

Connect using the WebSocket protocol:
wss://api.applerouter.ai/v1/realtime?model=gpt-4o-realtime-preview
Include your API Key in the connection:
JavaScript
const ws = new WebSocket(
  "wss://api.applerouter.ai/v1/realtime?model=gpt-4o-realtime-preview",
  {
    headers: {
      Authorization: "Bearer sk-your-api-key",
    },
  }
);

ws.onopen = () => {
  console.log("Connected to realtime API");

  // Send session configuration
  ws.send(
    JSON.stringify({
      type: "session.update",
      session: {
        modalities: ["text", "audio"],
        instructions: "You are a helpful assistant.",
        voice: "alloy",
        input_audio_format: "pcm16",
        output_audio_format: "pcm16",
      },
    })
  );
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log("Received:", data.type);

  if (data.type === "response.audio.delta") {
    // Handle audio chunk
    playAudio(data.delta);
  }
};

// Send audio input
function sendAudio(audioData) {
  ws.send(
    JSON.stringify({
      type: "input_audio_buffer.append",
      audio: audioData, // base64 encoded PCM16 audio
    })
  );
}
Python
import asyncio
import websockets
import json

async def realtime_session():
    uri = "wss://api.applerouter.ai/v1/realtime?model=gpt-4o-realtime-preview"
    headers = {"Authorization": "Bearer sk-your-api-key"}

    async with websockets.connect(uri, extra_headers=headers) as ws:
        # Configure session
        await ws.send(json.dumps({
            "type": "session.update",
            "session": {
                "modalities": ["text", "audio"],
                "instructions": "You are a helpful assistant.",
                "voice": "alloy"
            }
        }))

        # Listen for responses
        async for message in ws:
            data = json.loads(message)
            print(f"Received: {data['type']}")

asyncio.run(realtime_session())

Message Types

Client Messages

TypeDescription
session.updateUpdate Session Config
input_audio_buffer.appendAppend Audio Data
input_audio_buffer.commitCommit Audio Buffer
conversation.item.createCreate Conversation Item
response.createRequest Response

Server Messages

TypeDescription
session.createdSession Created
response.audio.deltaAudio Delta
response.text.deltaText Delta
response.doneResponse Done
errorError occurred
Rate limits for realtime connections differ from REST API calls. Please monitor your usage accordingly.

Authorizations

Authorization
string
header
required

使用 Bearer Token 认证。格式: Authorization: Bearer sk-xxxxxx

Query Parameters

model
string

要使用的模型

Example:

"gpt-4o-realtime-preview"

Response

WebSocket 协议切换