

Qwen3.8 LiveTranslate Flash Realtime and Qwen3.5 Omni Plus Realtime side by side: specs, capabilities, parameters, and live pricing from the EmpirioLabs catalog.
Qwen3.8 LiveTranslate Flash Realtime and Qwen3.5 Omni Plus Realtime are both Alibaba Cloud models in the Audio Generation category, available through the EmpirioLabs API.
| Spec | Qwen3.8 LiveTranslate Flash Realtime | Qwen3.5 Omni Plus Realtime |
|---|---|---|
| Model ID | qwen3-8-livetranslate-flash-realtime | qwen3-5-omni-plus-realtime |
| Author | Alibaba Cloud | Alibaba Cloud |
| Released | Sep 17, 2026 | - |
| Context window | 48K tokens | 192K tokens |
| Max output | 4,096 tokens | 65,536 tokens |
| Input | Audio Text | Audio Text Image Video |
| Output | Audio Text | Audio Text |
| Region | Singapore | Singapore |
| Endpoints | WEBSOCKET /v1/realtime | WEBSOCKET /v1/realtime |
| Capabilities |
Live rates from the EmpirioLabs catalog for both models. Each rate card always matches what the API charges.
Request parameters each model lists on EmpirioLabs, with the allowed values or range where one applies. A dash marks a parameter the model does not list.
| Parameter | Qwen3.8 LiveTranslate Flash Realtime | Qwen3.5 Omni Plus Realtime |
|---|---|---|
| voice | Tina, Serena, Ethan, Cindy Default: Tina | Tina, Serena, Ethan, Dylan, Sunny, Peter, Kiki, Eric Default: Tina |
| target_language | zh, en, ar, de, fr, es, pt, id, it, ko, ru, th, vi, ja, tr, h... Default: en | - |
| modalities | string Default: ["text","audio"] | string Default: ["text","audio"] |
| input_audio_format | pcm Default: pcm | pcm Default: pcm |
| output_audio_format | pcm Default: pcm | pcm Default: pcm |
| voice_clone | off, once, always Default: off | - |
| glossary | object | - |
| instructions | - | string |
| turn_detection | - | string Default: {"type":"server_vad"} |
| max_response_output_tokens | - | 1 to 65536 |
| temperature | - | 0 to 1.99 |
| top_p | - | 0.01 to 1 |
| top_k | - | 1 to 100 |
| repetition_penalty | - | 0.1 to 2 |
| presence_penalty | - | -2 to 2 |
| seed | - | 0 to 2147483647 |
Spoken translation over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-livetranslate-flash-realtime, authenticated with the ordinary Authorization Bearer header. Set the target language with session.update before you send audio. With modalities set to ["text"], 31 more target languages translate to text only. Add glossary to set how specific terms are translated. Use a voice this model accepts, or leave the default Tina. To speak the translation in the speaker's own voice, set voice_clone to once (the voice heard at the start of the session) or always (the voice of whoever is speaking, matched before each reply); cloning adds no charge. Audio and text tokens are priced separately, and each completed turn is billed on its own from the usage the model reports.
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, turn detection, sampling and the reply length limit, max_response_output_tokens. Send camera or video frames as JPEG images with input_image_buffer.append, after the first audio. For WAV or another sample rate with the beta version of the protocol, set session.audio.input.format and session.audio.output.format before the first audio. 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, a spoken reply is billed for its audio output tokens only, and each completed turn is billed on its own from the usage the model reports.
Each model has its own request. Get an API key from the EmpirioLabs dashboard.
Qwen3.8 LiveTranslate Flash Realtime is spoken translation over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-livetranslate-flash-realtime, not over the HTTP endpoints. Connect with the model id qwen3-8-livetranslate-flash-realtime and send your EmpirioLabs API key as an Authorization: Bearer header on the handshake. Set the target language with a session.update before you send audio. 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.
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-livetranslate-flash-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
import base64
await ws.send(json.dumps({
"type": "session.update",
"session": {
"voice": "Tina",
"translation": {"language": "en"},
"modalities": ["text", "audio"],
},
}))
# 16-bit PCM microphone audio, base64 encoded, in small chunks.
for chunk in read_microphone_chunks():
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(chunk).decode(),
}))
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"] in ("response.audio_transcript.text", "response.text.text"):
print(event.get("text") or "")
elif event["type"] == "response.done":
break
asyncio.run(main())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.
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())Qwen3.5 Omni Plus Realtime has the larger context window: 192K tokens, against 48K for Qwen3.8 LiveTranslate Flash Realtime. Qwen3.5 Omni Plus Realtime returns up to 65,536 output tokens per response, Qwen3.8 LiveTranslate Flash Realtime up to 4,096. Input types only Qwen3.5 Omni Plus Realtime accepts: Image, Video. The specs, rate cards, and parameters on this page come from the live EmpirioLabs catalog.
Qwen3.8 LiveTranslate Flash Realtime lists the lower rate for Input: audio (per 1M audio input tokens) and Input (per 1M prompt tokens). Both live rate cards are on this page and always match what the API charges.
Yes. Open each model in the EmpirioLabs playground and press Start session to try it in your browser.
Check out our pricing or reach out if you want your own model deployed on our stack.