Qwen3.5 Omni Plus Realtime API

Speech in, speech out, over one socket, on the larger Omni tier, with separate text and audio token rates and per-turn billing.

Alibaba CloudAudio Generation256K contextSingaporeProprietary EndpointNew

About Qwen3.5 Omni Plus Realtime

Speech in, speech out, over one socket, on the larger Omni tier, with separate text and audio token rates and per-turn billing.

Session is configured with session.update events over the socket rather than request parameters. Text and audio tokens bill at separate rates.

Also known as Qwen3.5 Omni Realtime, Alibaba Cloud Qwen3.5 Omni Plus Realtime

realtimespeech to speechaudio inaudio outmultilingual

Qwen3.5 Omni Plus Realtime specs

Model ID
qwen3-5-omni-plus-realtime
Author
Alibaba Cloud
Category
Audio Generation
Released
-
Context window
256K tokens
Max output
32,768 tokens
Input
AudioText
Output
AudioText
Region
Singapore
Endpoints
WEBSOCKET/v1/realtime
Alternate model IDs
qwen3.5-omni-plus-realtimealibaba/qwen3-5-omni-plus-realtime

Qwen3.5 Omni Plus Realtime API pricing

Live pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.

Type
Spec
Rate
Input: audio
per 1M audio input tokens
$33.00
Input
per 1M prompt tokens
$4.20
Output
per 1M generated tokens
$24.80
Output: audio
per 1M generated audio tokens
$124.00
Compare on the full pricing page

How to call the Qwen3.5 Omni Plus Realtime API

Qwen3.5 Omni Plus Realtime holds a live conversation over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen3-5-omni-plus-realtime, not over the HTTP endpoints. Connect with the model id qwen3-5-omni-plus-realtime and send your EmpirioLabs API key as an Authorization: Bearer header on the handshake. Audio travels both ways as base64 16-bit PCM. A browser cannot set headers on a WebSocket, so open this connection from your server and relay audio to the browser over your own socket. Get an API key from the EmpirioLabs dashboard.

Python (websockets)
import asyncio, json, os, websockets

async def main():
    async with websockets.connect(
        "wss://api.empiriolabs.ai/v1/realtime?model=qwen3-5-omni-plus-realtime",
        additional_headers=[
            ("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
        ],
        max_size=None,
    ) as ws:
        print(json.loads(await ws.recv())["type"])  # session.created

        await ws.send(json.dumps({
            "type": "conversation.item.create",
            "item": {
                "type": "message",
                "role": "user",
                "content": [{"type": "input_text", "text": "Say hello."}],
            },
        }))
        await ws.send(json.dumps({"type": "response.create"}))

        async for raw in ws:
            event = json.loads(raw)
            if event["type"] == "response.audio.delta":
                ...  # base64 audio chunk, append to your playback buffer
            elif event["type"] == "response.done":
                break

asyncio.run(main())
Full Qwen3.5 Omni Plus Realtime API reference

Qwen3.5 Omni Plus Realtime API parameters

Request parameters supported by the Qwen3.5 Omni Plus Realtime API on EmpirioLabs. Defaults apply when a field is omitted.

ParameterTypeDefaultRange / valuesDescription
voiceenumTinaTina, Serena, Ethan, Dylan, Sunny, Peter, Kiki, EricSpeaking voice for the session. Set it with session.update before the model produces any audio.
instructionsstring--System guidance for how the model should behave and speak during the conversation.
modalitiesstring["text","audio"]-Which output types the model returns for a turn. Drop "audio" for a text-only reply.
input_audio_formatenumpcmpcmEncoding of the audio you append to the input buffer: base64 16-bit PCM.
output_audio_formatenumpcmpcmEncoding of the audio the model streams back: base64 16-bit PCM.
turn_detectionstring{"type":"server_vad"}-Server-side voice activity detection. Decides when you have stopped speaking and the model should reply. Without it the model listens but never answers, so leave it...

Good to know

Full-duplex voice over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen3-5-omni-plus-realtime, authenticated with the ordinary Authorization Bearer header. Configure the session with session.update over the socket: voice, instructions, modalities, and turn detection. This model's voices differ from the earlier Omni generation, so set one it accepts or leave the default; an unknown voice ends the session rather than returning an error. Text and audio tokens are priced separately, and each completed turn is billed on its own from the usage the model reports.

Qwen3.5 Omni Plus Realtime API: common questions

How much does the Qwen3.5 Omni Plus Realtime API cost?

On EmpirioLabs, Qwen3.5 Omni Plus Realtime is billed pay as you go: Input: audio $33.00 per 1M audio input tokens; Input $4.20 per 1M prompt tokens; Output $24.80 per 1M generated tokens; Output: audio $124.00 per 1M generated audio tokens. The live rate card on this page always matches what the API charges.

What is the context window of Qwen3.5 Omni Plus Realtime?

Qwen3.5 Omni Plus Realtime supports a 256K-token context window with up to 32,768 output tokens per response.

Which endpoint does Qwen3.5 Omni Plus Realtime use?

Qwen3.5 Omni Plus Realtime is served through WEBSOCKET /v1/realtime on api.empiriolabs.ai with standard bearer-token authentication.

Can I try Qwen3.5 Omni Plus Realtime in the browser before integrating?

Open the EmpirioLabs playground and press Start session to try it in your browser. Qwen3.5 Omni Plus Realtime runs over a WebSocket rather than a request and response, so to build with it start from the realtime voice quickstart. Connect from your server with your EmpirioLabs API key and the model id qwen3-5-omni-plus-realtime, then stream audio in both directions.

How do I get a Qwen3.5 Omni Plus Realtime API key?

Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.

Ready to use better endpoints?

Check out our pricing or reach out if you want your own model deployed on our stack.