Skip to navigation

Qwen3.5 Omni Flash Realtime

Qwen3.5 Omni Flash Realtime
Alibaba Cloud · Audio Generation
WEBSOCKET /v1/realtime

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

At a glance

FieldValue
Model idqwen3-5-omni-flash-realtime
Model release date-
Input modalitiesAudio, Text
Output modalitiesAudio, Text
Context window256K
Weight precision-
Max output tokens32,768
RegionSingapore
Featuresrealtime, speech_to_speech, audio_in, audio_out, multilingual
Native inferenceNo
NewYes
Supported endpointsWEBSOCKET /v1/realtime
Alternate model idsqwen3.5-omni-flash-realtime, alibaba/qwen3-5-omni-flash-realtime

Pricing

ChargeSpecRate
Input: audioper 1M audio input tokens$9.00
Inputper 1M prompt tokens$1.10
Outputper 1M generated tokens$6.60
Output: audioper 1M generated audio tokens$35.40

Example request

import asyncio, json, os, websockets
URL = "wss://api.empiriolabs.ai/v1/realtime?model=qwen3-5-omni-flash-realtime"
async def main():
async with websockets.connect(
URL,
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.done":
break
asyncio.run(main())

Parameters

ParameterTypeRequiredDefaultDescription
voiceenumno"Tina"Speaking voice for the session. Set it with session.update before the model produces any audio. · Allowed: Tina, Serena, Ethan, Dylan, Sunny, Peter, Kiki, Eric
instructionsstringno-System guidance for how the model should behave and speak during the conversation.
modalitiesstringno["text", "audio"]Which output types the model returns for a turn. Drop “audio” for a text-only reply.
input_audio_formatenumno"pcm"Encoding of the audio you append to the input buffer: base64 16-bit PCM. · Allowed: pcm
output_audio_formatenumno"pcm"Encoding of the audio the model streams back: base64 16-bit PCM. · Allowed: pcm
turn_detectionstringno{"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 on unless you are driving turns yourself with input_audio_buffer.commit and response.create.

Notes

Full-duplex voice over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen3-5-omni-flash-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.


Machine-readable schema: GET https://api.empiriolabs.ai/v1/models/qwen3-5-omni-flash-realtime.