Qwen3.8 LiveTranslate Flash Realtime vs Qwen3.5 Omni Plus Realtime

Qwen3.8 LiveTranslate Flash Realtime and Qwen3.5 Omni Plus Realtime side by side: specs, capabilities, parameters, and live pricing from the EmpirioLabs catalog.

Alibaba Cloud Audio Generation

Qwen3.8 LiveTranslate Flash Realtime vs Qwen3.5 Omni Plus Realtime at a glance

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.

Key differences

  • 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.
  • Capabilities listed only for Qwen3.8 LiveTranslate Flash Realtime: voice cloning.
  • Capabilities listed only for Qwen3.5 Omni Plus Realtime: video, function calling.
  • Qwen3.8 LiveTranslate Flash Realtime lists the lower rate for Input: audio (per 1M audio input tokens) and Input (per 1M prompt tokens).

Qwen3.8 LiveTranslate Flash Realtime vs Qwen3.5 Omni Plus Realtime: specs

SpecQwen3.8 LiveTranslate Flash RealtimeQwen3.5 Omni Plus Realtime
Model IDqwen3-8-livetranslate-flash-realtimeqwen3-5-omni-plus-realtime
AuthorAlibaba CloudAlibaba Cloud
ReleasedSep 17, 2026-
Context window48K tokens192K tokens
Max output4,096 tokens65,536 tokens
Input
Audio Text
Audio Text Image Video
Output
Audio Text
Audio Text
RegionSingaporeSingapore
Endpoints
WEBSOCKET /v1/realtime
WEBSOCKET /v1/realtime
Capabilities
realtime speech to speech audio in audio out multilingual voice cloning
realtime speech to speech audio in audio out video function calling multilingual

Qwen3.8 LiveTranslate Flash Realtime vs Qwen3.5 Omni Plus Realtime: API pricing

Live rates from the EmpirioLabs catalog for both models. Each rate card always matches what the API charges.

Qwen3.8 LiveTranslate Flash Realtime vs Qwen3.5 Omni Plus Realtime: API parameters

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.

ParameterQwen3.8 LiveTranslate Flash RealtimeQwen3.5 Omni Plus Realtime
voiceTina, Serena, Ethan, Cindy Default: TinaTina, Serena, Ethan, Dylan, Sunny, Peter, Kiki, Eric Default: Tina
target_languagezh, en, ar, de, fr, es, pt, id, it, ko, ru, th, vi, ja, tr, h... Default: en-
modalitiesstring Default: ["text","audio"]string Default: ["text","audio"]
input_audio_formatpcm Default: pcmpcm Default: pcm
output_audio_formatpcm Default: pcmpcm Default: pcm
voice_cloneoff, once, always Default: off-
glossaryobject-
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

Qwen3.8 LiveTranslate Flash Realtime vs Qwen3.5 Omni Plus Realtime: limits and notes

Qwen3.8 LiveTranslate Flash Realtime

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.

Qwen3.5 Omni Plus Realtime

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.

How to call Qwen3.8 LiveTranslate Flash Realtime and Qwen3.5 Omni Plus Realtime

Each model has its own request. Get an API key from the EmpirioLabs dashboard.

Qwen3.8 LiveTranslate Flash Realtime

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.

Python (websockets)
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

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.

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())

Qwen3.8 LiveTranslate Flash Realtime vs Qwen3.5 Omni Plus Realtime: common questions

What is the difference between Qwen3.8 LiveTranslate Flash Realtime and Qwen3.5 Omni Plus Realtime?

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.

Which has the lower rate, Qwen3.8 LiveTranslate Flash Realtime or Qwen3.5 Omni Plus Realtime?

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.

Can I try Qwen3.8 LiveTranslate Flash Realtime and Qwen3.5 Omni Plus Realtime in the browser before integrating?

Yes. Open each model in the EmpirioLabs playground and press Start session to try it in your browser.

Ready to use better endpoints?

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