> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.empiriolabs.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.empiriolabs.ai/_mcp/server.

# Qwen3.8 LiveTranslate Flash Realtime

> Simultaneous spoken translation over a WebSocket. Set the target language, then speak; the model replies in that language with text and audio.

![Qwen3.8 LiveTranslate Flash Realtime](https://media.empiriolabs.ai/model-logos/qwen.png)

[Alibaba Cloud](/providers/alibaba) · Audio Generation

`WEBSOCKET /v1/realtime`

Simultaneous spoken translation over a WebSocket. Set the target language, then speak; the model replies in that language with text and audio.

## At a glance

| Field               | Value                                                                                  |
| ------------------- | -------------------------------------------------------------------------------------- |
| Model id            | `qwen3-8-livetranslate-flash-realtime`                                                 |
| Model release date  | 2026-09-17                                                                             |
| Input modalities    | Audio, Text                                                                            |
| Output modalities   | Audio, Text                                                                            |
| Context window      | 53K                                                                                    |
| Weight precision    | -                                                                                      |
| Max output tokens   | 4,096                                                                                  |
| Region              | Singapore                                                                              |
| Features            | realtime, speech_to_speech, audio_in, audio_out, multilingual                          |
| Native inference    | No                                                                                     |
| New                 | Yes                                                                                    |
| Supported endpoints | `WEBSOCKET /v1/realtime`                                                               |
| Alternate model ids | `qwen3.8-livetranslate-flash-realtime`, `alibaba/qwen3-8-livetranslate-flash-realtime` |

## Pricing

| Charge        | Spec                          | Rate    |
| ------------- | ----------------------------- | ------- |
| Input: audio  | per 1M audio input tokens     | \$15.00 |
| Input         | per 1M prompt tokens          | \$1.10  |
| Output        | per 1M generated tokens       | \$40.00 |
| Output: audio | per 1M generated audio tokens | \$60.00 |

## Example request

```python
import asyncio, json, os, base64, websockets

URL = "wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-livetranslate-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": "session.update",
            "session": {
                "voice": "Tina",
                "translation": {"language": "en"},
                "modalities": ["text", "audio"],
            },
        }))
        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
            elif event["type"] == "response.done":
                break

asyncio.run(main())
```

## Parameters

| Parameter             | Type   | Required | Default             | Description                                                                                                                                                                                                                                                                              |
| --------------------- | ------ | -------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `voice`               | enum   | no       | `"Tina"`            | Speaking voice for the translated audio. Set it with session.update before the model produces any audio. · Allowed: `Tina`, `Serena`, `Ethan`, `Cindy`                                                                                                                                   |
| `target_language`     | enum   | yes      | `"en"`              | Language the model translates into. Required. Set it with session.update before you send audio. · Allowed: `zh`, `en`, `ar`, `de`, `fr`, `es`, `pt`, `id`, `it`, `ko`, `ru`, `th`, `vi`, `ja`, `tr`, `hi`, `ms`, `nl`, `ur`, `nb`, `sv`, `da`, `he`, `fi`, `pl`, `is`, `cs`, `fil`, `fa` |
| `source_language`     | enum   | no       | `"auto"`            | Language you are speaking. Leave auto to let the model detect it. · Allowed: `auto`, `zh`, `en`, `ar`, `de`, `fr`, `es`, `pt`, `id`, `it`, `ko`, `ru`, `th`, `vi`, `ja`, `tr`, `hi`, `ms`, `nl`, `ur`, `nb`, `sv`, `da`, `he`, `fi`, `pl`, `is`, `cs`, `fil`, `fa`                       |
| `modalities`          | string | no       | `["text", "audio"]` | Which output types the model returns for a turn. Drop audio for a text-only translation.                                                                                                                                                                                                 |
| `input_audio_format`  | enum   | no       | `"pcm"`             | Encoding of the audio you append to the input buffer: base64 16-bit PCM. · Allowed: `pcm`                                                                                                                                                                                                |
| `output_audio_format` | enum   | no       | `"pcm"`             | Encoding of the audio the model streams back: base64 16-bit PCM. · Allowed: `pcm`                                                                                                                                                                                                        |

## Notes

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. Use a voice this model accepts, or leave the default Tina. Audio and text 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-8-livetranslate-flash-realtime`.