

Qwen3.8 Omni Flash Realtime and Qwen3.8 LiveTranslate Flash Realtime side by side: specs, capabilities, parameters, and live pricing from the EmpirioLabs catalog.
Qwen3.8 Omni Flash Realtime and Qwen3.8 LiveTranslate Flash Realtime are both Alibaba Cloud models in the Audio Generation category, available through the EmpirioLabs API.
| Spec | Qwen3.8 Omni Flash Realtime | Qwen3.8 LiveTranslate Flash Realtime |
|---|---|---|
| Model ID | qwen3-8-omni-flash-realtime | qwen3-8-livetranslate-flash-realtime |
| Author | Alibaba Cloud | Alibaba Cloud |
| Released | Sep 21, 2026 | Sep 17, 2026 |
| Context window | 192K tokens | 48K tokens |
| Max output | 65,536 tokens | 4,096 tokens |
| Input | Audio Text Image Video | Audio Text |
| 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 Omni Flash Realtime | Qwen3.8 LiveTranslate Flash Realtime |
|---|---|---|
| voice | Tina, Cindy, Liora Mira, Raymond, Zane, Katerina, Ryan, Mia, ... Default: Tina | Tina, Serena, Ethan, Cindy Default: Tina |
| instructions | string | - |
| modalities | string Default: ["text","audio"] | string Default: ["text","audio"] |
| input_audio_format | pcm16 Default: pcm16 | pcm Default: pcm |
| output_audio_format | pcm24 Default: pcm24 | pcm Default: pcm |
| 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 | - |
| video_representation_compact | none, normal | - |
| target_language | - | zh, en, ar, de, fr, es, pt, id, it, ko, ru, th, vi, ja, tr, h... Default: en |
| voice_clone | - | off, once, always Default: off |
Full-duplex voice over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-omni-flash-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.
The voices on this model are not the same set as the Qwen3.5 Omni realtime models. Pick one from the voice list rather than carrying a voice across, or leave it unset and the default is supplied for you.
Audio and text tokens are priced separately in both directions, and each completed turn is billed on its own from the usage the model reports.
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.
Each model has its own request. Get an API key from the EmpirioLabs dashboard.
Qwen3.8 Omni Flash Realtime holds a live conversation over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-omni-flash-realtime, not over the HTTP endpoints. Connect with the model id qwen3-8-omni-flash-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-8-omni-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
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.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.8 Omni Flash Realtime is the newer release (Sep 21, 2026); Qwen3.8 LiveTranslate Flash Realtime was released on Sep 17, 2026. Qwen3.8 Omni Flash Realtime has the larger context window: 192K tokens, against 48K for Qwen3.8 LiveTranslate Flash Realtime. Qwen3.8 Omni Flash Realtime returns up to 65,536 output tokens per response, Qwen3.8 LiveTranslate Flash Realtime up to 4,096. The specs, rate cards, and parameters on this page come from the live EmpirioLabs catalog.
Qwen3.8 Omni Flash Realtime is the newer release (Sep 21, 2026); Qwen3.8 LiveTranslate Flash Realtime was released on Sep 17, 2026.
Qwen3.8 Omni 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.