/v1/realtime

Compare 2 audio generation models in the Qwen Audio 3.0 family, then call the one that fits your latency, quality, and pricing needs.
Qwen Audio 3.0 on EmpirioLabs brings together 2 audio generation model APIs from Alibaba Cloud, including Qwen Audio 3.0 Realtime Plus, Qwen Audio 3.0 Realtime Flash. Each model keeps its own dedicated page with live pricing, parameters, docs, and playground access.
Use the same EmpirioLabs API key and endpoint pattern across the family, then switch behavior by changing the model id in your request.
Compare the family at a glance, then open a model page for the complete live rate card and parameters.
/v1/realtime/v1/realtimeQwen Audio 3.0 Realtime Plus holds a live conversation over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-0-realtime-plus, not over the HTTP endpoints. Connect with the model id qwen-audio-3-0-realtime-plus 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. For this family, swap the model value for any supported id: qwen-audio-3-0-realtime-plus qwen-audio-3-0-realtime-flash. Get an API key from the EmpirioLabs dashboard.
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-0-realtime-plus",
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())See prompt tests, output notes, and comparison runs that mention this model family.
API Access How to Use Qwen Audio 3.0 Realtime Plus and Realtime Flash Qwen Audio 3.0 Realtime Plus and Realtime Flash are voice conversation models you talk to over a WebSocket, with 19...
Guides Qwen Audio 3.0 ASR vs Qwen Audio 3.1 ASR vs StepAudio 3 ASR Max vs Deepgram Nova-3: one voicemail We gave Qwen Audio 3.0 ASR, Qwen Audio 3.1 ASR, StepAudio 3 ASR Max and Deepgram Nova-3 the same voicemail with a name,...
Guides Qwen Audio 3.1 TTS vs Qwen Audio 3.0 TTS vs Gemini 3.8 Flash TTS vs StepAudio 3 TTS: one script We gave Qwen Audio 3.1 TTS, Qwen Audio 3.0 TTS, Gemini 3.8 Flash TTS and StepAudio 3 TTS the same script and delivery...Qwen Audio 3.0 on EmpirioLabs is a family of 2 Audio Generation model APIs from Alibaba Cloud: Qwen Audio 3.0 Realtime Plus, Qwen Audio 3.0 Realtime Flash. You use one EmpirioLabs API key and choose the model id that fits the request.
Start with the model whose dedicated page matches your speed, quality, and pricing needs, then test it in the EmpirioLabs playground. The comparison cards above link to each model's live rate card and quickstart.
Yes. The family is designed around the same EmpirioLabs API pattern, so most integrations switch by changing the model value. Check the model page before shipping if you rely on a model-specific parameter.
Pricing is pay as you go. The cards on this page show a short live-catalog summary, and each model page shows the complete rate card that matches API billing.
Yes. Open any model page in this family and use its playground link to test prompts and parameters in the browser before integrating the API.
Check out our pricing or reach out if you want your own model deployed on our stack.